Squelch negative counts/lengths in glInvalidate(Sub)Framebuffer
Bug: 158890590
Change-Id: I8e4d688ea413cdef755f8efcfec1a1fd19822693
Merged-In: I8e4d688ea413cdef755f8efcfec1a1fd19822693
diff --git a/system/GLESv2_enc/GL2Encoder.cpp b/system/GLESv2_enc/GL2Encoder.cpp
index 3ad9420..1fbd316 100755
--- a/system/GLESv2_enc/GL2Encoder.cpp
+++ b/system/GLESv2_enc/GL2Encoder.cpp
@@ -372,6 +372,9 @@
OVERRIDE_CUSTOM(glReadnPixelsEXT);
OVERRIDE_CUSTOM(glGetnUniformfvEXT);
OVERRIDE_CUSTOM(glGetnUniformivEXT);
+
+ OVERRIDE(glInvalidateFramebuffer);
+ OVERRIDE(glInvalidateSubFramebuffer);
}
GL2Encoder::~GL2Encoder()
@@ -5436,3 +5439,17 @@
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 b85bc0d..0ceb9de 100644
--- a/system/GLESv2_enc/GL2Encoder.h
+++ b/system/GLESv2_enc/GL2Encoder.h
@@ -761,6 +761,14 @@
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;