[Mesa-dev] [PATCH 12/13] mesa: add KHR_no_error support for FramebufferTexture
Timothy Arceri
tarceri at itsqueeze.com
Mon May 8 06:35:36 UTC 2017
---
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
More information about the mesa-dev
mailing list