gallium: Add support for multiple viewports
Gallium supported only a single viewport/scissor combination. This commit changes the interface to allow us to add support for multiple viewports/scissors. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Marek Olšák <maraeo@gmail.com> Reviewed-by: José Fonseca<jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
@@ -693,28 +693,30 @@ rbug_set_polygon_stipple(struct pipe_context *_pipe,
|
||||
}
|
||||
|
||||
static void
|
||||
rbug_set_scissor_state(struct pipe_context *_pipe,
|
||||
const struct pipe_scissor_state *scissor)
|
||||
rbug_set_scissor_states(struct pipe_context *_pipe,
|
||||
unsigned start_slot,
|
||||
unsigned num_scissors,
|
||||
const struct pipe_scissor_state *scissor)
|
||||
{
|
||||
struct rbug_context *rb_pipe = rbug_context(_pipe);
|
||||
struct pipe_context *pipe = rb_pipe->pipe;
|
||||
|
||||
pipe_mutex_lock(rb_pipe->call_mutex);
|
||||
pipe->set_scissor_state(pipe,
|
||||
scissor);
|
||||
pipe->set_scissor_states(pipe, start_slot, num_scissors, scissor);
|
||||
pipe_mutex_unlock(rb_pipe->call_mutex);
|
||||
}
|
||||
|
||||
static void
|
||||
rbug_set_viewport_state(struct pipe_context *_pipe,
|
||||
const struct pipe_viewport_state *viewport)
|
||||
rbug_set_viewport_states(struct pipe_context *_pipe,
|
||||
unsigned start_slot,
|
||||
unsigned num_viewports,
|
||||
const struct pipe_viewport_state *viewport)
|
||||
{
|
||||
struct rbug_context *rb_pipe = rbug_context(_pipe);
|
||||
struct pipe_context *pipe = rb_pipe->pipe;
|
||||
|
||||
pipe_mutex_lock(rb_pipe->call_mutex);
|
||||
pipe->set_viewport_state(pipe,
|
||||
viewport);
|
||||
pipe->set_viewport_states(pipe, start_slot, num_viewports, viewport);
|
||||
pipe_mutex_unlock(rb_pipe->call_mutex);
|
||||
}
|
||||
|
||||
@@ -1171,8 +1173,8 @@ rbug_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
|
||||
rb_pipe->base.set_constant_buffer = rbug_set_constant_buffer;
|
||||
rb_pipe->base.set_framebuffer_state = rbug_set_framebuffer_state;
|
||||
rb_pipe->base.set_polygon_stipple = rbug_set_polygon_stipple;
|
||||
rb_pipe->base.set_scissor_state = rbug_set_scissor_state;
|
||||
rb_pipe->base.set_viewport_state = rbug_set_viewport_state;
|
||||
rb_pipe->base.set_scissor_states = rbug_set_scissor_states;
|
||||
rb_pipe->base.set_viewport_states = rbug_set_viewport_states;
|
||||
rb_pipe->base.set_fragment_sampler_views = rbug_set_fragment_sampler_views;
|
||||
rb_pipe->base.set_vertex_sampler_views = rbug_set_vertex_sampler_views;
|
||||
rb_pipe->base.set_vertex_buffers = rbug_set_vertex_buffers;
|
||||
|
Reference in New Issue
Block a user