mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
id: Implement separate vertex sampler state.
This commit is contained in:
parent
3f900c33ae
commit
f2f7bd855a
1 changed files with 49 additions and 9 deletions
|
|
@ -221,18 +221,31 @@ identity_create_sampler_state(struct pipe_context *_pipe,
|
|||
}
|
||||
|
||||
static void
|
||||
identity_bind_sampler_states(struct pipe_context *_pipe,
|
||||
unsigned num,
|
||||
void **samplers)
|
||||
identity_bind_fragment_sampler_states(struct pipe_context *_pipe,
|
||||
unsigned num_samplers,
|
||||
void **samplers)
|
||||
{
|
||||
struct identity_context *id_pipe = identity_context(_pipe);
|
||||
struct pipe_context *pipe = id_pipe->pipe;
|
||||
|
||||
pipe->bind_fragment_sampler_states(pipe,
|
||||
num,
|
||||
num_samplers,
|
||||
samplers);
|
||||
}
|
||||
|
||||
static void
|
||||
identity_bind_vertex_sampler_states(struct pipe_context *_pipe,
|
||||
unsigned num_samplers,
|
||||
void **samplers)
|
||||
{
|
||||
struct identity_context *id_pipe = identity_context(_pipe);
|
||||
struct pipe_context *pipe = id_pipe->pipe;
|
||||
|
||||
pipe->bind_vertex_sampler_states(pipe,
|
||||
num_samplers,
|
||||
samplers);
|
||||
}
|
||||
|
||||
static void
|
||||
identity_delete_sampler_state(struct pipe_context *_pipe,
|
||||
void *sampler)
|
||||
|
|
@ -480,9 +493,9 @@ identity_set_viewport_state(struct pipe_context *_pipe,
|
|||
}
|
||||
|
||||
static void
|
||||
identity_set_sampler_textures(struct pipe_context *_pipe,
|
||||
unsigned num_textures,
|
||||
struct pipe_texture **_textures)
|
||||
identity_set_fragment_sampler_textures(struct pipe_context *_pipe,
|
||||
unsigned num_textures,
|
||||
struct pipe_texture **_textures)
|
||||
{
|
||||
struct identity_context *id_pipe = identity_context(_pipe);
|
||||
struct pipe_context *pipe = id_pipe->pipe;
|
||||
|
|
@ -504,6 +517,31 @@ identity_set_sampler_textures(struct pipe_context *_pipe,
|
|||
textures);
|
||||
}
|
||||
|
||||
static void
|
||||
identity_set_vertex_sampler_textures(struct pipe_context *_pipe,
|
||||
unsigned num_textures,
|
||||
struct pipe_texture **_textures)
|
||||
{
|
||||
struct identity_context *id_pipe = identity_context(_pipe);
|
||||
struct pipe_context *pipe = id_pipe->pipe;
|
||||
struct pipe_texture *unwrapped_textures[PIPE_MAX_VERTEX_SAMPLERS];
|
||||
struct pipe_texture **textures = NULL;
|
||||
unsigned i;
|
||||
|
||||
if (_textures) {
|
||||
for (i = 0; i < num_textures; i++)
|
||||
unwrapped_textures[i] = identity_texture_unwrap(_textures[i]);
|
||||
for (; i < PIPE_MAX_VERTEX_SAMPLERS; i++)
|
||||
unwrapped_textures[i] = NULL;
|
||||
|
||||
textures = unwrapped_textures;
|
||||
}
|
||||
|
||||
pipe->set_vertex_sampler_textures(pipe,
|
||||
num_textures,
|
||||
textures);
|
||||
}
|
||||
|
||||
static void
|
||||
identity_set_vertex_buffers(struct pipe_context *_pipe,
|
||||
unsigned num_buffers,
|
||||
|
|
@ -682,7 +720,8 @@ 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_fragment_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;
|
||||
id_pipe->base.create_rasterizer_state = identity_create_rasterizer_state;
|
||||
id_pipe->base.bind_rasterizer_state = identity_bind_rasterizer_state;
|
||||
|
|
@ -703,7 +742,8 @@ identity_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
|
|||
id_pipe->base.set_polygon_stipple = identity_set_polygon_stipple;
|
||||
id_pipe->base.set_scissor_state = identity_set_scissor_state;
|
||||
id_pipe->base.set_viewport_state = identity_set_viewport_state;
|
||||
id_pipe->base.set_fragment_sampler_textures = identity_set_sampler_textures;
|
||||
id_pipe->base.set_fragment_sampler_textures = identity_set_vertex_sampler_textures;
|
||||
id_pipe->base.set_vertex_sampler_textures = identity_set_vertex_sampler_textures;
|
||||
id_pipe->base.set_vertex_buffers = identity_set_vertex_buffers;
|
||||
id_pipe->base.set_vertex_elements = identity_set_vertex_elements;
|
||||
id_pipe->base.surface_copy = identity_surface_copy;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue