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
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();
|
|
}
|