mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 04:50:11 +01:00
gallium/indices: introduce u_primconvert_config
This struct allows us to pass the configuration as a struct, which can more easily be extended to take more arguemnts as long as we're careful about zero-initialization. We keep the old create-function, but implement it as a wrapper on top so we don't have to update all existing call-sites right now. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
This commit is contained in:
parent
c2e9cd3f77
commit
21952f1400
2 changed files with 20 additions and 5 deletions
|
|
@ -52,22 +52,30 @@
|
|||
struct primconvert_context
|
||||
{
|
||||
struct pipe_context *pipe;
|
||||
uint32_t primtypes_mask;
|
||||
struct primconvert_config cfg;
|
||||
unsigned api_pv;
|
||||
};
|
||||
|
||||
|
||||
struct primconvert_context *
|
||||
util_primconvert_create(struct pipe_context *pipe, uint32_t primtypes_mask)
|
||||
util_primconvert_create_config(struct pipe_context *pipe,
|
||||
struct primconvert_config *cfg)
|
||||
{
|
||||
struct primconvert_context *pc = CALLOC_STRUCT(primconvert_context);
|
||||
if (!pc)
|
||||
return NULL;
|
||||
pc->pipe = pipe;
|
||||
pc->primtypes_mask = primtypes_mask;
|
||||
pc->cfg = *cfg;
|
||||
return pc;
|
||||
}
|
||||
|
||||
struct primconvert_context *
|
||||
util_primconvert_create(struct pipe_context *pipe, uint32_t primtypes_mask)
|
||||
{
|
||||
struct primconvert_config cfg = { .primtypes_mask = primtypes_mask };
|
||||
return util_primconvert_create_config(pipe, &cfg);
|
||||
}
|
||||
|
||||
void
|
||||
util_primconvert_destroy(struct primconvert_context *pc)
|
||||
{
|
||||
|
|
@ -110,7 +118,7 @@ util_primconvert_draw_vbo(struct primconvert_context *pc,
|
|||
enum pipe_prim_type mode = 0;
|
||||
unsigned index_size;
|
||||
|
||||
u_index_translator(pc->primtypes_mask,
|
||||
u_index_translator(pc->cfg.primtypes_mask,
|
||||
info->mode, info->index_size, info->count,
|
||||
pc->api_pv, pc->api_pv,
|
||||
info->primitive_restart ? PR_ENABLE : PR_DISABLE,
|
||||
|
|
@ -129,7 +137,7 @@ util_primconvert_draw_vbo(struct primconvert_context *pc,
|
|||
enum pipe_prim_type mode = 0;
|
||||
unsigned index_size;
|
||||
|
||||
u_index_generator(pc->primtypes_mask,
|
||||
u_index_generator(pc->cfg.primtypes_mask,
|
||||
info->mode, info->start, info->count,
|
||||
pc->api_pv, pc->api_pv,
|
||||
&mode, &index_size, &new_info.count,
|
||||
|
|
|
|||
|
|
@ -31,8 +31,15 @@
|
|||
|
||||
struct primconvert_context;
|
||||
|
||||
struct primconvert_config {
|
||||
uint32_t primtypes_mask;
|
||||
};
|
||||
|
||||
struct primconvert_context *util_primconvert_create(struct pipe_context *pipe,
|
||||
uint32_t primtypes_mask);
|
||||
struct primconvert_context *util_primconvert_create_config(struct pipe_context *pipe,
|
||||
struct primconvert_config *cfg);
|
||||
|
||||
void util_primconvert_destroy(struct primconvert_context *pc);
|
||||
void util_primconvert_save_rasterizer_state(struct primconvert_context *pc,
|
||||
const struct pipe_rasterizer_state
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue