diff options
Diffstat (limited to 'src/gallium/drivers/llvmpipe')
-rw-r--r-- | src/gallium/drivers/llvmpipe/Makefile | 1 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/SConscript | 1 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_quad_stipple.c | 85 |
3 files changed, 0 insertions, 87 deletions
diff --git a/src/gallium/drivers/llvmpipe/Makefile b/src/gallium/drivers/llvmpipe/Makefile index 91a2e2ee74..fbd1300c85 100644 --- a/src/gallium/drivers/llvmpipe/Makefile +++ b/src/gallium/drivers/llvmpipe/Makefile @@ -33,7 +33,6 @@ C_SOURCES = \ lp_quad_blend.c \ lp_quad_pipe.c \ lp_quad_fs.c \ - lp_quad_stipple.c \ lp_query.c \ lp_screen.c \ lp_state_blend.c \ diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript index b8b577fe5a..614d92b0f5 100644 --- a/src/gallium/drivers/llvmpipe/SConscript +++ b/src/gallium/drivers/llvmpipe/SConscript @@ -37,7 +37,6 @@ llvmpipe = env.ConvenienceLibrary( 'lp_quad_blend.c', 'lp_quad_pipe.c', 'lp_quad_fs.c', - 'lp_quad_stipple.c', 'lp_query.c', 'lp_screen.c', 'lp_state_blend.c', diff --git a/src/gallium/drivers/llvmpipe/lp_quad_stipple.c b/src/gallium/drivers/llvmpipe/lp_quad_stipple.c deleted file mode 100644 index b89978fd5f..0000000000 --- a/src/gallium/drivers/llvmpipe/lp_quad_stipple.c +++ /dev/null @@ -1,85 +0,0 @@ - -/** - * quad polygon stipple stage - */ - -#include "lp_context.h" -#include "lp_quad.h" -#include "lp_quad_pipe.h" -#include "pipe/p_defines.h" -#include "util/u_memory.h" - - -/** - * Apply polygon stipple to quads produced by triangle rasterization - */ -static void -stipple_quad(struct quad_stage *qs, struct quad_header *quads[], unsigned nr) -{ - static const uint bit31 = 1 << 31; - static const uint bit30 = 1 << 30; - unsigned pass = nr; - - struct llvmpipe_context *llvmpipe = qs->llvmpipe; - unsigned q; - - pass = 0; - - for (q = 0; q < nr; q++) { - struct quad_header *quad = quads[q]; - - const int col0 = quad->input.x0 % 32; - const int y0 = quad->input.y0; - const int y1 = y0 + 1; - const uint stipple0 = llvmpipe->poly_stipple.stipple[y0 % 32]; - const uint stipple1 = llvmpipe->poly_stipple.stipple[y1 % 32]; - - if (!quad->inout.mask) - continue; - - /* turn off quad mask bits that fail the stipple test */ - if ((stipple0 & (bit31 >> col0)) == 0) - quad->inout.mask &= ~MASK_TOP_LEFT; - - if ((stipple0 & (bit30 >> col0)) == 0) - quad->inout.mask &= ~MASK_TOP_RIGHT; - - if ((stipple1 & (bit31 >> col0)) == 0) - quad->inout.mask &= ~MASK_BOTTOM_LEFT; - - if ((stipple1 & (bit30 >> col0)) == 0) - quad->inout.mask &= ~MASK_BOTTOM_RIGHT; - - if (quad->inout.mask) - ++pass; - } - - if(pass) - qs->next->run(qs->next, quads, nr); -} - - -static void stipple_begin(struct quad_stage *qs) -{ - qs->next->begin(qs->next); -} - - -static void stipple_destroy(struct quad_stage *qs) -{ - FREE( qs ); -} - - -struct quad_stage * -lp_quad_polygon_stipple_stage( struct llvmpipe_context *llvmpipe ) -{ - struct quad_stage *stage = CALLOC_STRUCT(quad_stage); - - stage->llvmpipe = llvmpipe; - stage->begin = stipple_begin; - stage->run = stipple_quad; - stage->destroy = stipple_destroy; - - return stage; -} |