@@ -31,7 +31,7 @@ use argus_render::common::{AttachedViewport, Matrix4x4, RenderCanvas, Transform2
3131use argus_render:: constants:: * ;
3232use argus_render:: twod:: get_render_context_2d;
3333use argus_resman:: Resource ;
34- use argus_util:: math:: Vector2u ;
34+ use argus_util:: math:: { Vector2f , Vector2u } ;
3535use argus_wm:: * ;
3636use std:: ffi:: CStr ;
3737use std:: ptr;
@@ -58,7 +58,7 @@ impl GlRenderer {
5858
5959 let gl_mgr = WindowManager :: instance ( ) . get_gl_manager ( )
6060 . expect ( "Failed to get OpenGL manager" ) ;
61-
61+
6262 self . state . gl_context =
6363 Some ( gl_mgr. create_context ( window, 3 , 3 , context_flags) . unwrap ( ) ) ;
6464 self . state . gl_context . as_ref ( ) . unwrap ( ) . make_current ( window)
@@ -400,17 +400,19 @@ fn recompute_2d_viewport_view_matrix(
400400 let center_x = ( viewport. left + viewport. right ) / 2.0 ;
401401 let center_y = ( viewport. top + viewport. bottom ) / 2.0 ;
402402
403- let cur_translation = & transform. translation ;
403+ let mut adj_transform = transform. clone ( ) ;
404+ adj_transform. translation . x += ( viewport. right - viewport. left ) / 2.0 ;
405+ adj_transform. translation . y += ( viewport. bottom - viewport. top ) / 2.0 ;
404406
405407 let anchor_mat_1 = Matrix4x4 :: from_row_major ( [
406408 1.0 ,
407409 0.0 ,
408410 0.0 ,
409- -center_x + cur_translation . x ,
411+ -center_x + adj_transform . translation . x ,
410412 0.0 ,
411413 1.0 ,
412414 0.0 ,
413- -center_y + cur_translation . y ,
415+ -center_y + adj_transform . translation . y ,
414416 0.0 ,
415417 0.0 ,
416418 1.0 ,
@@ -424,11 +426,11 @@ fn recompute_2d_viewport_view_matrix(
424426 1.0 ,
425427 0.0 ,
426428 0.0 ,
427- center_x - cur_translation . x ,
429+ center_x - adj_transform . translation . x ,
428430 0.0 ,
429431 1.0 ,
430432 0.0 ,
431- center_y - cur_translation . y ,
433+ center_y - adj_transform . translation . y ,
432434 0.0 ,
433435 0.0 ,
434436 1.0 ,
@@ -440,10 +442,10 @@ fn recompute_2d_viewport_view_matrix(
440442 ] ) ;
441443
442444 let view_mat =
443- transform . get_translation_matrix ( ) *
445+ adj_transform . get_translation_matrix ( ) *
444446 anchor_mat_2 *
445- transform . get_rotation_matrix ( ) *
446- transform . get_scale_matrix ( ) *
447+ adj_transform . get_rotation_matrix ( ) *
448+ adj_transform . get_scale_matrix ( ) *
447449 anchor_mat_1;
448450
449451 * dest = compute_proj_matrix ( resolution. x , resolution. y ) * view_mat;
0 commit comments