|
|
@@ -103,45 +103,57 @@ int32_t get_uniform(uint32_t prog, const char *name);
|
|
|
int32_t
|
|
|
main(int32_t argc, char **argv)
|
|
|
{
|
|
|
- (void) argc; (void) argv;
|
|
|
+ enum buffer_err buffer_err;
|
|
|
+ enum shader_err shader_err;
|
|
|
+
|
|
|
+ if ( argc != 2 ) {
|
|
|
+ fprintf(stderr, "MUST pass file to open\n");
|
|
|
+ exit(EXIT_FAILURE);
|
|
|
+ }
|
|
|
|
|
|
struct app app = app_create("ged");
|
|
|
const char *font_path = "./charmap-oldschool_white.png";
|
|
|
app.font = font_create(app.rdr, font_path, 7, 18);
|
|
|
app.font.scale = 4.0;
|
|
|
|
|
|
+ RET_UNWRAP2(app.buf, buffer_err,
|
|
|
+ struct ret_buffer_err,
|
|
|
+ buffer_load_from_file(app.buf, argv[1]));
|
|
|
+ if ( buffer_err != BUFFER_ERR_OK ) {
|
|
|
+ fprintf(stderr, "Failed to open buffer: %d\n", buffer_err);
|
|
|
+ exit(EXIT_FAILURE);
|
|
|
+ }
|
|
|
+
|
|
|
struct glyphs glys;
|
|
|
glys.cap = 1024 * 1024;
|
|
|
glys.size = 0;
|
|
|
glys.items = calloc(glys.cap, sizeof(struct glyph));
|
|
|
|
|
|
- enum shader_err err;
|
|
|
-
|
|
|
uint32_t prog;
|
|
|
uint32_t vert_shader;
|
|
|
uint32_t frag_shader;
|
|
|
|
|
|
/* Loading shaders and linking prog */
|
|
|
{
|
|
|
- RET_UNWRAP2(vert_shader, err, struct ret_uint32_t_err,
|
|
|
+ RET_UNWRAP2(vert_shader, shader_err, struct ret_uint32_t_err,
|
|
|
shader_compile_file("./shaders/font.vert",
|
|
|
GL_VERTEX_SHADER));
|
|
|
- if ( err != SHADER_ERR_OK ) {
|
|
|
+ if ( shader_err != SHADER_ERR_OK ) {
|
|
|
fprintf(stderr, "Failed to compile shader font.vert\n");
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
|
|
|
- RET_UNWRAP2(frag_shader, err, struct ret_uint32_t_err,
|
|
|
+ RET_UNWRAP2(frag_shader, shader_err, struct ret_uint32_t_err,
|
|
|
shader_compile_file("./shaders/font.frag",
|
|
|
GL_FRAGMENT_SHADER));
|
|
|
- if ( err != SHADER_ERR_OK ) {
|
|
|
+ if ( shader_err != SHADER_ERR_OK ) {
|
|
|
fprintf(stderr, "Failed to compile shader font.frag\n");
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
|
|
|
- RET_UNWRAP2(prog, err, struct ret_uint32_t_err,
|
|
|
+ RET_UNWRAP2(prog, shader_err, struct ret_uint32_t_err,
|
|
|
program_link(vert_shader, frag_shader));
|
|
|
- if ( err != SHADER_ERR_OK ) {
|
|
|
+ if ( shader_err != SHADER_ERR_OK ) {
|
|
|
fprintf(stderr, "Failed to link program\n");
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
@@ -224,20 +236,10 @@ main(int32_t argc, char **argv)
|
|
|
|
|
|
}
|
|
|
|
|
|
- enum buffer_err err_;
|
|
|
- RET_UNWRAP2(app.buf, err_,
|
|
|
- struct ret_buffer_err,
|
|
|
- buffer_load_from_file(app.buf, "./src/main.c"));
|
|
|
- if ( err_ != BUFFER_ERR_OK ) {
|
|
|
- fprintf(stderr, "Failed to read load buffer: %d\n", err_);
|
|
|
- exit(EXIT_FAILURE);
|
|
|
- }
|
|
|
-
|
|
|
glUniform1f(app.uniforms.scale, (float)app.font.scale);
|
|
|
glUniform2f(app.uniforms.scale, 5.0, 5.0);
|
|
|
|
|
|
double dt = (1.0 / (double)app.target_fps) * 3;
|
|
|
- (void) dt;
|
|
|
uint32_t frame_target_dur = (uint32_t)(1000 / app.target_fps);
|
|
|
|
|
|
char *fps_text = calloc(1, 128);
|
|
|
@@ -247,7 +249,6 @@ main(int32_t argc, char **argv)
|
|
|
uint32_t fr_start = 0;
|
|
|
uint32_t fr_dur = 1;
|
|
|
|
|
|
- /* struct vec2i cur = app_calc_cursor(app); */
|
|
|
while ( app.running ) {
|
|
|
fr_start = SDL_GetTicks();
|
|
|
struct buffer *buf = &app.buf;
|