cogl: Eliminate _cogl_gl_util_get_texture_target_string

Its results are effectively constant now. Fold them into the callers and
remove the function.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/546
This commit is contained in:
Adam Jackson 2019-03-08 14:41:27 -05:00
parent e71f44dbd6
commit 2b9cd50e84
4 changed files with 7 additions and 63 deletions

View File

@ -233,14 +233,9 @@ add_layer_declaration_cb (CoglPipelineLayer *layer,
void *user_data) void *user_data)
{ {
CoglPipelineShaderState *shader_state = user_data; CoglPipelineShaderState *shader_state = user_data;
const char *target_string;
_cogl_gl_util_get_texture_target_string (COGL_TEXTURE_TYPE_2D,
&target_string, NULL);
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
"uniform sampler%s cogl_sampler%i;\n", "uniform sampler2D cogl_sampler%i;\n",
target_string,
layer->index); layer->index);
return TRUE; return TRUE;
@ -410,17 +405,12 @@ ensure_texture_lookup_generated (CoglPipelineShaderState *shader_state,
{ {
int unit_index = _cogl_pipeline_layer_get_unit_index (layer); int unit_index = _cogl_pipeline_layer_get_unit_index (layer);
CoglPipelineSnippetData snippet_data; CoglPipelineSnippetData snippet_data;
const char *target_string, *tex_coord_swizzle;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (shader_state->unit_state[unit_index].sampled) if (shader_state->unit_state[unit_index].sampled)
return; return;
_cogl_gl_util_get_texture_target_string (COGL_TEXTURE_TYPE_2D,
&target_string,
&tex_coord_swizzle);
shader_state->unit_state[unit_index].sampled = TRUE; shader_state->unit_state[unit_index].sampled = TRUE;
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
@ -451,20 +441,18 @@ ensure_texture_lookup_generated (CoglPipelineShaderState *shader_state,
{ {
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
"vec4\n" "vec4\n"
"cogl_real_texture_lookup%i (sampler%s tex,\n" "cogl_real_texture_lookup%i (sampler2D tex,\n"
" vec4 coords)\n" " vec4 coords)\n"
"{\n" "{\n"
" return ", " return ",
layer->index, layer->index);
target_string);
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_DISABLE_TEXTURING))) if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_DISABLE_TEXTURING)))
g_string_append (shader_state->header, g_string_append (shader_state->header,
"vec4 (1.0, 1.0, 1.0, 1.0);\n"); "vec4 (1.0, 1.0, 1.0, 1.0);\n");
else else
g_string_append_printf (shader_state->header, g_string_append (shader_state->header,
"texture%s (tex, coords.%s);\n", "texture2D (tex, coords.st);\n");
target_string, tex_coord_swizzle);
g_string_append (shader_state->header, "}\n"); g_string_append (shader_state->header, "}\n");
} }
@ -483,8 +471,7 @@ ensure_texture_lookup_generated (CoglPipelineShaderState *shader_state,
snippet_data.return_variable = "cogl_texel"; snippet_data.return_variable = "cogl_texel";
snippet_data.arguments = "cogl_sampler, cogl_tex_coord"; snippet_data.arguments = "cogl_sampler, cogl_tex_coord";
snippet_data.argument_declarations = snippet_data.argument_declarations =
g_strdup_printf ("sampler%s cogl_sampler, vec4 cogl_tex_coord", g_strdup ("sampler2D cogl_sampler, vec4 cogl_tex_coord");
target_string);
snippet_data.source_buf = shader_state->header; snippet_data.source_buf = shader_state->header;
_cogl_pipeline_snippet_generate_code (&snippet_data); _cogl_pipeline_snippet_generate_code (&snippet_data);

View File

@ -169,14 +169,9 @@ add_layer_declaration_cb (CoglPipelineLayer *layer,
void *user_data) void *user_data)
{ {
CoglPipelineShaderState *shader_state = user_data; CoglPipelineShaderState *shader_state = user_data;
const char *target_string;
_cogl_gl_util_get_texture_target_string (COGL_TEXTURE_TYPE_2D,
&target_string, NULL);
g_string_append_printf (shader_state->header, g_string_append_printf (shader_state->header,
"uniform sampler%s cogl_sampler%i;\n", "uniform sampler2D cogl_sampler%i;\n",
target_string,
layer->index); layer->index);
return TRUE; return TRUE;

View File

@ -85,11 +85,6 @@ _cogl_gl_util_clear_gl_errors (CoglContext *ctx);
gboolean gboolean
_cogl_gl_util_catch_out_of_memory (CoglContext *ctx, CoglError **error); _cogl_gl_util_catch_out_of_memory (CoglContext *ctx, CoglError **error);
void
_cogl_gl_util_get_texture_target_string (CoglTextureType texture_type,
const char **target_string_out,
const char **swizzle_out);
/* Parses a GL version number stored in a string. @version_string must /* Parses a GL version number stored in a string. @version_string must
* point to the beginning of the version number (ie, it can't point to * point to the beginning of the version number (ie, it can't point to
* the "OpenGL ES" part on GLES). The version number can be followed * the "OpenGL ES" part on GLES). The version number can be followed

View File

@ -127,39 +127,6 @@ _cogl_gl_util_catch_out_of_memory (CoglContext *ctx, CoglError **error)
return FALSE; return FALSE;
} }
void
_cogl_gl_util_get_texture_target_string (CoglTextureType texture_type,
const char **target_string_out,
const char **swizzle_out)
{
const char *target_string, *tex_coord_swizzle;
switch (texture_type)
{
#if 0 /* TODO */
case COGL_TEXTURE_TYPE_1D:
target_string = "1D";
tex_coord_swizzle = "s";
break;
#endif
case COGL_TEXTURE_TYPE_2D:
target_string = "2D";
tex_coord_swizzle = "st";
break;
default:
target_string = "Unknown";
tex_coord_swizzle = NULL;
g_assert_not_reached ();
}
if (target_string_out)
*target_string_out = target_string;
if (swizzle_out)
*swizzle_out = tex_coord_swizzle;
}
gboolean gboolean
_cogl_gl_util_parse_gl_version (const char *version_string, _cogl_gl_util_parse_gl_version (const char *version_string,
int *major_out, int *major_out,