X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fnogl%2FnoGLES1.inc;h=6142e2e4ee6c148f254d365c166ed62be90f986e;hb=d52e9d7b6bcc5c1846c82c3908a4688339e736f3;hp=6bc0acb937a361685297bca2597817b86851d243;hpb=923ff56209bf28a54bd5bd63a786e67af8af121b;p=d2df-sdl.git diff --git a/src/nogl/noGLES1.inc b/src/nogl/noGLES1.inc index 6bc0acb..6142e2e 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; @@ -232,15 +232,16 @@ implementation begin i := Length(x); vpx := Length(v); - if (cmds.mode = GL_QUADS) and (i div vpx mod 4 = 3) then + if (cmds.mode = GL_QUADS) and (i div vpx mod 6 = 3) then begin - for j := 0 to vpx - 1 do - AddFloatRaw(x, x[i - 3*vpx + j]); - for j := 0 to vpx - 1 do - AddFloatRaw(x, x[i - 1*vpx + j]); + for j := 0 to vpx - 1 do AddFloatRaw(x, x[i - 1*vpx + j]); + for j := 0 to vpx - 1 do AddFloatRaw(x, v[j]); + for j := 0 to vpx - 1 do AddFloatRaw(x, x[i - 3*vpx + j]); + end + else + begin + for j := 0 to vpx - 1 do AddFloatRaw(x, v[j]); end; - for j := 0 to vpx - 1 do - AddFloatRaw(x, v[j]); end; (* ---------- end internals ---------- *) @@ -301,24 +302,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 +541,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 +611,7 @@ implementation es_glFinish := nil; es_glMultMatrixf := nil; - //es_glOrthof := nil; + es_glOrthof := nil; es_glLoadIdentity := nil; es_glMatrixMode := nil; es_glLoadMatrixf := nil;