}
-enum pipe_error cso_set_sampler_textures( struct cso_context *ctx,
- uint count,
- struct pipe_texture **textures )
-{
- uint i;
-
- ctx->nr_fragment_sampler_views = count;
-
- for (i = 0; i < count; i++) {
- struct pipe_sampler_view templ, *view;
-
- u_sampler_view_default_template(&templ,
- textures[i],
- textures[i]->format);
-
- view = ctx->pipe->create_sampler_view(ctx->pipe,
- textures[i],
- &templ);
-
- pipe_sampler_view_reference(&ctx->fragment_sampler_views[i], view);
- }
- for ( ; i < PIPE_MAX_SAMPLERS; i++) {
- pipe_sampler_view_reference(&ctx->fragment_sampler_views[i], NULL);
- }
-
- ctx->pipe->set_fragment_sampler_views(ctx->pipe,
- count,
- ctx->fragment_sampler_views);
-
- return PIPE_OK;
-}
-
-void cso_save_sampler_textures( struct cso_context *ctx )
-{
- uint i;
-
- ctx->nr_fragment_sampler_views_saved = ctx->nr_fragment_sampler_views;
- for (i = 0; i < ctx->nr_fragment_sampler_views; i++) {
- assert(!ctx->fragment_sampler_views_saved[i]);
-
- pipe_sampler_view_reference(&ctx->fragment_sampler_views_saved[i],
- ctx->fragment_sampler_views[i]);
- }
-}
-
-void cso_restore_sampler_textures( struct cso_context *ctx )
-{
- uint i;
-
- ctx->nr_fragment_sampler_views = ctx->nr_fragment_sampler_views_saved;
-
- for (i = 0; i < ctx->nr_fragment_sampler_views; i++) {
- pipe_sampler_view_reference(&ctx->fragment_sampler_views[i], NULL);
- ctx->fragment_sampler_views[i] = ctx->fragment_sampler_views_saved[i];
- ctx->fragment_sampler_views_saved[i] = NULL;
- }
- for ( ; i < PIPE_MAX_SAMPLERS; i++) {
- pipe_sampler_view_reference(&ctx->fragment_sampler_views[i], NULL);
- }
-
- ctx->pipe->set_fragment_sampler_views(ctx->pipe,
- ctx->nr_fragment_sampler_views,
- ctx->fragment_sampler_views);
-
- ctx->nr_fragment_sampler_views_saved = 0;
-}
-
-
enum pipe_error cso_set_depth_stencil_alpha(struct cso_context *ctx,
const struct pipe_depth_stencil_alpha_state *templ)
{
cso_single_vertex_sampler_done(struct cso_context *cso);
-
-enum pipe_error cso_set_sampler_textures( struct cso_context *cso,
- uint count,
- struct pipe_texture **textures );
-void cso_save_sampler_textures( struct cso_context *cso );
-void cso_restore_sampler_textures( struct cso_context *cso );
-
-
enum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
unsigned count,
const struct pipe_vertex_element *states);