aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBo Hu <bohu@google.com>2020-06-17 03:16:39 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-06-17 03:16:39 +0000
commita260d5b0d4f0c90230e0450ad0c45e15eda5d0a7 (patch)
tree7085e840cf6a8d34b14bf64ab8f946ba75b5e01d
parent6c667b4fb6521361d94a4f16c945fb8384f22625 (diff)
parente947575d2239b7b324c9b77a4ec84abcc265002f (diff)
downloaddevice_generic_goldfish-opengl-android11-dev.tar.gz
device_generic_goldfish-opengl-android11-dev.tar.bz2
device_generic_goldfish-opengl-android11-dev.zip
Merge "Squelch negative counts/lengths in glInvalidate(Sub)Framebuffer" into rvc-devandroid11-dev
-rwxr-xr-xsystem/GLESv2_enc/GL2Encoder.cpp17
-rw-r--r--system/GLESv2_enc/GL2Encoder.h8
2 files changed, 25 insertions, 0 deletions
diff --git a/system/GLESv2_enc/GL2Encoder.cpp b/system/GLESv2_enc/GL2Encoder.cpp
index 1f0b7a01..bafd1b6a 100755
--- a/system/GLESv2_enc/GL2Encoder.cpp
+++ b/system/GLESv2_enc/GL2Encoder.cpp
@@ -372,6 +372,9 @@ GL2Encoder::GL2Encoder(IOStream *stream, ChecksumCalculator *protocol)
OVERRIDE_CUSTOM(glReadnPixelsEXT);
OVERRIDE_CUSTOM(glGetnUniformfvEXT);
OVERRIDE_CUSTOM(glGetnUniformivEXT);
+
+ OVERRIDE(glInvalidateFramebuffer);
+ OVERRIDE(glInvalidateSubFramebuffer);
}
GL2Encoder::~GL2Encoder()
@@ -5441,3 +5444,17 @@ void GL2Encoder::s_glGetnUniformivEXT(void *self, GLuint program, GLint location
location)), GL_INVALID_OPERATION);
s_glGetUniformiv(self, program, location, params);
}
+
+void GL2Encoder::s_glInvalidateFramebuffer(void* self, GLenum target, GLsizei numAttachments, const GLenum *attachments) {
+ GL2Encoder *ctx = (GL2Encoder*)self;
+ SET_ERROR_IF(numAttachments < 0, GL_INVALID_VALUE);
+ ctx->m_glInvalidateFramebuffer_enc(ctx, target, numAttachments, attachments);
+}
+
+void GL2Encoder::s_glInvalidateSubFramebuffer(void* self, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
+ GL2Encoder *ctx = (GL2Encoder*)self;
+ SET_ERROR_IF(numAttachments < 0, GL_INVALID_VALUE);
+ SET_ERROR_IF(width < 0, GL_INVALID_VALUE);
+ SET_ERROR_IF(height < 0, GL_INVALID_VALUE);
+ ctx->m_glInvalidateSubFramebuffer_enc(ctx, target, numAttachments, attachments, x, y, width, height);
+}
diff --git a/system/GLESv2_enc/GL2Encoder.h b/system/GLESv2_enc/GL2Encoder.h
index b85bc0da..0ceb9deb 100644
--- a/system/GLESv2_enc/GL2Encoder.h
+++ b/system/GLESv2_enc/GL2Encoder.h
@@ -761,6 +761,14 @@ private:
GLsizei bufSize, GLfloat* params);
static void s_glGetnUniformivEXT(void *self, GLuint program, GLint location,
GLsizei bufSize, GLint* params);
+
+ // Invalidate framebuffer
+ static void s_glInvalidateFramebuffer(void* self, GLenum target, GLsizei numAttachments, const GLenum *attachments);
+ static void s_glInvalidateSubFramebuffer(void* self, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+
+ glInvalidateFramebuffer_client_proc_t m_glInvalidateFramebuffer_enc;
+ glInvalidateSubFramebuffer_client_proc_t m_glInvalidateSubFramebuffer_enc;;
+
public:
glEGLImageTargetTexture2DOES_client_proc_t m_glEGLImageTargetTexture2DOES_enc;