[Mesa-dev] [PATCH 5/5] mesa: add KHR_no_error support for glScissor*()
Samuel Pitoiset
samuel.pitoiset at gmail.com
Tue Jun 6 19:58:29 UTC 2017
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/mapi/glapi/gen/ARB_viewport_array.xml | 6 +++---
src/mapi/glapi/gen/gl_API.xml | 2 +-
src/mesa/main/scissor.c | 31 +++++++++++++++++++++++++++++++
src/mesa/main/scissor.h | 13 +++++++++++++
4 files changed, 48 insertions(+), 4 deletions(-)
diff --git a/src/mapi/glapi/gen/ARB_viewport_array.xml b/src/mapi/glapi/gen/ARB_viewport_array.xml
index be67912884..3e9c65549e 100644
--- a/src/mapi/glapi/gen/ARB_viewport_array.xml
+++ b/src/mapi/glapi/gen/ARB_viewport_array.xml
@@ -45,19 +45,19 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="4"/>
</function>
- <function name="ScissorArrayv">
+ <function name="ScissorArrayv" no_error="true">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const int *" count="count" count_scale="4"/>
</function>
- <function name="ScissorIndexed">
+ <function name="ScissorIndexed" no_error="true">
<param name="index" type="GLuint"/>
<param name="left" type="GLint"/>
<param name="bottom" type="GLint"/>
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
</function>
- <function name="ScissorIndexedv">
+ <function name="ScissorIndexedv" no_error="true">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *" count="4"/>
</function>
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 8f93318b95..df999248c8 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -2108,7 +2108,7 @@
<glx rop="102"/>
</function>
- <function name="Scissor" es1="1.0" es2="2.0">
+ <function name="Scissor" es1="1.0" es2="2.0" no_error="true">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c
index d94663c6e4..808cb4d5fe 100644
--- a/src/mesa/main/scissor.c
+++ b/src/mesa/main/scissor.c
@@ -83,6 +83,13 @@ scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height)
* Called via glScissor
*/
void GLAPIENTRY
+_mesa_Scissor_no_error(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ scissor(ctx, x, y, width, height);
+}
+
+void GLAPIENTRY
_mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
{
GET_CURRENT_CONTEXT(ctx);
@@ -149,6 +156,15 @@ scissor_array(struct gl_context *ctx, GLuint first, GLsizei count,
* Verifies the parameters and call set_scissor_no_notify to do the work.
*/
void GLAPIENTRY
+_mesa_ScissorArrayv_no_error(GLuint first, GLsizei count, const GLint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ struct gl_scissor_rect *p = (struct gl_scissor_rect *)v;
+ scissor_array(ctx, first, count, p);
+}
+
+void GLAPIENTRY
_mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint *v)
{
int i;
@@ -212,6 +228,14 @@ scissor_indexed_err(struct gl_context *ctx, GLuint index, GLint left,
}
void GLAPIENTRY
+_mesa_ScissorIndexed_no_error(GLuint index, GLint left, GLint bottom,
+ GLsizei width, GLsizei height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_set_scissor(ctx, index, left, bottom, width, height);
+}
+
+void GLAPIENTRY
_mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom,
GLsizei width, GLsizei height)
{
@@ -221,6 +245,13 @@ _mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom,
}
void GLAPIENTRY
+_mesa_ScissorIndexedv_no_error(GLuint index, const GLint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_set_scissor(ctx, index, v[0], v[1], v[2], v[3]);
+}
+
+void GLAPIENTRY
_mesa_ScissorIndexedv(GLuint index, const GLint *v)
{
GET_CURRENT_CONTEXT(ctx);
diff --git a/src/mesa/main/scissor.h b/src/mesa/main/scissor.h
index 1d0fac877b..264873eaf1 100644
--- a/src/mesa/main/scissor.h
+++ b/src/mesa/main/scissor.h
@@ -31,15 +31,28 @@
struct gl_context;
+void GLAPIENTRY
+_mesa_Scissor_no_error(GLint x, GLint y, GLsizei width, GLsizei height);
+
extern void GLAPIENTRY
_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height );
+void GLAPIENTRY
+_mesa_ScissorArrayv_no_error(GLuint first, GLsizei count, const GLint * v);
+
extern void GLAPIENTRY
_mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint * v);
+void GLAPIENTRY
+_mesa_ScissorIndexed_no_error(GLuint index, GLint left, GLint bottom,
+ GLsizei width, GLsizei height);
+
extern void GLAPIENTRY
_mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void GLAPIENTRY
+_mesa_ScissorIndexedv_no_error(GLuint index, const GLint * v);
+
extern void GLAPIENTRY
_mesa_ScissorIndexedv(GLuint index, const GLint * v);
--
2.13.0
More information about the mesa-dev
mailing list