X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=demo_prior;a=blobdiff_plain;f=src%2Fdemo.c;fp=src%2Fdemo.c;h=f19993974e127464c059b70bc5fc19058154564d;hp=a4bb0c70fd8f7462638b11c90f6343ddcaeb2942;hb=2f14a35e7d557da12f24056267b911f24774aa18;hpb=5eefe7b94c8d6c6caa2c10e3835ab0831a3c42a1 diff --git a/src/demo.c b/src/demo.c index a4bb0c7..f199939 100644 --- a/src/demo.c +++ b/src/demo.c @@ -5,6 +5,9 @@ #include "post.h" #include "sdr.h" #include "opt.h" +#include "drawtext.h" +#include "imtk.h" +#include "osd.h" void reg_whitted(void); @@ -12,6 +15,9 @@ int win_width, win_height; float win_aspect; long time_msec; +struct dtx_font *fnt_ui; +int fnt_ui_size; + static int reshape_pending; static unsigned int sdr_gamma; @@ -32,6 +38,19 @@ int demo_init(void) glEnable(GL_MULTISAMPLE); } + if(opt.vsync) { + gl_swap_interval(1); + } else { + gl_swap_interval(0); + } + + if(!(fnt_ui = dtx_open_font_glyphmap("data/ui.glyphmap"))) { + fprintf(stderr, "failed to open ui font\n"); + return -1; + } + fnt_ui_size = dtx_get_glyphmap_ptsize(dtx_get_glyphmap(fnt_ui, 0)); + dtx_prepare_range(fnt_ui, fnt_ui_size, 32, 127); + post_init(); if(!(sdr_gamma = create_program_load("sdr/post.v.glsl", "sdr/gamma.p.glsl"))) { @@ -63,6 +82,8 @@ void demo_cleanup(void) for(i=0; idestroy(); } + + dtx_close_font(fnt_ui); } void demo_display(void) @@ -109,6 +130,24 @@ void demo_display(void) glUseProgram(sdr_gamma); overlay_tex(post_fbtex, 1.0); } + + { + static long frames, prev_upd, fps; + long dt; + + frames++; + + dt = time_msec - prev_upd; + if(dt >= 750) { + fps = (frames * 1000 << 8 + 128) / dt; + frames = 0; + prev_upd = time_msec; + } + + print_text(win_width - 80, 20, 1.0, 0.8, 0.1, "fps: %ld.%ld", fps >> 8, ((fps & 0xff) * 10) >> 8); + } + + draw_osd(); } void demo_reshape(int x, int y) @@ -124,6 +163,8 @@ void demo_reshape(int x, int y) glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(50.0, win_aspect, 0.5, 500.0); + + imtk_set_viewport(x, y); } void demo_keyboard(int key, int st)