Implement COGL_DEBUG=disable-texturing for ARBFp and GLSL fragends
The COGL_DEBUG=disable-texturing debug variable disables texturing in the fixed function fragend by not bothering to enable the texture targets. This wasn't working for the programmable fragends because the texture targets don't need to be enabled to use them. This patch modifies the two programmable backends to generate a constant value for the texture lookups in the shader when the debug variable is given.
This commit is contained in:
parent
bbfe8b8ec4
commit
c3c0804819
@ -381,15 +381,22 @@ setup_texture_source (ArbfpProgramState *arbfp_program_state,
|
||||
{
|
||||
if (!arbfp_program_state->unit_state[unit_index].sampled)
|
||||
{
|
||||
g_string_append_printf (arbfp_program_state->source,
|
||||
"TEMP texel%d;\n"
|
||||
"TEX texel%d,fragment.texcoord[%d],"
|
||||
"texture[%d],%s;\n",
|
||||
unit_index,
|
||||
unit_index,
|
||||
unit_index,
|
||||
unit_index,
|
||||
gl_target_to_arbfp_string (gl_target));
|
||||
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_DISABLE_TEXTURING)))
|
||||
g_string_append_printf (arbfp_program_state->source,
|
||||
"TEMP texel%d;\n"
|
||||
"MOV texel%d, one;\n",
|
||||
unit_index,
|
||||
unit_index);
|
||||
else
|
||||
g_string_append_printf (arbfp_program_state->source,
|
||||
"TEMP texel%d;\n"
|
||||
"TEX texel%d,fragment.texcoord[%d],"
|
||||
"texture[%d],%s;\n",
|
||||
unit_index,
|
||||
unit_index,
|
||||
unit_index,
|
||||
unit_index,
|
||||
gl_target_to_arbfp_string (gl_target));
|
||||
arbfp_program_state->unit_state[unit_index].sampled = TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -350,6 +350,15 @@ add_texture_lookup (GlslShaderState *glsl_shader_state,
|
||||
int unit_index = _cogl_pipeline_layer_get_unit_index (layer);
|
||||
const char *target_string, *tex_coord_swizzle;
|
||||
|
||||
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_DISABLE_TEXTURING)))
|
||||
{
|
||||
g_string_append (glsl_shader_state->source,
|
||||
"vec4 (1.0, 1.0, 1.0, 1.0).");
|
||||
g_string_append (glsl_shader_state->source, swizzle);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
texture = _cogl_pipeline_layer_get_texture (layer);
|
||||
|
||||
if (texture == COGL_INVALID_HANDLE)
|
||||
|
Loading…
Reference in New Issue
Block a user