diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_context.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_state.h | 9 | ||||
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_state_sampler.c | 29 | 
3 files changed, 40 insertions, 0 deletions
| diff --git a/src/gallium/drivers/softpipe/sp_context.c b/src/gallium/drivers/softpipe/sp_context.c index 858e118bc6..0c74b490fe 100644 --- a/src/gallium/drivers/softpipe/sp_context.c +++ b/src/gallium/drivers/softpipe/sp_context.c @@ -254,6 +254,8 @@ softpipe_create_context( struct pipe_screen *screen,     softpipe->pipe.set_scissor_state = softpipe_set_scissor_state;     softpipe->pipe.set_fragment_sampler_views = softpipe_set_sampler_views;     softpipe->pipe.set_vertex_sampler_views = softpipe_set_vertex_sampler_views; +   softpipe->pipe.create_sampler_view = softpipe_create_sampler_view; +   softpipe->pipe.sampler_view_destroy = softpipe_sampler_view_destroy;     softpipe->pipe.set_viewport_state = softpipe_set_viewport_state;     softpipe->pipe.set_vertex_buffers = softpipe_set_vertex_buffers; diff --git a/src/gallium/drivers/softpipe/sp_state.h b/src/gallium/drivers/softpipe/sp_state.h index ba9bbfe68a..b37bb95152 100644 --- a/src/gallium/drivers/softpipe/sp_state.h +++ b/src/gallium/drivers/softpipe/sp_state.h @@ -175,6 +175,15 @@ softpipe_set_vertex_sampler_views(struct pipe_context *,                                    unsigned num,                                    struct pipe_sampler_view **); +struct pipe_sampler_view * +softpipe_create_sampler_view(struct pipe_context *pipe, +                             struct pipe_texture *texture, +                             const struct pipe_sampler_view *templ); + +void +softpipe_sampler_view_destroy(struct pipe_context *pipe, +                              struct pipe_sampler_view *view); +  void softpipe_set_viewport_state( struct pipe_context *,                                    const struct pipe_viewport_state * ); diff --git a/src/gallium/drivers/softpipe/sp_state_sampler.c b/src/gallium/drivers/softpipe/sp_state_sampler.c index c985b5c3e0..5a92e2223e 100644 --- a/src/gallium/drivers/softpipe/sp_state_sampler.c +++ b/src/gallium/drivers/softpipe/sp_state_sampler.c @@ -121,6 +121,35 @@ softpipe_bind_vertex_sampler_states(struct pipe_context *pipe,  } +struct pipe_sampler_view * +softpipe_create_sampler_view(struct pipe_context *pipe, +                             struct pipe_texture *texture, +                             const struct pipe_sampler_view *templ) +{ +   struct softpipe_context *softpipe = softpipe_context(pipe); +   struct pipe_sampler_view *view = CALLOC_STRUCT(pipe_sampler_view); + +   *view = *templ; +   view->reference.count = 1; +   view->texture = NULL; +   pipe_texture_reference(&view->texture, texture); +   view->context = pipe; + +   return view; +} + + +void +softpipe_sampler_view_destroy(struct pipe_context *pipe, +                              struct pipe_sampler_view *view) +{ +   struct softpipe_context *softpipe = softpipe_context(pipe); + +   pipe_texture_reference(&view->texture, NULL); +   FREE(view); +} + +  void  softpipe_set_sampler_views(struct pipe_context *pipe,                             unsigned num, | 
