From c1b1cad586115ee37bd808b4241ad881c6ade63e Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Wed, 28 Jun 2017 15:28:13 +1000 Subject: [PATCH] mesa: add KHR_no_error support for glBlendFunc*() Reviewed-by: Samuel Pitoiset --- src/mapi/glapi/gen/gl_API.xml | 4 ++-- src/mesa/main/blend.c | 25 +++++++++++++++++++++++++ src/mesa/main/blend.h | 5 +++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index f726fe3477d..18839ec70c3 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -2545,7 +2545,7 @@ - + @@ -4709,7 +4709,7 @@ - + diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index b06ec334062..32656283115 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -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) { diff --git a/src/mesa/main/blend.h b/src/mesa/main/blend.h index b0a8cbd200b..0f0bb624aee 100644 --- a/src/mesa/main/blend.h +++ b/src/mesa/main/blend.h @@ -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); -- 2.30.2