[Mesa-dev] [PATCH 14/21] mesa: add KHR_no_error support for glBlitNamedFramebuffer()

Samuel Pitoiset samuel.pitoiset at gmail.com
Thu Jun 1 13:05:03 UTC 2017


Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/mapi/glapi/gen/ARB_direct_state_access.xml |  2 +-
 src/mesa/main/blit.c                           | 30 ++++++++++++++++++++++++++
 src/mesa/main/blit.h                           |  9 ++++++++
 3 files changed, 40 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 cb24d7981c..54992e5304 100644
--- a/src/mapi/glapi/gen/ARB_direct_state_access.xml
+++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml
@@ -247,7 +247,7 @@
       <param name="stencil" type="GLint" />
    </function>
 
-   <function name="BlitNamedFramebuffer">
+   <function name="BlitNamedFramebuffer" no_error="true">
       <param name="readFramebuffer" type="GLuint" />
       <param name="drawFramebuffer" type="GLuint" />
       <param name="srcX0" type="GLint" />
diff --git a/src/mesa/main/blit.c b/src/mesa/main/blit.c
index 4e5f7b27bf..95a71fca60 100644
--- a/src/mesa/main/blit.c
+++ b/src/mesa/main/blit.c
@@ -606,6 +606,36 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
 
 
 void GLAPIENTRY
+_mesa_BlitNamedFramebuffer_no_error(GLuint readFramebuffer,
+                                    GLuint drawFramebuffer,
+                                    GLint srcX0, GLint srcY0,
+                                    GLint srcX1, GLint srcY1,
+                                    GLint dstX0, GLint dstY0,
+                                    GLint dstX1, GLint dstY1,
+                                    GLbitfield mask, GLenum filter)
+{
+   struct gl_framebuffer *readFb, *drawFb;
+
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (readFramebuffer)
+      readFb = _mesa_lookup_framebuffer(ctx, readFramebuffer);
+   else
+      readFb = ctx->WinSysReadBuffer;
+
+   if (drawFramebuffer)
+      drawFb = _mesa_lookup_framebuffer(ctx, drawFramebuffer);
+   else
+      drawFb = ctx->WinSysDrawBuffer;
+
+   blit_framebuffer(ctx, readFb, drawFb,
+                    srcX0, srcY0, srcX1, srcY1,
+                    dstX0, dstY0, dstX1, dstY1,
+                    mask, filter, true, "glBlitNamedFramebuffer");
+}
+
+
+void GLAPIENTRY
 _mesa_BlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer,
                            GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
                            GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
diff --git a/src/mesa/main/blit.h b/src/mesa/main/blit.h
index 6397518dbd..39021e7be6 100644
--- a/src/mesa/main/blit.h
+++ b/src/mesa/main/blit.h
@@ -45,6 +45,15 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
                          GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
                          GLbitfield mask, GLenum filter);
 
+void GLAPIENTRY
+_mesa_BlitNamedFramebuffer_no_error(GLuint readFramebuffer,
+                                    GLuint drawFramebuffer,
+                                    GLint srcX0, GLint srcY0,
+                                    GLint srcX1, GLint srcY1,
+                                    GLint dstX0, GLint dstY0,
+                                    GLint dstX1, GLint dstY1,
+                                    GLbitfield mask, GLenum filter);
+
 extern void GLAPIENTRY
 _mesa_BlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer,
                            GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
-- 
2.13.0



More information about the mesa-dev mailing list