variable target ui flush & message bitcount function
[vg.git] / vg_imgui.h
index 487dfacf3c0f39193516610400865d0fe6f964a2..750ebfb866a58f5f3e411c3b52de411ba4b93bd6 100644 (file)
@@ -482,7 +482,7 @@ static void rect_copy( ui_rect a, ui_rect b ){
       b[i] = a[i];
 }
 
-static void ui_flush( enum ui_shader shader ){
+static void ui_flush( enum ui_shader shader, f32 w, f32 h ){
    u32 vertex_offset = vg_ui.vert_start*sizeof(ui_vert),
        vertex_count  = vg_ui.cur_vert-vg_ui.vert_start,
        vertex_size   = vertex_count*sizeof(ui_vert),
@@ -511,8 +511,8 @@ static void ui_flush( enum ui_shader shader ){
        
        m3x3f view = M3X3_IDENTITY;
    m3x3_translate( view, (v3f){ -1.0f, 1.0f, 0.0f } );
-   m3x3_scale( view, (v3f){ 1.0f/((float)vg.window_x*0.5f), 
-                           -1.0f/((float)vg.window_y*0.5f), 1.0f } );
+   m3x3_scale( view, (v3f){ 1.0f/(w*0.5f), 
+                           -1.0f/(h*0.5f), 1.0f } );
        
    if( shader == k_ui_shader_colour ){
       glUseProgram( _shader_ui.id );
@@ -1007,11 +1007,11 @@ static void ui_info( ui_rect inout_panel, const char *text ){
 }
 
 static void ui_image( ui_rect rect, GLuint image ){
-   ui_flush( k_ui_shader_colour );
+   ui_flush( k_ui_shader_colour, vg.window_x, vg.window_y );
    glActiveTexture( GL_TEXTURE0 );
    glBindTexture( GL_TEXTURE_2D, image );
    ui_fill_rect( rect, 0xffffffff, (ui_px[4]){ 0,256,256,0 } );
-   ui_flush( k_ui_shader_image );
+   ui_flush( k_ui_shader_image, vg.window_x, vg.window_y );
 }
 
 static u32 v4f_u32_colour( v4f colour ){
@@ -1202,7 +1202,7 @@ static void ui_postrender(void){
       vg_ui.wants_mouse = 1;
    }
 
-   ui_flush( k_ui_shader_colour );
+   ui_flush( k_ui_shader_colour, vg.window_x, vg.window_y );
 
    if( !vg_ui.focused_control_hit ){
       ui_defocus_all();