You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.3 KiB
C

#include <raylib.h>
#include "timer.h"
#include "timer_renderer.h"
#include "segment_renderer.h"
#include "controller.h"
//#include "scanner.h"
#include "splits.h"
#include <stdio.h>
#if defined(PLATFORM_DESKTOP)
#define GLSL_VERSION 330
#else
#define GLSL_VERSION 100
#endif
//global variables
int windowWidth = 420;
int windowHeight = 640;
int remote_state = 0;
Font font;
//testing control function
void control(void) {
static int last_state;
if (last_state != remote_state)
//ctrl_pause(&timer);
//printf("%d, %d\n", last_state, remote_state);
last_state = remote_state;
}
int main(int argc, char *argv[]) {
//size of window can be determined by height of all components visible
InitWindow(windowWidth, windowHeight, "Ghost");
SetTargetFPS(60);
//use libxml or something
segment_list segments = open_splits_file("test/splits.ghs");
GHTimer *timer = ghtimer_new();
//make a layout manager for these
timer_renderer *tr = create_timer_renderer(timer, (Vector2){0.0f, 90.0f}, (Vector2){(float)windowWidth, (float)windowHeight/8});
segment_renderer *sr = create_segment_renderer(&segments, 0.0f, 0.0f);
//layout manager
Image blank = GenImageColor(windowWidth, windowHeight, BLANK);
Texture2D texture = LoadTextureFromImage(blank);
Shader shader = LoadShader(0, "shaders/frag.glsl");
UnloadImage(blank);
set_segment_renderer_shader(sr, &shader);
set_timer_shader(tr, &shader);
ctrl_binder *cb = create_ctrl_binder(timer, &segments);
ctrl_bind_timer_renderer(cb, tr);
ctrl_bind_segment_renderer(cb, sr);
font = LoadFontEx("/usr/share/fonts/CozetteVector.ttf", 400, 0, 0);
GenTextureMipmaps(&font.texture);
float fontSize = (float)font.baseSize;
while (!WindowShouldClose()) {
ghtimer_tick(timer);
if (IsKeyPressed(KEY_P)) {
ctrl_start(cb);
}
BeginDrawing();
//BeginShaderMode(shader);
ClearBackground(BLACK);
//DrawTexture(texture, 0, 0, WHITE);
//EndShaderMode();
//need to make this not weird
render_segments(sr);
render_timer(tr);
EndShaderMode();
EndDrawing();
}
ghtimer_delete(timer);
CloseWindow();
}