diff options
author | Johannes Schickel | 2015-12-19 18:06:10 +0100 |
---|---|---|
committer | Johannes Schickel | 2016-03-16 20:29:25 +0100 |
commit | c5ce812711c68ea546926f243b9f6f0ece8ca736 (patch) | |
tree | bb735f96163329eca51b31db6fc6cd35d4436b52 /backends | |
parent | 67e2790beba8e309dccfe9c64ea3f636fdeed5b9 (diff) | |
download | scummvm-rg350-c5ce812711c68ea546926f243b9f6f0ece8ca736.tar.gz scummvm-rg350-c5ce812711c68ea546926f243b9f6f0ece8ca736.tar.bz2 scummvm-rg350-c5ce812711c68ea546926f243b9f6f0ece8ca736.zip |
OPENGL: Simplify orthogonal projection setup.
Diffstat (limited to 'backends')
-rw-r--r-- | backends/graphics/opengl/opengl-func.h | 7 | ||||
-rw-r--r-- | backends/graphics/opengl/opengl-graphics.cpp | 22 |
2 files changed, 11 insertions, 18 deletions
diff --git a/backends/graphics/opengl/opengl-func.h b/backends/graphics/opengl/opengl-func.h index 0ff39c845a..d13dece1ea 100644 --- a/backends/graphics/opengl/opengl-func.h +++ b/backends/graphics/opengl/opengl-func.h @@ -70,12 +70,7 @@ GL_FUNC_DEF(void, glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat GL_FUNC_DEF(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height)); GL_FUNC_DEF(void, glMatrixMode, (GLenum mode)); GL_FUNC_DEF(void, glLoadIdentity, ()); -#if !USE_FORCED_GL -GL_FUNC_DEF(void, glOrthof, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)); -#endif -#if !USE_FORCED_GLES -GL_FUNC_DEF(void, glOrtho, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val)); -#endif +GL_FUNC_DEF(void, glLoadMatrixf, (const GLfloat *m)); GL_FUNC_DEF(void, glShadeModel, (GLenum mode)); GL_FUNC_DEF(void, glHint, (GLenum target, GLenum mode)); GL_FUNC_DEF(void, glClearColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)); diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp index 78c6b2aff1..108366744d 100644 --- a/backends/graphics/opengl/opengl-graphics.cpp +++ b/backends/graphics/opengl/opengl-graphics.cpp @@ -757,19 +757,17 @@ void OpenGLGraphicsManager::setActualScreenSize(uint width, uint height) { // Setup coordinates system. GL_CALL(glViewport(0, 0, _outputScreenWidth, _outputScreenHeight)); + // Orthogonal projection matrix in column major order. + const GLfloat orthoProjection[4*4] = { + 2.0f / _outputScreenWidth, 0.0f , 0.0f, 0.0f, + 0.0f , -2.0f / _outputScreenHeight, 0.0f, 0.0f, + 0.0f , 0.0f , -1.0f, 0.0f, + -1.0f , 1.0f , 0.0f, 1.0f + }; + GL_CALL(glMatrixMode(GL_PROJECTION)); - GL_CALL(glLoadIdentity()); -#if USE_FORCED_GLES - GL_CALL(glOrthof(0, _outputScreenWidth, _outputScreenHeight, 0, -1, 1)); -#elif USE_FORCED_GL - GL_CALL(glOrtho(0, _outputScreenWidth, _outputScreenHeight, 0, -1, 1)); -#else - if (isGLESContext()) { - GL_CALL(glOrthof(0, _outputScreenWidth, _outputScreenHeight, 0, -1, 1)); - } else { - GL_CALL(glOrtho(0, _outputScreenWidth, _outputScreenHeight, 0, -1, 1)); - } -#endif + GL_CALL(glLoadMatrixf(orthoProjection)); + GL_CALL(glMatrixMode(GL_MODELVIEW)); GL_CALL(glLoadIdentity()); |