From d691ef2260fb76ac7bdba60e8383db5c27e842b6 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 24 Feb 2012 01:13:44 +0100 Subject: IPHONE: Clean up mouse texture coordinate handling. --- backends/platform/iphone/iphone_video.h | 2 ++ backends/platform/iphone/iphone_video.mm | 24 +++++++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) (limited to 'backends') diff --git a/backends/platform/iphone/iphone_video.h b/backends/platform/iphone/iphone_video.h index 4d6d906a3c..bd32a582e9 100644 --- a/backends/platform/iphone/iphone_video.h +++ b/backends/platform/iphone/iphone_video.h @@ -60,6 +60,8 @@ GLfloat _overlayTexCoords[4 * 2]; CGRect _overlayRect; + GLfloat _mouseTexCoords[4 * 2]; + int _scaledShakeOffsetY; } diff --git a/backends/platform/iphone/iphone_video.mm b/backends/platform/iphone/iphone_video.mm index 621238d1c2..477254f46d 100644 --- a/backends/platform/iphone/iphone_video.mm +++ b/backends/platform/iphone/iphone_video.mm @@ -217,6 +217,11 @@ const char *iPhone_getDocumentsDir() { _overlayTexCoords[4] = _overlayTexCoords[5] = _overlayTexCoords[6] = _overlayTexCoords[7] = 0; + _mouseTexCoords[0] = _mouseTexCoords[1] = + _mouseTexCoords[2] = _mouseTexCoords[3] = + _mouseTexCoords[4] = _mouseTexCoords[5] = + _mouseTexCoords[6] = _mouseTexCoords[7] = 0; + // Initialize the OpenGL ES context [self createContext]; @@ -305,6 +310,9 @@ const char *iPhone_getDocumentsDir() { [self setFilterModeForTexture:_mouseCursorTexture]; } + _mouseTexCoords[2] = _mouseTexCoords[6] = _videoContext.mouseWidth / (GLfloat)_videoContext.mouseTexture.w; + _mouseTexCoords[5] = _mouseTexCoords[7] = _videoContext.mouseHeight / (GLfloat)_videoContext.mouseTexture.h; + glBindTexture(GL_TEXTURE_2D, _mouseCursorTexture); printOpenGLError(); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, _videoContext.mouseTexture.w, _videoContext.mouseTexture.h, 0, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, _videoContext.mouseTexture.pixels); printOpenGLError(); } @@ -383,22 +391,8 @@ const char *iPhone_getDocumentsDir() { //printf("Cursor: width %u height %u\n", _videoContext.mouseWidth, _videoContext.mouseHeight); - float texWidth = _videoContext.mouseWidth / (float)_videoContext.mouseTexture.w; - float texHeight = _videoContext.mouseHeight / (float)_videoContext.mouseTexture.h; - - const GLfloat texCoords[] = { - // Top left - 0 , 0, - // Top right - texWidth, 0, - // Bottom left - 0 , texHeight, - // Bottom right - texWidth, texHeight - }; - glVertexPointer(2, GL_FLOAT, 0, vertices); printOpenGLError(); - glTexCoordPointer(2, GL_FLOAT, 0, texCoords); printOpenGLError(); + glTexCoordPointer(2, GL_FLOAT, 0, _mouseTexCoords); printOpenGLError(); glBindTexture(GL_TEXTURE_2D, _mouseCursorTexture); printOpenGLError(); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); printOpenGLError(); -- cgit v1.2.3