mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-19 08:28:21 +02:00
fix GL_MIN/MAX w/ glBlendFuncSeparate bug (Ian Romanick)
This commit is contained in:
parent
b3b725b1e6
commit
63f4e198b4
1 changed files with 21 additions and 22 deletions
|
|
@ -685,9 +685,6 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Analyze current blending parameters to pick fastest blending function.
|
||||
* Result: the ctx->Color.BlendFunc pointer is updated.
|
||||
|
|
@ -700,7 +697,27 @@ void _swrast_choose_blend_func( GLcontext *ctx )
|
|||
const GLenum srcA = ctx->Color.BlendSrcA;
|
||||
const GLenum dstA = ctx->Color.BlendDstA;
|
||||
|
||||
if (srcRGB != srcA || dstRGB != dstA) {
|
||||
if (eq==GL_MIN_EXT) {
|
||||
/* Note: GL_MIN ignores the blending weight factors */
|
||||
#if defined(USE_MMX_ASM)
|
||||
if ( cpu_has_mmx ) {
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = _mesa_mmx_blend_min;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_min;
|
||||
}
|
||||
else if (eq==GL_MAX_EXT) {
|
||||
/* Note: GL_MAX ignores the blending weight factors */
|
||||
#if defined(USE_MMX_ASM)
|
||||
if ( cpu_has_mmx ) {
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = _mesa_mmx_blend_max;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_max;
|
||||
}
|
||||
else if (srcRGB != srcA || dstRGB != dstA) {
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_general;
|
||||
}
|
||||
else if (eq==GL_FUNC_ADD_EXT && srcRGB==GL_SRC_ALPHA
|
||||
|
|
@ -735,24 +752,6 @@ void _swrast_choose_blend_func( GLcontext *ctx )
|
|||
#endif
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_modulate;
|
||||
}
|
||||
else if (eq==GL_MIN_EXT) {
|
||||
#if defined(USE_MMX_ASM)
|
||||
if ( cpu_has_mmx ) {
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = _mesa_mmx_blend_min;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_min;
|
||||
}
|
||||
else if (eq==GL_MAX_EXT) {
|
||||
#if defined(USE_MMX_ASM)
|
||||
if ( cpu_has_mmx ) {
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = _mesa_mmx_blend_max;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_max;
|
||||
}
|
||||
else if (eq==GL_FUNC_ADD_EXT && srcRGB == GL_ZERO && dstRGB == GL_ONE) {
|
||||
SWRAST_CONTEXT(ctx)->BlendFunc = blend_noop;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue