From 70d6f3e2b9ee6fba682c8e0bc48e6df8410b9a58 Mon Sep 17 00:00:00 2001 From: Yochai Shefi Simchon Date: Wed, 27 Jul 2011 15:14:56 +0300 Subject: [PATCH] opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D texture=0 has a special meaning - detach texture. Therefore we should pass it on as 0 rather than look for the global name in the name space. Change-Id: If7d0174a7fd07fc13a75430312b605497653f01b --- .../opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp index 69781f1f0..4439782f4 100644 --- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp +++ b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp @@ -612,10 +612,18 @@ GL_APICALL void GL_APIENTRY glFramebufferTexture2D(GLenum target, GLenum attach GLESv2Validate::framebufferAttachment(attachment)),GL_INVALID_ENUM); SET_ERROR_IF(level != 0, GL_INVALID_VALUE); - if(ctx->shareGroup().Ptr()) { + if(texture == 0) + { + // Special case - detach texture + ctx->dispatcher().glFramebufferTexture2DEXT(target,attachment,textarget,0,level); + } + else + { + if(ctx->shareGroup().Ptr()) { ObjectLocalName texname = TextureLocalName(textarget,texture); GLuint globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,texname); ctx->dispatcher().glFramebufferTexture2DEXT(target,attachment,textarget,globalTextureName,level); + } } }