--- src/mapi/glapi/gen/ARB_direct_state_access.xml | 2 +- src/mesa/main/fbobject.c | 26 ++++++++++++++++++++++++++ src/mesa/main/fbobject.h | 3 +++ 3 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index 2f3d60f..2f2ba20 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -164,21 +164,21 @@ <param name="renderbuffertarget" type="GLenum" /> <param name="renderbuffer" type="GLuint" /> </function> <function name="NamedFramebufferParameteri"> <param name="framebuffer" type="GLuint" /> <param name="pname" type="GLenum" /> <param name="param" type="GLint" /> </function> - <function name="NamedFramebufferTexture"> + <function name="NamedFramebufferTexture" no_error="true"> <param name="framebuffer" type="GLuint" /> <param name="attachment" type="GLenum" /> <param name="texture" type="GLuint" /> <param name="level" type="GLint" /> </function> <function name="NamedFramebufferTextureLayer" no_error="true"> <param name="framebuffer" type="GLuint" /> <param name="attachment" type="GLenum" /> <param name="texture" type="GLuint" /> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 7901328..64416df 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -3658,20 +3658,46 @@ _mesa_FramebufferTexture(GLenum target, GLenum attachment, struct gl_renderbuffer_attachment *att = _mesa_get_and_validate_attachment(ctx, fb, attachment, func); if (!att) return; _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, 0, level, 0, layered); } +void GLAPIENTRY +_mesa_NamedFramebufferTexture_no_error(GLuint framebuffer, GLenum attachment, + GLuint texture, GLint level) +{ + GET_CURRENT_CONTEXT(ctx); + + /* Get the framebuffer object */ + struct gl_framebuffer *fb = _mesa_lookup_framebuffer(ctx, framebuffer); + + /* 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 = "glNamedFramebufferTexture"; + 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_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) { GET_CURRENT_CONTEXT(ctx); struct gl_framebuffer *fb; struct gl_texture_object *texObj; GLboolean layered = GL_FALSE; diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 1d064f8..1c9056d 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -258,20 +258,23 @@ _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_no_error(GLuint framebuffer, 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, GLuint renderbuffer); extern void GLAPIENTRY _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev