aboutsummaryrefslogtreecommitdiffstats
path: root/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2014-04-17 12:12:46 +0200
committerDavid 'Digit' Turner <digit@google.com>2014-04-17 12:12:46 +0200
commit2a4aa00b0f579a3be0e8449914e65c9329253611 (patch)
tree4eeec415f485774bbe84d7267c6f040333a90ea4 /emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
parent3630e36f8fe89f59f464807828c55d37424dbcfa (diff)
downloadsdk-2a4aa00b0f579a3be0e8449914e65c9329253611.zip
sdk-2a4aa00b0f579a3be0e8449914e65c9329253611.tar.gz
sdk-2a4aa00b0f579a3be0e8449914e65c9329253611.tar.bz2
emulator/opengl: Backport fixes from master branch.
This back-ports several fixes from aosp/master branch into idea133: 145e25 Fix the Google Maps crash issue e33909 Support GL_MAX_TEXTURE_SIZE case to glGetIntegerv API c6dd20 Fix Mac build. Change-Id: I26a05956c3b926dddeb638c6cff979199075ecbb
Diffstat (limited to 'emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp')
-rw-r--r--emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp b/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
index c96ba52..fe64f6f 100644
--- a/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
+++ b/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
@@ -940,11 +940,19 @@ GL_APICALL void GL_APIENTRY glGetFloatv(GLenum pname, GLfloat* params){
}
GL_APICALL void GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params){
+ int destroyCtx = 0;
GET_CTX();
+ if (!ctx) {
+ ctx = createGLESContext();
+ if (ctx)
+ destroyCtx = 1;
+ }
if (ctx->glGetIntegerv(pname,params))
{
- return;
+ if (destroyCtx)
+ deleteGLESContext(ctx);
+ return;
}
bool es2 = ctx->getCaps()->GL_ARB_ES2_COMPATIBILITY;
@@ -1030,6 +1038,8 @@ GL_APICALL void GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params){
default:
ctx->dispatcher().glGetIntegerv(pname,params);
}
+ if (destroyCtx)
+ deleteGLESContext(ctx);
}
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params){