X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Frenders%2Fopengl%2Fr_holmes.pas;h=8c4bfdcd2501407dd0f8d27c7719f0b5e6b58ef2;hb=84f5d0f06ab417f4d372efcf27b5c5a11b5f8e22;hp=e04fbc42a196201086df63a259102b260c3b8568;hpb=4b20cdc218fe2210f1462d9f54ca7f794b9a4df0;p=d2df-sdl.git diff --git a/src/game/renders/opengl/r_holmes.pas b/src/game/renders/opengl/r_holmes.pas index e04fbc4..8c4bfdc 100644 --- a/src/game/renders/opengl/r_holmes.pas +++ b/src/game/renders/opengl/r_holmes.pas @@ -15,6 +15,10 @@ {$INCLUDE ../../../shared/a_modes.inc} unit r_holmes; + {$IFDEF USE_GLES1} + {$FATAL Desktop OpenGL required for current Holmes implementation} + {$ENDIF} + interface procedure r_Holmes_Draw (); @@ -42,7 +46,8 @@ uses xprofiler, sdlcarcass, fui_common, fui_ctls, - fui_gfx_gl, + fui_gfx, + r_fui_gfx_gl, {$IFDEF ENABLE_GFX} g_gfx, {$ENDIF} @@ -54,7 +59,7 @@ uses MAPDEF, g_options; var - hlmContext: TGxContext = nil; + hlmContext: r_fui_gfx_gl.TGxContext = nil; vpx, vpy: Integer; vpw, vph: Integer; laserSet: Boolean = false; @@ -803,7 +808,12 @@ var begin if (gPlayer1 = nil) then exit; - if (hlmContext = nil) then hlmContext := TGxContext.Create(); + 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); try @@ -814,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); @@ -875,6 +885,8 @@ begin gxSetContext(nil); end; + glPopMatrix; + if showMapCurPos then begin s := Format('mappos:(%d,%d)', [pmsCurMapX, pmsCurMapY]);