--- src/mapi/glapi/gen/GL3x.xml | 2 +- src/mesa/main/fbobject.c | 27 +++++++++++++++++++++++++++ src/mesa/main/fbobject.h | 3 +++ 3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/mapi/glapi/gen/GL3x.xml b/src/mapi/glapi/gen/GL3x.xml index d2c768d..10c157e 100644 --- a/src/mapi/glapi/gen/GL3x.xml +++ b/src/mapi/glapi/gen/GL3x.xml @@ -600,21 +600,21 @@ <param name="index" type="GLuint"/> <param name="data" type="GLint64 *"/> </function> <function name="GetBufferParameteri64v" es2="3.0"> <param name="target" type="GLenum"/> <param name="pname" type="GLenum"/> <param name="params" type="GLint64 *"/> </function> - <function name="FramebufferTexture" es2="3.2"> + <function name="FramebufferTexture" es2="3.2" no_error="true"> <param name="target" type="GLenum"/> <param name="attachment" type="GLenum"/> <param name="texture" type="GLuint"/> <param name="level" type="GLint"/> </function> </category> <category name="3.3"> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 1d3c1b5..7901328 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -3585,20 +3585,47 @@ _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, _mesa_get_and_validate_attachment(ctx, fb, attachment, func); if (!att) return; _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget, level, layer, GL_FALSE); } void GLAPIENTRY +_mesa_FramebufferTexture_no_error(GLenum target, GLenum attachment, + GLuint texture, GLint level) +{ + GET_CURRENT_CONTEXT(ctx); + + /* Get the framebuffer object */ + struct gl_framebuffer *fb = get_framebuffer_target(ctx, target); + + /* Get the texture object */ + struct gl_texture_object *texObj = + get_texture_for_framebuffer(ctx, texture); + + struct gl_renderbuffer_attachment *att = + get_attachment(ctx, fb, attachment, NULL); + + GLboolean layered = GL_FALSE; + const char *func = "FramebufferTexture"; + if (texObj) { + check_layered_texture_target(ctx, texObj->Target, func, &layered); + } + + _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, 0, level, + 0, layered); +} + + +void GLAPIENTRY _mesa_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level) { GET_CURRENT_CONTEXT(ctx); struct gl_framebuffer *fb; struct gl_texture_object *texObj; GLboolean layered = GL_FALSE; const char *func = "FramebufferTexture"; diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index a2f9264..1d064f8 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -251,20 +251,23 @@ _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment, extern void GLAPIENTRY _mesa_NamedFramebufferTextureLayer_no_error(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); extern void GLAPIENTRY _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); extern void GLAPIENTRY +_mesa_FramebufferTexture_no_error(GLenum target, GLenum attachment, + GLuint texture, GLint level); +extern void GLAPIENTRY _mesa_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level); extern void GLAPIENTRY _mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); extern void GLAPIENTRY _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev