shaders
parent
224e4b17d0
commit
952ea0a28b
@ -1,13 +1,13 @@
|
||||
#version 330 core
|
||||
|
||||
uniform vec3 color1;
|
||||
uniform vec3 color2;
|
||||
//uniform vec3 color1;
|
||||
//uniform vec3 color2;
|
||||
|
||||
void main() {
|
||||
|
||||
vec2 st = gl_PointCoord;
|
||||
float mixval = distance(st, vec2(0, 1));
|
||||
//vec2 st = gl_PointCoord;
|
||||
//float mixval = distance(st, vec2(0, 1));
|
||||
|
||||
vec3 color = mix(color1, color2, mixval);
|
||||
gl_FragColor = vec4(color, 0.5);
|
||||
//vec3 color = mix(color1, color2, mixval);
|
||||
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#version 330 core
|
||||
layout (location = 0) in vec3 aPos;
|
||||
layout (location = 0) in vec3 pos;
|
||||
|
||||
void main() {
|
||||
gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);
|
||||
gl_Position = vec4(pos, 1.0);
|
||||
}
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
#include "segment_renderer.h"
|
||||
|
||||
extern int windowHeight;
|
||||
extern int windowWidth;
|
||||
extern char *time_unparse(char *buffer, size_t len, struct timespec *ts);
|
||||
|
||||
segment_renderer *create_segment_renderer(segment_list *sl, float y, float h) {
|
||||
segment_renderer *sr = calloc(1, sizeof(segment_renderer));
|
||||
sr->pos = y;
|
||||
sr->height = h;
|
||||
sr->seglist = sl;
|
||||
sr->count = sl->cnt;
|
||||
sr->current = 0;
|
||||
sr->running = false;
|
||||
sr->shader = NULL;
|
||||
return sr;
|
||||
}
|
||||
|
||||
void set_segment_renderer_shader(segment_renderer *sr, Shader *s) {
|
||||
sr->shader = s;
|
||||
}
|
||||
|
||||
void set_segment_count(segment_renderer *sr, int c) {
|
||||
sr->count = c;
|
||||
}
|
||||
|
||||
void destroy_segment_renderer(segment_renderer *sr) {
|
||||
free(sr);
|
||||
}
|
||||
|
||||
void render_segments(segment_renderer *sr) {
|
||||
if (sr->shader != NULL) {
|
||||
BeginShaderMode(*sr->shader);
|
||||
}
|
||||
|
||||
if (sr->running) {
|
||||
DrawRectangle(0, (sr->current) * 30, windowWidth, (float)font.baseSize/16, BLUE);
|
||||
}
|
||||
|
||||
//draw a big rectangle the size of the segment thing
|
||||
DrawRectangle(0, 0, windowWidth, 90, WHITE);
|
||||
|
||||
if (sr->shader != NULL) {
|
||||
EndShaderMode();
|
||||
}
|
||||
|
||||
for (int i = 0; i < sr->count; i++) {
|
||||
DrawTextEx(font, sr->seglist->list[i]->name, (Vector2){10, 30 * i}, (float)font.baseSize/16, 2, BLACK);
|
||||
DrawTextEx(font, time_unparse(sr->strfmt, FMT_SIZE, &sr->seglist->list[i]->realtime), (Vector2){200, 30 * i}, (float)font.baseSize/16, 2, BLACK);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
#include "timer_renderer.h"
|
||||
|
||||
timer_renderer *create_timer_renderer(GHTimer *t, Vector2 p, Vector2 sz) {
|
||||
timer_renderer *tr = calloc(1, sizeof(timer_renderer));
|
||||
tr->timer = t;
|
||||
tr->pos = p;
|
||||
tr->size = sz;
|
||||
return tr;
|
||||
}
|
||||
|
||||
void set_timer_shader(timer_renderer *tr, Shader *s) {
|
||||
tr->shader = s;
|
||||
}
|
||||
|
||||
void set_timer_pos(timer_renderer *tr, Vector2 p) {
|
||||
tr->pos = p;
|
||||
}
|
||||
|
||||
//maybe just destroy_renderer() or just free()
|
||||
void destroy_timer_renderer(timer_renderer *tr) {
|
||||
free(tr);
|
||||
}
|
||||
|
||||
void render_timer(timer_renderer *tr) {
|
||||
struct timespec ts = ghtimer_time(tr->timer);
|
||||
time_unparse(tr->strfmt, FMT_SIZE, &ts);
|
||||
Vector2 text_size = MeasureTextEx(font, tr->strfmt, (float)font.baseSize/4, 2);
|
||||
|
||||
//set_timer_pos(tr, (Vector2)tr->pos.y - text_size.y);
|
||||
if (tr->shader != NULL) {
|
||||
BeginShaderMode(*tr->shader);
|
||||
}
|
||||
|
||||
//draw the timer background
|
||||
DrawRectangle(tr->pos.x, tr->pos.y, tr->size.x, tr->size.y, WHITE);
|
||||
|
||||
if (tr->shader != NULL) {
|
||||
EndShaderMode();
|
||||
}
|
||||
|
||||
DrawTextEx(font, tr->strfmt , (Vector2){(float)windowWidth - text_size.x - 2.0f, tr->pos.y}, (float)font.baseSize / 4, 2, BLACK);
|
||||
}
|
||||
Loading…
Reference in New Issue