8 struct input_binding
*bind
;
28 m4x4_zero( ortho
.mtx
.p
);
29 ortho
.mtx
.p
[0][0] = 2.0f
* rl
;
30 ortho
.mtx
.p
[1][1] = 2.0f
* tb
;
31 ortho
.mtx
.p
[3][0] = (fr
+ fl
) * -rl
;
32 ortho
.mtx
.p
[3][1] = (ft
+ fb
) * -tb
;
33 ortho
.mtx
.p
[3][3] = 1.0f
;
34 m4x3_identity( ortho
.transform
);
35 camera_update_view( &ortho
);
36 camera_finalize( &ortho
);
38 if( gui
.helper_count
){
41 glDisable(GL_DEPTH_TEST
);
42 glBlendFunc( GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
);
43 glBlendEquation(GL_FUNC_ADD
);
45 shader_blitcolour_use();
46 shader_blitcolour_uColour( (v4f
){ 0.0f
, 0.0f
, 0.0f
, 0.8f
} );
51 font3d
*font
= &world_global
.font
;
52 font3d_bind( font
, &ortho
);
55 scale
= dy
*0x1p
-4f
*0.75f
;
59 m3x3_identity( mmdl
);
60 m3x3_scale( mmdl
, (v3f
){scale
,scale
,scale
} );
63 float pad
= dy
*0x1p
-4f
*0.125f
;
67 for( u32 i
=0; i
<gui
.helper_count
; i
++ ){
68 struct gui_helper
*helper
= &gui
.helpers
[i
];
70 shader_model_font_uColour( (v4f
){1.0f
,1.0f
,1.0f
,1.0f
} );
72 float w
= font3d_simple_draw( font
, 1, helper
->text
, &ortho
, mmdl
)+0.2f
;
73 mmdl
[3][0] += w
*scale
;
80 void gui_helper_action( struct input_binding
*bind
, const char *text
)
82 if( gui
.helper_count
>= vg_list_size(gui
.helpers
) )
83 vg_fatal_error( "Too many helpers\n" );
85 struct gui_helper
*helper
= &gui
.helpers
[ gui
.helper_count
++ ];