Module: Mesa Branch: master Commit: 7e4cb32d05cdf948a60632270e75b5513e780b28 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e4cb32d05cdf948a60632270e75b5513e780b28
Author: Ian Romanick <[email protected]> Date: Sun Oct 2 14:50:21 2011 -0700 mesa/es: Validate FBO attachment enum in Mesa code rather than the ES wrapper Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> --- src/mesa/main/APIspec.xml | 27 --------------------------- src/mesa/main/fbobject.c | 7 ++++++- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml index 0f82d0a..2b277a0 100644 --- a/src/mesa/main/APIspec.xml +++ b/src/mesa/main/APIspec.xml @@ -3217,15 +3217,6 @@ <value name="GL_FRAMEBUFFER" category="GLES2.0"/> </desc> - <desc name="attachment"> - <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/> - <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/> - <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/> - <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/> - <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/> - <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/> - </desc> - <desc name="renderbuffertarget"> <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/> <value name="GL_RENDERBUFFER" category="GLES2.0"/> @@ -3247,15 +3238,6 @@ <value name="GL_FRAMEBUFFER" category="GLES2.0"/> </desc> - <desc name="attachment"> - <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/> - <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/> - <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/> - <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/> - <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/> - <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/> - </desc> - <desc name="textarget" error="GL_INVALID_OPERATION"> <value name="GL_TEXTURE_2D"/> <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/> @@ -3292,15 +3274,6 @@ <value name="GL_FRAMEBUFFER" category="GLES2.0"/> </desc> - <desc name="attachment"> - <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/> - <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/> - <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/> - <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/> - <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/> - <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/> - </desc> - <desc name="textarget" error="GL_INVALID_OPERATION"> <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/> </desc> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 139ff03..2e0af97 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -239,17 +239,22 @@ _mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, case GL_COLOR_ATTACHMENT14_EXT: case GL_COLOR_ATTACHMENT15_EXT: i = attachment - GL_COLOR_ATTACHMENT0_EXT; - if (i >= ctx->Const.MaxColorAttachments) { + if (i >= ctx->Const.MaxColorAttachments + || (i > 0 && ctx->API != API_OPENGL)) { return NULL; } return &fb->Attachment[BUFFER_COLOR0 + i]; case GL_DEPTH_STENCIL_ATTACHMENT: + if (ctx->API != API_OPENGL) + return NULL; /* fall-through */ case GL_DEPTH_BUFFER: /* fall-through / new in GL 3.0 */ case GL_DEPTH_ATTACHMENT_EXT: return &fb->Attachment[BUFFER_DEPTH]; case GL_STENCIL_BUFFER: + if (ctx->API != API_OPENGL) + return NULL; /* fall-through / new in GL 3.0 */ case GL_STENCIL_ATTACHMENT_EXT: return &fb->Attachment[BUFFER_STENCIL]; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
