X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=gui.h;fp=gui.h;h=e4d0068889de65ee8abc83aa2cc2a1bd7f93c185;hb=74174e4357c402824302174845f89b975dba5981;hp=c057ce6ebd71f415b84ddd025a68457b9a511577;hpb=e9b84820514f4880082d97fff4fc709ac1a2dc83;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/gui.h b/gui.h index c057ce6..e4d0068 100644 --- a/gui.h +++ b/gui.h @@ -10,6 +10,9 @@ struct{ helpers[4]; u32 helper_count; + char location[64]; + f64 location_time; + f32 factive; font3d font; } @@ -53,13 +56,46 @@ void gui_draw(void) render_fsquad1(); } + f64 loc_t = (vg.time - gui.location_time) / 5.0; + if( (loc_t < 1.0) && (gui.location_time != 0.0) ){ + /* yep this code is a mess, i dont care anymore */ + glEnable(GL_BLEND); + glDisable(GL_DEPTH_TEST); + glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); + glBlendEquation(GL_FUNC_ADD); + + f32 t = 1.0f-vg_minf(1.0f,vg_minf(loc_t*20.0f,2.0f-loc_t*2.0f)), + o = 1.0f-t*t*(2.0f-t); + + shader_blitcolour_use(); + shader_blitcolour_uColour( (v4f){ 0.0f, 0.0f, 0.0f, o*0.5f } ); + render_fsquad2(); + + f32 dy = ft/0.79f, + scale = dy*0x1p-4f*0.5f; + + m4x3f mmdl; + m3x3_identity( mmdl ); + m3x3_scale( mmdl, (v3f){scale,scale,scale} ); + v3_zero( mmdl[3] ); + + f32 pad = dy*0x1p-4f*0.125f; + f32 w = font3d_string_width( &gui.font,2,gui.location ); + + mmdl[3][0] = fr*0.5f - w*scale*0.5f; + mmdl[3][1] = 0.3f*ft+pad*2.0f; + + font3d_bind( &gui.font, &ortho ); + shader_model_font_uColour( (v4f){1.2f,1.2f,1.2f,o} ); + font3d_simple_draw( &gui.font, 2, gui.location, &ortho, mmdl ); + } + font3d_bind( &gui.font, &ortho ); float dy = ft/0.79f, scale = dy*0x1p-4f*0.75f; m4x3f mmdl; - v4f q; m3x3_identity( mmdl ); m3x3_scale( mmdl, (v3f){scale,scale,scale} ); v3_zero( mmdl[3] ); @@ -104,9 +140,27 @@ void gui_helper_action( const char *bindstr, const char *text ) helper->text = text; } +VG_STATIC +int gui_location_print_ccmd( int argc, const char *argv[] ){ + if( argc > 0 ){ + char new_loc[64]; + vg_str str; + vg_strnull( &str, new_loc, 64 ); + for( int i=0; i