diff options
author | José Fonseca <[email protected]> | 2010-01-27 14:45:56 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-02-22 21:46:00 +0000 |
commit | 12d5203bb39a6146c5fd08b66f49b4fc1feb1162 (patch) | |
tree | 81f8153a7d1013843ef4af547fc1013a8df54bcd | |
parent | edd85bcd6bc92beaf266a602da76d2aefe836a8e (diff) |
svga: Fix PIPE_LOGICOP_INVERT.
Actually the current XOR implementation is an INVERT.
This fixes rectangle selection in Maya.
-rw-r--r-- | src/gallium/drivers/svga/svga_pipe_blend.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/gallium/drivers/svga/svga_pipe_blend.c b/src/gallium/drivers/svga/svga_pipe_blend.c index b60117f090e..594eec7166e 100644 --- a/src/gallium/drivers/svga/svga_pipe_blend.c +++ b/src/gallium/drivers/svga/svga_pipe_blend.c @@ -92,6 +92,7 @@ svga_create_blend_state(struct pipe_context *pipe, if (templ->logicop_enable) { switch (templ->logicop_func) { case PIPE_LOGICOP_XOR: + case PIPE_LOGICOP_INVERT: blend->need_white_fragments = TRUE; blend->rt[i].blend_enable = TRUE; blend->rt[i].srcblend = SVGA3D_BLENDOP_ONE; @@ -125,12 +126,6 @@ svga_create_blend_state(struct pipe_context *pipe, blend->rt[i].dstblend = SVGA3D_BLENDOP_ONE; blend->rt[i].blendeq = SVGA3D_BLENDEQ_MAXIMUM; break; - case PIPE_LOGICOP_INVERT: - blend->rt[i].blend_enable = TRUE; - blend->rt[i].srcblend = SVGA3D_BLENDOP_INVSRCCOLOR; - blend->rt[i].dstblend = SVGA3D_BLENDOP_ZERO; - blend->rt[i].blendeq = SVGA3D_BLENDEQ_ADD; - break; case PIPE_LOGICOP_AND: /* Approximate with minimum - works for the 0 & anything case: */ blend->rt[i].blend_enable = TRUE; |