mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-22 19:20:22 +01:00
softpipe: Implement PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE for destination.
It is a valid and tested combination on D3D9.
This commit is contained in:
parent
e0590159ce
commit
67034b9efc
1 changed files with 10 additions and 2 deletions
|
|
@ -478,7 +478,15 @@ blend_quad(struct quad_stage *qs,
|
|||
VEC4_MUL(dest[2], dest[2], dest[2]); /* B */
|
||||
break;
|
||||
case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE:
|
||||
assert(0); /* illegal */
|
||||
{
|
||||
const float *alpha = quadColor[3];
|
||||
float diff[4], temp[4];
|
||||
VEC4_SUB(diff, one, dest[3]);
|
||||
VEC4_MIN(temp, alpha, diff);
|
||||
VEC4_MUL(dest[0], quadColor[0], temp); /* R */
|
||||
VEC4_MUL(dest[1], quadColor[1], temp); /* G */
|
||||
VEC4_MUL(dest[2], quadColor[2], temp); /* B */
|
||||
}
|
||||
break;
|
||||
case PIPE_BLENDFACTOR_CONST_COLOR:
|
||||
{
|
||||
|
|
@ -600,7 +608,7 @@ blend_quad(struct quad_stage *qs,
|
|||
VEC4_MUL(dest[3], dest[3], dest[3]); /* A */
|
||||
break;
|
||||
case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE:
|
||||
assert(0); /* illegal */
|
||||
/* dest = dest * 1 NO-OP, leave dest as-is */
|
||||
break;
|
||||
case PIPE_BLENDFACTOR_CONST_COLOR:
|
||||
/* fall-through */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue