diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-01-28 00:30:51 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-01-28 23:35:20 +0300 |
commit | a0b2deb4192bddad4d061f5d5df86411a437f01f (patch) | |
tree | 4739472959d83045eac4d7f7ddf3dc265d37b45c /src/render/mobileopenglgraphics.cpp | |
parent | 226202ff807dc860991af0d6665ef9e9b48c1bed (diff) | |
download | plus-a0b2deb4192bddad4d061f5d5df86411a437f01f.tar.gz plus-a0b2deb4192bddad4d061f5d5df86411a437f01f.tar.bz2 plus-a0b2deb4192bddad4d061f5d5df86411a437f01f.tar.xz plus-a0b2deb4192bddad4d061f5d5df86411a437f01f.zip |
add support for screen scale in OpenGL modes.
Diffstat (limited to 'src/render/mobileopenglgraphics.cpp')
-rw-r--r-- | src/render/mobileopenglgraphics.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/render/mobileopenglgraphics.cpp b/src/render/mobileopenglgraphics.cpp index d273e9f65..82bf04dc8 100644 --- a/src/render/mobileopenglgraphics.cpp +++ b/src/render/mobileopenglgraphics.cpp @@ -120,11 +120,14 @@ void MobileOpenGLGraphics::initArrays() } bool MobileOpenGLGraphics::setVideoMode(const int w, const int h, - const int bpp, const bool fs, - const bool hwaccel, const bool resize, + const int scale, + const int bpp, + const bool fs, + const bool hwaccel, + const bool resize, const bool noFrame) { - setMainFlags(w, h, bpp, fs, hwaccel, resize, noFrame); + setMainFlags(w, h, scale, bpp, fs, hwaccel, resize, noFrame); return setOpenGLMode(); } @@ -842,10 +845,12 @@ void MobileOpenGLGraphics::_beginDraw() #ifdef ANDROID glOrthof(0.0, static_cast<float>(mRect.w), - static_cast<float>(mRect.h), 0.0, -1.0, 1.0); + static_cast<float>(mRect.h), + 0.0, -1.0, 1.0); #else glOrtho(0.0, static_cast<double>(mRect.w), - static_cast<double>(mRect.h), 0.0, -1.0, 1.0); + static_cast<double>(mRect.h), + 0.0, -1.0, 1.0); #endif glMatrixMode(GL_MODELVIEW); @@ -969,9 +974,10 @@ bool MobileOpenGLGraphics::pushClipArea(gcn::Rectangle area) glTranslatef(static_cast<GLfloat>(transX), static_cast<GLfloat>(transY), 0); } - glScissor(clipArea.x, mRect.h - clipArea.y - clipArea.height, - clipArea.width, clipArea.height); - + glScissor(clipArea.x * mScale, + (mRect.h - clipArea.y - clipArea.height) * mScale, + clipArea.width * mScale, + clipArea.height * mScale); return result; } @@ -997,8 +1003,10 @@ void MobileOpenGLGraphics::popClipArea() glTranslatef(static_cast<GLfloat>(transX), static_cast<GLfloat>(transY), 0); } - glScissor(clipArea.x, mRect.h - clipArea.y - clipArea.height, - clipArea.width, clipArea.height); + glScissor(clipArea.x * mScale, + (mRect.h - clipArea.y - clipArea.height) * mScale, + clipArea.width * mScale, + clipArea.height * mScale); } #ifdef ANDROID |