DEADSOFTWARE

gl: fix holmes scale and map offset
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Sat, 18 Feb 2023 00:47:00 +0000 (03:47 +0300)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Fri, 9 Jun 2023 09:15:14 +0000 (12:15 +0300)
src/game/renders/opengl/r_holmes.pas

index f83fa6de9cd2823a93dca3dfc91bf2494cb272bd..8c4bfdcd2501407dd0f8d27c7719f0b5e6b58ef2 100644 (file)
@@ -808,6 +808,11 @@ var
 begin
   if (gPlayer1 = nil) then exit;
 
+  glPushMatrix;
+  (* hack: scale and translate must be handled by hlmContext.glSetScaleTrans, but it dont work for some reason *)
+  glScalef(g_dbg_scale, g_dbg_scale, 1.0);
+  glTranslatef(-vpx, -vpy, 0);
+
   if (hlmContext = nil) then hlmContext := r_fui_gfx_gl.TGxContext.Create();
 
   gxSetContext(hlmContext);
@@ -819,7 +824,7 @@ begin
     glScalef(g_dbg_scale, g_dbg_scale, 1.0);
     glTranslatef(-vpx, -vpy, 0);
     }
-    hlmContext.glSetScaleTrans(g_dbg_scale, -vpx, -vpy);
+//    hlmContext.glSetScaleTrans(g_dbg_scale, -vpx, -vpy); // uncomment when fix it
     glEnable(GL_SCISSOR_TEST);
     glScissor(0, gScreenHeight-gPlayerScreenSize.Y-1, gPlayerScreenSize.X, gPlayerScreenSize.Y);
 
@@ -880,6 +885,8 @@ begin
     gxSetContext(nil);
   end;
 
+  glPopMatrix;
+
   if showMapCurPos then
   begin
     s := Format('mappos:(%d,%d)', [pmsCurMapX, pmsCurMapY]);