@@ -99,28 +99,20 @@ uint8_t render_window(UiInstance *instance) {
99
99
(float )clear_color .b / 255 , (float )clear_color .a / 255 );
100
100
glClear (GL_COLOR_BUFFER_BIT );
101
101
move_image_buffer_to_texture (& (instance -> render_buffer ));
102
- Vec2f window_size = {instance -> window_width , instance -> window_height };
103
- float t = window_size .x ;
104
- if (window_size .y < window_size .x )
105
- t = window_size .y ;
106
- if (instance -> render_buffer .h > instance -> render_buffer .w ) {
107
- float scale = t / instance -> render_buffer .h ;
108
- window_size .x = instance -> render_buffer .w * scale ;
109
- window_size .y = instance -> render_buffer .h * scale ;
110
- } else {
111
- float scale = t / instance -> render_buffer .w ;
112
- window_size .x = instance -> render_buffer .w * scale ;
113
- window_size .y = instance -> render_buffer .h * scale ;
114
- }
102
+ Vec2f window_size ;
115
103
Vec2f start_pos = {0 , 0 };
116
- if (window_size .x < instance -> window_width ) {
117
- size_t diff = instance -> window_width - window_size .x ;
118
- start_pos .x += diff / 2 ;
119
- }
104
+ float bufferAspectRatio = (float )instance -> render_buffer .w / (float )instance -> render_buffer .h ;
105
+ float windowAspectRatio = (float )instance -> window_width / (float )instance -> window_height ;
120
106
121
- if (window_size .y < instance -> window_height ) {
122
- size_t diff = instance -> window_height - window_size .y ;
123
- start_pos .y += diff / 2 ;
107
+
108
+ if (bufferAspectRatio > windowAspectRatio ) {
109
+ window_size .x = instance -> window_width ;
110
+ window_size .y = instance -> window_width / bufferAspectRatio ;
111
+ start_pos .y = (instance -> window_height - window_size .y ) / 2 ;
112
+ } else {
113
+ window_size .y = instance -> window_height ;
114
+ window_size .x = instance -> window_height * bufferAspectRatio ;
115
+ start_pos .x = (instance -> window_width - window_size .x ) / 2 ;
124
116
}
125
117
SimpleShaderEntry entry = {normalize (instance , start_pos ), window_size };
126
118
shader_use (instance -> shader );
0 commit comments