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