From: DeaDDooMER Date: Tue, 14 Feb 2023 12:03:37 +0000 (+0300) Subject: nogl: use native glOrthof when possible X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=commitdiff_plain;h=ebd974ffe03b41f787eb8421cf0985f55688b606 nogl: use native glOrthof when possible --- diff --git a/src/nogl/noGLES1.inc b/src/nogl/noGLES1.inc index 6bc0acb..15765bf 100644 --- a/src/nogl/noGLES1.inc +++ b/src/nogl/noGLES1.inc @@ -58,7 +58,7 @@ implementation es_glFinish: procedure; cdecl; es_glMultMatrixf: procedure (m: PGLfloat); cdecl; - //es_glOrthof: procedure (left, right, bottom, top, near, far: GLfloat); cdecl; + es_glOrthof: procedure (left, right, bottom, top, near, far: GLfloat); cdecl; es_glLoadIdentity: procedure; cdecl; es_glMatrixMode: procedure (mode: GLenum); cdecl; es_glLoadMatrixf: procedure (m: PGLfloat); cdecl; @@ -301,24 +301,30 @@ implementation procedure glOrtho (left, right, bottom, top, near, far: GLdouble); var m: array [0..15] of GLfloat; begin - {es_glOrthof(left, right, bottom, top, near, far);} - m[0] := 2 / (right - left); - m[1] := 0; - m[2] := 0; - m[3] := 0; - m[4] := 0; - m[5] := 2 / (top - bottom); - m[6] := 0; - m[7] := 0; - m[8] := 0; - m[9] := 0; - m[10] := -2 / (far - near); - m[11] := 0; - m[12] := -((right + left) / (right - left)); - m[13] := -((top + bottom) / (top - bottom)); - m[14] := -((far + near) / (far - near)); - m[15] := 1; - es_glMultMatrixf(@m[0]); + if assigned(es_glOrthof) then + begin + es_glOrthof(left, right, bottom, top, near, far); + end + else + begin + m[0] := 2 / (right - left); + m[1] := 0; + m[2] := 0; + m[3] := 0; + m[4] := 0; + m[5] := 2 / (top - bottom); + m[6] := 0; + m[7] := 0; + m[8] := 0; + m[9] := 0; + m[10] := -2 / (far - near); + m[11] := 0; + m[12] := -((right + left) / (right - left)); + m[13] := -((top + bottom) / (top - bottom)); + m[14] := -((far + near) / (far - near)); + m[15] := 1; + es_glMultMatrixf(@m[0]); + end; end; procedure glLoadIdentity; @@ -534,7 +540,7 @@ implementation es_glFinish := SDL_GL_GetProcAddress('glFinish'); es_glMultMatrixf := SDL_GL_GetProcAddress('glMultMatrixf'); - //es_glOrthof := SDL_GL_GetProcAddress('glOrthof'); + es_glOrthof := SDL_GL_GetProcAddress('glOrthof'); es_glLoadIdentity := SDL_GL_GetProcAddress('glLoadIdentity'); es_glMatrixMode := SDL_GL_GetProcAddress('glMatrixMode'); es_glLoadMatrixf := SDL_GL_GetProcAddress('glLoadMatrixf'); @@ -604,7 +610,7 @@ implementation es_glFinish := nil; es_glMultMatrixf := nil; - //es_glOrthof := nil; + es_glOrthof := nil; es_glLoadIdentity := nil; es_glMatrixMode := nil; es_glLoadMatrixf := nil;