cogl/pipeline/glsl: Distinguish between pipeline state types

Both the fragend and vertend shader state was called
"CoglPipelineShaderState", which was rather annoying, especially when
the type needs to be exposed outside of the .c file as part of moving
out unit tests. Make the types unique. This also avoids confusing what
type one is looking at.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555>
This commit is contained in:
Jonas Ådahl 2022-08-05 11:46:31 +02:00 committed by Marge Bot
parent 2c72032668
commit 04bbe31287
2 changed files with 37 additions and 37 deletions

View File

@ -99,7 +99,7 @@ typedef struct
CoglList layers; CoglList layers;
CoglPipelineCacheEntry *cache_entry; CoglPipelineCacheEntry *cache_entry;
} CoglPipelineShaderState; } CoglPipelineFragendShaderState;
static CoglUserDataKey shader_state_key; static CoglUserDataKey shader_state_key;
@ -107,13 +107,13 @@ static void
ensure_layer_generated (CoglPipeline *pipeline, ensure_layer_generated (CoglPipeline *pipeline,
int layer_num); int layer_num);
static CoglPipelineShaderState * static CoglPipelineFragendShaderState *
shader_state_new (int n_layers, shader_state_new (int n_layers,
CoglPipelineCacheEntry *cache_entry) CoglPipelineCacheEntry *cache_entry)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineFragendShaderState *shader_state;
shader_state = g_new0 (CoglPipelineShaderState, 1); shader_state = g_new0 (CoglPipelineFragendShaderState, 1);
shader_state->ref_count = 1; shader_state->ref_count = 1;
shader_state->unit_state = g_new0 (UnitState, n_layers); shader_state->unit_state = g_new0 (UnitState, n_layers);
shader_state->cache_entry = cache_entry; shader_state->cache_entry = cache_entry;
@ -121,7 +121,7 @@ shader_state_new (int n_layers,
return shader_state; return shader_state;
} }
static CoglPipelineShaderState * static CoglPipelineFragendShaderState *
get_shader_state (CoglPipeline *pipeline) get_shader_state (CoglPipeline *pipeline)
{ {
return cogl_object_get_user_data (COGL_OBJECT (pipeline), &shader_state_key); return cogl_object_get_user_data (COGL_OBJECT (pipeline), &shader_state_key);
@ -131,7 +131,7 @@ static void
destroy_shader_state (void *user_data, destroy_shader_state (void *user_data,
void *instance) void *instance)
{ {
CoglPipelineShaderState *shader_state = user_data; CoglPipelineFragendShaderState *shader_state = user_data;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
@ -151,7 +151,7 @@ destroy_shader_state (void *user_data,
} }
static void static void
set_shader_state (CoglPipeline *pipeline, CoglPipelineShaderState *shader_state) set_shader_state (CoglPipeline *pipeline, CoglPipelineFragendShaderState *shader_state)
{ {
if (shader_state) if (shader_state)
{ {
@ -182,7 +182,7 @@ dirty_shader_state (CoglPipeline *pipeline)
GLuint GLuint
_cogl_pipeline_fragend_glsl_get_shader (CoglPipeline *pipeline) _cogl_pipeline_fragend_glsl_get_shader (CoglPipeline *pipeline)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineFragendShaderState *shader_state = get_shader_state (pipeline);
if (shader_state) if (shader_state)
return shader_state->gl_shader; return shader_state->gl_shader;
@ -230,7 +230,7 @@ static gboolean
add_layer_declaration_cb (CoglPipelineLayer *layer, add_layer_declaration_cb (CoglPipelineLayer *layer,
void *user_data) void *user_data)
{ {
CoglPipelineShaderState *shader_state = user_data; CoglPipelineFragendShaderState *shader_state = user_data;
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
"uniform sampler2D cogl_sampler%i;\n", "uniform sampler2D cogl_sampler%i;\n",
@ -241,7 +241,7 @@ add_layer_declaration_cb (CoglPipelineLayer *layer,
static void static void
add_layer_declarations (CoglPipeline *pipeline, add_layer_declarations (CoglPipeline *pipeline,
CoglPipelineShaderState *shader_state) CoglPipelineFragendShaderState *shader_state)
{ {
/* We always emit sampler uniforms in case there will be custom /* We always emit sampler uniforms in case there will be custom
* layer snippets that want to sample arbitrary layers. */ * layer snippets that want to sample arbitrary layers. */
@ -253,7 +253,7 @@ add_layer_declarations (CoglPipeline *pipeline,
static void static void
add_global_declarations (CoglPipeline *pipeline, add_global_declarations (CoglPipeline *pipeline,
CoglPipelineShaderState *shader_state) CoglPipelineFragendShaderState *shader_state)
{ {
CoglSnippetHook hook = COGL_SNIPPET_HOOK_FRAGMENT_GLOBALS; CoglSnippetHook hook = COGL_SNIPPET_HOOK_FRAGMENT_GLOBALS;
CoglPipelineSnippetList *snippets = get_fragment_snippets (pipeline); CoglPipelineSnippetList *snippets = get_fragment_snippets (pipeline);
@ -271,7 +271,7 @@ _cogl_pipeline_fragend_glsl_start (CoglPipeline *pipeline,
int n_layers, int n_layers,
unsigned long pipelines_difference) unsigned long pipelines_difference)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineFragendShaderState *shader_state;
CoglPipeline *authority; CoglPipeline *authority;
CoglPipelineCacheEntry *cache_entry = NULL; CoglPipelineCacheEntry *cache_entry = NULL;
CoglProgram *user_program = cogl_pipeline_get_user_program (pipeline); CoglProgram *user_program = cogl_pipeline_get_user_program (pipeline);
@ -386,7 +386,7 @@ _cogl_pipeline_fragend_glsl_start (CoglPipeline *pipeline,
} }
static void static void
add_constant_lookup (CoglPipelineShaderState *shader_state, add_constant_lookup (CoglPipelineFragendShaderState *shader_state,
CoglPipeline *pipeline, CoglPipeline *pipeline,
CoglPipelineLayer *layer, CoglPipelineLayer *layer,
const char *swizzle) const char *swizzle)
@ -397,7 +397,7 @@ add_constant_lookup (CoglPipelineShaderState *shader_state,
} }
static void static void
ensure_texture_lookup_generated (CoglPipelineShaderState *shader_state, ensure_texture_lookup_generated (CoglPipelineFragendShaderState *shader_state,
CoglPipeline *pipeline, CoglPipeline *pipeline,
CoglPipelineLayer *layer) CoglPipelineLayer *layer)
{ {
@ -481,7 +481,7 @@ ensure_texture_lookup_generated (CoglPipelineShaderState *shader_state,
} }
static void static void
add_arg (CoglPipelineShaderState *shader_state, add_arg (CoglPipelineFragendShaderState *shader_state,
CoglPipeline *pipeline, CoglPipeline *pipeline,
CoglPipelineLayer *layer, CoglPipelineLayer *layer,
int previous_layer_index, int previous_layer_index,
@ -577,7 +577,7 @@ ensure_arg_generated (CoglPipeline *pipeline,
int previous_layer_index, int previous_layer_index,
CoglPipelineCombineSource src) CoglPipelineCombineSource src)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineFragendShaderState *shader_state = get_shader_state (pipeline);
switch (src) switch (src)
{ {
@ -650,7 +650,7 @@ append_masked_combine (CoglPipeline *pipeline,
CoglPipelineCombineSource *src, CoglPipelineCombineSource *src,
CoglPipelineCombineOp *op) CoglPipelineCombineOp *op)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineFragendShaderState *shader_state = get_shader_state (pipeline);
GString *shader_source = shader_state->header; GString *shader_source = shader_state->header;
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
@ -747,7 +747,7 @@ static void
ensure_layer_generated (CoglPipeline *pipeline, ensure_layer_generated (CoglPipeline *pipeline,
int layer_index) int layer_index)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineFragendShaderState *shader_state = get_shader_state (pipeline);
CoglPipelineLayer *combine_authority; CoglPipelineLayer *combine_authority;
CoglPipelineLayerBigState *big_state; CoglPipelineLayerBigState *big_state;
CoglPipelineLayer *layer; CoglPipelineLayer *layer;
@ -877,7 +877,7 @@ _cogl_pipeline_fragend_glsl_add_layer (CoglPipeline *pipeline,
CoglPipelineLayer *layer, CoglPipelineLayer *layer,
unsigned long layers_difference) unsigned long layers_difference)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineFragendShaderState *shader_state = get_shader_state (pipeline);
LayerData *layer_data; LayerData *layer_data;
if (!shader_state->source) if (!shader_state->source)
@ -910,7 +910,7 @@ _cogl_pipeline_fragend_glsl_add_layer (CoglPipeline *pipeline,
static void static void
add_alpha_test_snippet (CoglPipeline *pipeline, add_alpha_test_snippet (CoglPipeline *pipeline,
CoglPipelineShaderState *shader_state) CoglPipelineFragendShaderState *shader_state)
{ {
CoglPipelineAlphaFunc alpha_func; CoglPipelineAlphaFunc alpha_func;
@ -974,7 +974,7 @@ static gboolean
_cogl_pipeline_fragend_glsl_end (CoglPipeline *pipeline, _cogl_pipeline_fragend_glsl_end (CoglPipeline *pipeline,
unsigned long pipelines_difference) unsigned long pipelines_difference)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineFragendShaderState *shader_state = get_shader_state (pipeline);
_COGL_GET_CONTEXT (ctx, FALSE); _COGL_GET_CONTEXT (ctx, FALSE);

View File

@ -59,23 +59,23 @@ typedef struct
GString *header, *source; GString *header, *source;
CoglPipelineCacheEntry *cache_entry; CoglPipelineCacheEntry *cache_entry;
} CoglPipelineShaderState; } CoglPipelineVertendShaderState;
static CoglUserDataKey shader_state_key; static CoglUserDataKey shader_state_key;
static CoglPipelineShaderState * static CoglPipelineVertendShaderState *
shader_state_new (CoglPipelineCacheEntry *cache_entry) shader_state_new (CoglPipelineCacheEntry *cache_entry)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineVertendShaderState *shader_state;
shader_state = g_new0 (CoglPipelineShaderState, 1); shader_state = g_new0 (CoglPipelineVertendShaderState, 1);
shader_state->ref_count = 1; shader_state->ref_count = 1;
shader_state->cache_entry = cache_entry; shader_state->cache_entry = cache_entry;
return shader_state; return shader_state;
} }
static CoglPipelineShaderState * static CoglPipelineVertendShaderState *
get_shader_state (CoglPipeline *pipeline) get_shader_state (CoglPipeline *pipeline)
{ {
return cogl_object_get_user_data (COGL_OBJECT (pipeline), &shader_state_key); return cogl_object_get_user_data (COGL_OBJECT (pipeline), &shader_state_key);
@ -85,7 +85,7 @@ static void
destroy_shader_state (void *user_data, destroy_shader_state (void *user_data,
void *instance) void *instance)
{ {
CoglPipelineShaderState *shader_state = user_data; CoglPipelineVertendShaderState *shader_state = user_data;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
@ -104,7 +104,7 @@ destroy_shader_state (void *user_data,
static void static void
set_shader_state (CoglPipeline *pipeline, set_shader_state (CoglPipeline *pipeline,
CoglPipelineShaderState *shader_state) CoglPipelineVertendShaderState *shader_state)
{ {
if (shader_state) if (shader_state)
{ {
@ -279,7 +279,7 @@ _cogl_glsl_shader_set_source_with_boilerplate (CoglContext *ctx,
GLuint GLuint
_cogl_pipeline_vertend_glsl_get_shader (CoglPipeline *pipeline) _cogl_pipeline_vertend_glsl_get_shader (CoglPipeline *pipeline)
{ {
CoglPipelineShaderState *shader_state = get_shader_state (pipeline); CoglPipelineVertendShaderState *shader_state = get_shader_state (pipeline);
if (shader_state) if (shader_state)
return shader_state->gl_shader; return shader_state->gl_shader;
@ -310,7 +310,7 @@ static gboolean
add_layer_declaration_cb (CoglPipelineLayer *layer, add_layer_declaration_cb (CoglPipelineLayer *layer,
void *user_data) void *user_data)
{ {
CoglPipelineShaderState *shader_state = user_data; CoglPipelineVertendShaderState *shader_state = user_data;
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
"uniform sampler2D cogl_sampler%i;\n", "uniform sampler2D cogl_sampler%i;\n",
@ -321,7 +321,7 @@ add_layer_declaration_cb (CoglPipelineLayer *layer,
static void static void
add_layer_declarations (CoglPipeline *pipeline, add_layer_declarations (CoglPipeline *pipeline,
CoglPipelineShaderState *shader_state) CoglPipelineVertendShaderState *shader_state)
{ {
/* We always emit sampler uniforms in case there will be custom /* We always emit sampler uniforms in case there will be custom
* layer snippets that want to sample arbitrary layers. */ * layer snippets that want to sample arbitrary layers. */
@ -333,7 +333,7 @@ add_layer_declarations (CoglPipeline *pipeline,
static void static void
add_global_declarations (CoglPipeline *pipeline, add_global_declarations (CoglPipeline *pipeline,
CoglPipelineShaderState *shader_state) CoglPipelineVertendShaderState *shader_state)
{ {
CoglSnippetHook hook = COGL_SNIPPET_HOOK_VERTEX_GLOBALS; CoglSnippetHook hook = COGL_SNIPPET_HOOK_VERTEX_GLOBALS;
CoglPipelineSnippetList *snippets = get_vertex_snippets (pipeline); CoglPipelineSnippetList *snippets = get_vertex_snippets (pipeline);
@ -351,7 +351,7 @@ _cogl_pipeline_vertend_glsl_start (CoglPipeline *pipeline,
int n_layers, int n_layers,
unsigned long pipelines_difference) unsigned long pipelines_difference)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineVertendShaderState *shader_state;
CoglPipelineCacheEntry *cache_entry = NULL; CoglPipelineCacheEntry *cache_entry = NULL;
CoglProgram *user_program = cogl_pipeline_get_user_program (pipeline); CoglProgram *user_program = cogl_pipeline_get_user_program (pipeline);
@ -473,7 +473,7 @@ _cogl_pipeline_vertend_glsl_add_layer (CoglPipeline *pipeline,
unsigned long layers_difference, unsigned long layers_difference,
CoglFramebuffer *framebuffer) CoglFramebuffer *framebuffer)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineVertendShaderState *shader_state;
CoglPipelineSnippetData snippet_data; CoglPipelineSnippetData snippet_data;
int layer_index = layer->index; int layer_index = layer->index;
@ -544,7 +544,7 @@ static gboolean
_cogl_pipeline_vertend_glsl_end (CoglPipeline *pipeline, _cogl_pipeline_vertend_glsl_end (CoglPipeline *pipeline,
unsigned long pipelines_difference) unsigned long pipelines_difference)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineVertendShaderState *shader_state;
_COGL_GET_CONTEXT (ctx, FALSE); _COGL_GET_CONTEXT (ctx, FALSE);
@ -712,7 +712,7 @@ _cogl_pipeline_vertend_glsl_layer_pre_change_notify (
CoglPipelineLayer *layer, CoglPipelineLayer *layer,
CoglPipelineLayerState change) CoglPipelineLayerState change)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineVertendShaderState *shader_state;
shader_state = get_shader_state (owner); shader_state = get_shader_state (owner);
if (!shader_state) if (!shader_state)
@ -743,7 +743,7 @@ UNIT_TEST (check_point_size_shader,
0 /* no failure cases */) 0 /* no failure cases */)
{ {
CoglPipeline *pipelines[4]; CoglPipeline *pipelines[4];
CoglPipelineShaderState *shader_states[G_N_ELEMENTS (pipelines)]; CoglPipelineVertendShaderState *shader_states[G_N_ELEMENTS (pipelines)];
int i; int i;
/* Default pipeline with zero point size */ /* Default pipeline with zero point size */