diff options
-rwxr-xr-x | opengl/system/GLESv2_enc/GL2Encoder.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/opengl/system/GLESv2_enc/GL2Encoder.cpp b/opengl/system/GLESv2_enc/GL2Encoder.cpp index efd2d42a..268f76c9 100755 --- a/opengl/system/GLESv2_enc/GL2Encoder.cpp +++ b/opengl/system/GLESv2_enc/GL2Encoder.cpp @@ -1441,7 +1441,15 @@ void GL2Encoder::s_glTexSubImage2D(void* self, GLenum target, GLint level, SET_ERROR_IF((level < 0 || level > log2(maxTextureSize)), GL_INVALID_VALUE); - ctx->m_glTexSubImage2D_enc(ctx, target, level, xoffset, yoffset, width, height, format, type, pixels); + if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) { + ctx->override2DTextureTarget(target); + ctx->m_glTexSubImage2D_enc(ctx, target, level, xoffset, yoffset, width, + height, format, type, pixels); + ctx->restore2DTextureTarget(); + } else { + ctx->m_glTexSubImage2D_enc(ctx, target, level, xoffset, yoffset, width, + height, format, type, pixels); + } } void GL2Encoder::s_glTexParameteriv(void* self, |