splitting
parent
5ade49b72f
commit
224e4b17d0
@ -0,0 +1,13 @@
|
|||||||
|
#version 330 core
|
||||||
|
|
||||||
|
uniform vec3 color1;
|
||||||
|
uniform vec3 color2;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
|
||||||
|
vec2 st = gl_PointCoord;
|
||||||
|
float mixval = distance(st, vec2(0, 1));
|
||||||
|
|
||||||
|
vec3 color = mix(color1, color2, mixval);
|
||||||
|
gl_FragColor = vec4(color, 0.5);
|
||||||
|
}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
#version 330 core
|
||||||
|
layout (location = 0) in vec3 aPos;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);
|
||||||
|
}
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
#ifndef SEGMENT_RENDERER_H
|
||||||
|
#define SEGMENT_RENDERER_H
|
||||||
|
|
||||||
|
#include <raylib.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "timer.h"
|
||||||
|
#include "splits.h"
|
||||||
|
|
||||||
|
#define FMT_SIZE 64
|
||||||
|
|
||||||
|
extern Font font;
|
||||||
|
|
||||||
|
//need to implement scrolling when total_splits > visible
|
||||||
|
|
||||||
|
typedef struct segment_renderer {
|
||||||
|
float pos;
|
||||||
|
float height;
|
||||||
|
segment_list *seglist;
|
||||||
|
int count;
|
||||||
|
int current;
|
||||||
|
char strfmt[FMT_SIZE];
|
||||||
|
} segment_renderer;
|
||||||
|
|
||||||
|
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;
|
||||||
|
return sr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_segment_count(segment_renderer *sr, int c) {
|
||||||
|
sr->count = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void destroy_segment_renderer(segment_renderer *sr) {
|
||||||
|
free(sr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_segments(segment_renderer *sr) {
|
||||||
|
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);
|
||||||
|
//if (sr->current < i) {
|
||||||
|
//DrawTextEx(font, time_unparse(sr->strfmt, FMT_SIZE, &sr->seglist->list[i]->realtime), (Vector2){200, 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
#ifndef TIMER_RENDERER_H
|
||||||
|
#define TIMER_RENDERER_H
|
||||||
|
|
||||||
|
#include <raylib.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
|
//this is just a thing to bind some extra data to the timer
|
||||||
|
//so that i dont have to put pos and height in the timer
|
||||||
|
|
||||||
|
extern Font font;
|
||||||
|
extern int windowWidth;
|
||||||
|
extern int windowHeight;
|
||||||
|
extern char *time_unparse(char *buffer, size_t len, struct timespec *ts);
|
||||||
|
#define FMT_SIZE 64
|
||||||
|
|
||||||
|
typedef struct timer_renderer {
|
||||||
|
GHTimer *timer;
|
||||||
|
//Font font;
|
||||||
|
float pos; //pos
|
||||||
|
float height; //height
|
||||||
|
char strfmt[FMT_SIZE];
|
||||||
|
} timer_renderer;
|
||||||
|
|
||||||
|
timer_renderer *create_timer_renderer(GHTimer *t, float y, float h) {
|
||||||
|
timer_renderer *tr = calloc(1, sizeof(timer_renderer));
|
||||||
|
tr->timer = t;
|
||||||
|
tr->pos = y;
|
||||||
|
tr->height = h;
|
||||||
|
return tr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_timer_pos(timer_renderer *tr, float y) {
|
||||||
|
tr->pos = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
//maybe just destroy_renderer() or just free()
|
||||||
|
inline 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);
|
||||||
|
DrawTextEx(font, tr->strfmt , (Vector2){20.0f, tr->pos}, (float)font.baseSize / 4, 2, BLACK);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Reference in New Issue