identity: implement pipe_context::bind_sampler_states()

This commit is contained in:
Brian Paul
2013-09-12 15:07:33 -06:00
parent aec11d48cf
commit 9564ec8317
+20 -14
View File
@@ -168,21 +168,26 @@ identity_bind_sampler_states(struct pipe_context *_pipe,
struct identity_context *id_pipe = identity_context(_pipe);
struct pipe_context *pipe = id_pipe->pipe;
/* remove this when we have pipe->bind_sampler_states(..., start, ...) */
assert(start == 0);
if (pipe->bind_sampler_states) {
pipe->bind_sampler_states(pipe, shader, start, num_samplers, samplers);
}
else {
/* remove this when we have pipe->bind_sampler_states(..., start, ...) */
assert(start == 0);
switch (shader) {
case PIPE_SHADER_VERTEX:
pipe->bind_vertex_sampler_states(pipe, num_samplers, samplers);
break;
case PIPE_SHADER_GEOMETRY:
pipe->bind_geometry_sampler_states(pipe, num_samplers, samplers);
break;
case PIPE_SHADER_FRAGMENT:
pipe->bind_fragment_sampler_states(pipe, num_samplers, samplers);
break;
default:
debug_error("Unexpected shader in identity_bind_sampler_states()");
switch (shader) {
case PIPE_SHADER_VERTEX:
pipe->bind_vertex_sampler_states(pipe, num_samplers, samplers);
break;
case PIPE_SHADER_GEOMETRY:
pipe->bind_geometry_sampler_states(pipe, num_samplers, samplers);
break;
case PIPE_SHADER_FRAGMENT:
pipe->bind_fragment_sampler_states(pipe, num_samplers, samplers);
break;
default:
debug_error("Unexpected shader in identity_bind_sampler_states()");
}
}
}
@@ -901,6 +906,7 @@ identity_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
id_pipe->base.bind_blend_state = identity_bind_blend_state;
id_pipe->base.delete_blend_state = identity_delete_blend_state;
id_pipe->base.create_sampler_state = identity_create_sampler_state;
id_pipe->base.bind_sampler_states = identity_bind_sampler_states;
id_pipe->base.bind_fragment_sampler_states = identity_bind_fragment_sampler_states;
id_pipe->base.bind_vertex_sampler_states = identity_bind_vertex_sampler_states;
id_pipe->base.delete_sampler_state = identity_delete_sampler_state;