mesa: add KHR_no_error support for glScissor*()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Samuel Pitoiset 2017-06-06 21:58:29 +02:00
parent e2524a21cb
commit f075c2bc0b
4 changed files with 48 additions and 4 deletions

View file

@ -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>

View file

@ -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"/>

View file

@ -82,6 +82,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)
{
@ -146,6 +153,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)
{
@ -209,6 +225,14 @@ scissor_indexed_err(struct gl_context *ctx, GLuint index, GLint left,
_mesa_set_scissor(ctx, index, left, bottom, width, height);
}
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)
@ -218,6 +242,13 @@ _mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom,
"glScissorIndexed");
}
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)
{

View file

@ -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);