Module: Mesa Branch: master Commit: f075c2bc0b249efe59a818c89de20de81279e3d9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f075c2bc0b249efe59a818c89de20de81279e3d9
Author: Samuel Pitoiset <samuel.pitoi...@gmail.com> Date: Tue Jun 6 21:58:29 2017 +0200 mesa: add KHR_no_error support for glScissor*() Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> Reviewed-by: Timothy Arceri <tarc...@itsqueeze.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 50d01a4692..c04c64ca3f 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); @@ -147,6 +154,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; @@ -210,6 +226,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) { @@ -219,6 +243,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); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit