diff options
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_tile_fs.c')
-rw-r--r-- | src/mesa/pipe/softpipe/sp_tile_fs.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/mesa/pipe/softpipe/sp_tile_fs.c b/src/mesa/pipe/softpipe/sp_tile_fs.c index c145fcf089..912831fefa 100644 --- a/src/mesa/pipe/softpipe/sp_tile_fs.c +++ b/src/mesa/pipe/softpipe/sp_tile_fs.c @@ -33,6 +33,7 @@ */ #include "glheader.h" +#include "imports.h" #include "sp_context.h" #include "sp_headers.h" #include "sp_tile.h" @@ -116,9 +117,10 @@ static INLINE void pinterp( struct exec_machine *exec, /* This should be done by the fragment shader execution unit (code * generated from the decl instructions). Do it here for now. */ -void quad_shade( struct softpipe_context *softpipe, - struct quad_header *quad ) +static void +shade_quad( struct quad_stage *qs, struct quad_header *quad ) { + struct softpipe_context *softpipe = qs->softpipe; struct exec_machine exec; GLfloat fx = quad->x0; GLfloat fy = quad->y0; @@ -190,14 +192,17 @@ void quad_shade( struct softpipe_context *softpipe, } #endif - - if (quad->mask) - quad_output( softpipe, quad ); + qs->next->run(qs->next, quad); } +struct quad_stage *sp_quad_shade_stage( struct softpipe_context *softpipe ) +{ + struct quad_stage *stage = CALLOC_STRUCT(quad_stage); + stage->softpipe = softpipe; + stage->run = shade_quad; - - + return stage; +} |