mesa: add KHR_no_error support for glBlendFunc*()

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
Timothy Arceri 2017-06-28 15:28:13 +10:00
parent f21a764092
commit c1b1cad586
3 changed files with 32 additions and 2 deletions

View File

@ -2545,7 +2545,7 @@
<glx rop="159"/>
</function>
<function name="BlendFunc" es1="1.0" es2="2.0">
<function name="BlendFunc" es1="1.0" es2="2.0" no_error="true">
<param name="sfactor" type="GLenum"/>
<param name="dfactor" type="GLenum"/>
<glx rop="160"/>
@ -4709,7 +4709,7 @@
</enum>
<enum name="COMPARE_R_TO_TEXTURE" value="0x884E"/>
<function name="BlendFuncSeparate" es2="2.0">
<function name="BlendFuncSeparate" es2="2.0" no_error="true">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>

View File

@ -278,6 +278,18 @@ _mesa_BlendFunc( GLenum sfactor, GLenum dfactor )
}
void GLAPIENTRY
_mesa_BlendFunc_no_error(GLenum sfactor, GLenum dfactor)
{
GET_CURRENT_CONTEXT(ctx);
if (skip_blend_state_update(ctx, sfactor, dfactor, sfactor, dfactor))
return;
blend_func_separate(ctx, sfactor, dfactor, sfactor, dfactor);
}
/**
* Set the separate blend source/dest factors for all draw buffers.
*
@ -314,6 +326,19 @@ _mesa_BlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB,
}
void GLAPIENTRY
_mesa_BlendFuncSeparate_no_error(GLenum sfactorRGB, GLenum dfactorRGB,
GLenum sfactorA, GLenum dfactorA)
{
GET_CURRENT_CONTEXT(ctx);
if (skip_blend_state_update(ctx, sfactorRGB, dfactorRGB, sfactorA, dfactorA))
return;
blend_func_separate(ctx, sfactorRGB, dfactorRGB, sfactorA, dfactorA);
}
void GLAPIENTRY
_mesa_BlendFunciARB_no_error(GLuint buf, GLenum sfactor, GLenum dfactor)
{

View File

@ -45,11 +45,16 @@ struct gl_framebuffer;
extern void GLAPIENTRY
_mesa_BlendFunc( GLenum sfactor, GLenum dfactor );
extern void GLAPIENTRY
_mesa_BlendFunc_no_error(GLenum sfactor, GLenum dfactor);
extern void GLAPIENTRY
_mesa_BlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB,
GLenum sfactorA, GLenum dfactorA );
extern void GLAPIENTRY
_mesa_BlendFuncSeparate_no_error(GLenum sfactorRGB, GLenum dfactorRGB,
GLenum sfactorA, GLenum dfactorA);
extern void GLAPIENTRY
_mesa_BlendFunciARB_no_error(GLuint buf, GLenum sfactor, GLenum dfactor);