softpipe: plug in softpipe's texture samplers into draw module.

This commit is contained in:
Brian 2008-12-02 22:40:08 -07:00
parent f2bccfd3c8
commit b9604fe769
2 changed files with 18 additions and 0 deletions

View file

@ -221,6 +221,14 @@ softpipe_create( struct pipe_screen *screen,
softpipe->quad[i].output = sp_quad_output_stage(softpipe);
}
for (i = 0; i < PIPE_MAX_SAMPLERS; i++) {
softpipe->tgsi.samplers[i].base.get_samples = sp_get_samples;
softpipe->tgsi.samplers[i].unit = i;
softpipe->tgsi.samplers[i].sp = softpipe;
softpipe->tgsi.samplers[i].cache = softpipe->tex_cache[i];
softpipe->tgsi.samplers_list[i] = &softpipe->tgsi.samplers[i];
}
/*
* Create drawing context and plug our rendering stage into it.
*/
@ -228,6 +236,9 @@ softpipe_create( struct pipe_screen *screen,
if (!softpipe->draw)
goto fail;
draw_texture_samplers(softpipe->draw,
PIPE_MAX_SAMPLERS, softpipe->tgsi.samplers_list);
softpipe->setup = sp_draw_render_stage(softpipe);
if (!softpipe->setup)
goto fail;

View file

@ -37,6 +37,7 @@
#include "draw/draw_vertex.h"
#include "sp_quad.h"
#include "sp_tex_sample.h"
/**
@ -139,6 +140,12 @@ struct softpipe_context {
struct quad_stage *first; /**< points to one of the above stages */
} quad[SP_NUM_QUAD_THREADS];
/** TGSI exec things */
struct {
struct sp_shader_sampler samplers[PIPE_MAX_SAMPLERS];
struct sp_shader_sampler *samplers_list[PIPE_MAX_SAMPLERS];
} tgsi;
/** The primitive drawing context */
struct draw_context *draw;
struct draw_stage *setup;