mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 19:42:05 +00:00
material: remove override options from _cogl_material_equal
As a follow on to using cogl_material_copy instead of flush options this patch now removes the ability to pass flush options to _cogl_material_equal which is the final reference to the CoglMaterialFlushOptions mechanism.
This commit is contained in:
parent
3979de6982
commit
6b5281401c
@ -349,9 +349,7 @@ compare_entry_materials (CoglJournalEntry *entry0, CoglJournalEntry *entry1)
|
||||
* that we that we are able to batch the 90% common cases, but may not
|
||||
* look at less common differences. */
|
||||
if (_cogl_material_equal (entry0->material,
|
||||
NULL,
|
||||
entry1->material,
|
||||
NULL,
|
||||
TRUE))
|
||||
return TRUE;
|
||||
else
|
||||
@ -797,7 +795,7 @@ _cogl_journal_log_quad (const float *position,
|
||||
_cogl_material_apply_legacy_state (source);
|
||||
}
|
||||
|
||||
flush_options.flags = COGL_MATERIAL_FLUSH_SKIP_GL_COLOR;
|
||||
flush_options.flags = 0;
|
||||
if (G_UNLIKELY (cogl_material_get_n_layers (material) != n_layers))
|
||||
{
|
||||
disable_layers = (1 << n_layers) - 1;
|
||||
|
@ -688,9 +688,7 @@ _cogl_material_flush_gl_state (CoglHandle material,
|
||||
|
||||
gboolean
|
||||
_cogl_material_equal (CoglHandle material0_handle,
|
||||
CoglMaterialFlushOptions *material0_flush_options,
|
||||
CoglHandle material1_handle,
|
||||
CoglMaterialFlushOptions *material1_flush_options,
|
||||
gboolean skip_gl_color);
|
||||
|
||||
CoglHandle
|
||||
|
@ -3005,46 +3005,21 @@ _cogl_material_compare_differences (CoglMaterial *material0,
|
||||
* False positives aren't allowed.
|
||||
*/
|
||||
gboolean
|
||||
_cogl_material_equal (CoglHandle material0_handle,
|
||||
CoglMaterialFlushOptions *material0_flush_options,
|
||||
CoglHandle material1_handle,
|
||||
CoglMaterialFlushOptions *material1_flush_options,
|
||||
_cogl_material_equal (CoglHandle handle0,
|
||||
CoglHandle handle1,
|
||||
gboolean skip_gl_color)
|
||||
{
|
||||
CoglMaterial *material0;
|
||||
CoglMaterial *material1;
|
||||
gboolean material0_overridden = FALSE;
|
||||
gboolean material1_overridden = FALSE;
|
||||
CoglMaterial *material0 = COGL_MATERIAL (handle0);
|
||||
CoglMaterial *material1 = COGL_MATERIAL (handle1);
|
||||
unsigned long materials_difference;
|
||||
gboolean equal = FALSE;
|
||||
|
||||
if (material0_flush_options->flags)
|
||||
{
|
||||
/* XXX: we really need to get rid of overrides! */
|
||||
material0 = cogl_material_copy (material0_handle);
|
||||
_cogl_material_apply_overrides (material0, material0_flush_options);
|
||||
material0_overridden = TRUE;
|
||||
}
|
||||
else
|
||||
material0 = COGL_MATERIAL (material0_handle);
|
||||
|
||||
if (material1_flush_options->flags)
|
||||
{
|
||||
/* XXX: we really need to get rid of overrides! */
|
||||
material1 = cogl_material_copy (material1_handle);
|
||||
_cogl_material_apply_overrides (material1, material1_flush_options);
|
||||
material1_overridden = TRUE;
|
||||
}
|
||||
else
|
||||
material1 = COGL_MATERIAL (material1_handle);
|
||||
|
||||
if (material0 == material1)
|
||||
goto done;
|
||||
return TRUE;
|
||||
|
||||
/* First check non-sparse properties */
|
||||
|
||||
if (material0->real_blend_enable != material1->real_blend_enable)
|
||||
goto done;
|
||||
return FALSE;
|
||||
|
||||
/* Then check sparse properties */
|
||||
|
||||
@ -3062,7 +3037,7 @@ _cogl_material_equal (CoglHandle material0_handle,
|
||||
COGL_MATERIAL_STATE_COLOR);
|
||||
|
||||
if (!cogl_color_equal (&authority0->color, &authority1->color))
|
||||
goto done;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (materials_difference & COGL_MATERIAL_STATE_LIGHTING)
|
||||
@ -3075,7 +3050,7 @@ _cogl_material_equal (CoglHandle material0_handle,
|
||||
COGL_MATERIAL_STATE_LIGHTING);
|
||||
|
||||
if (!_cogl_material_lighting_state_equal (authority0, authority1))
|
||||
goto done;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (materials_difference & COGL_MATERIAL_STATE_ALPHA_FUNC)
|
||||
@ -3088,7 +3063,7 @@ _cogl_material_equal (CoglHandle material0_handle,
|
||||
COGL_MATERIAL_STATE_ALPHA_FUNC);
|
||||
|
||||
if (!_cogl_material_alpha_state_equal (authority0, authority1))
|
||||
goto done;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (materials_difference & COGL_MATERIAL_STATE_BLEND)
|
||||
@ -3101,7 +3076,7 @@ _cogl_material_equal (CoglHandle material0_handle,
|
||||
COGL_MATERIAL_STATE_BLEND);
|
||||
|
||||
if (!_cogl_material_blend_state_equal (authority0, authority1))
|
||||
goto done;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (materials_difference & COGL_MATERIAL_STATE_BLEND_ENABLE)
|
||||
@ -3114,7 +3089,7 @@ _cogl_material_equal (CoglHandle material0_handle,
|
||||
COGL_MATERIAL_STATE_BLEND_ENABLE);
|
||||
|
||||
if (authority0->blend_enable != authority1->blend_enable)
|
||||
goto done;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (materials_difference & COGL_MATERIAL_STATE_LAYERS)
|
||||
@ -3127,19 +3102,10 @@ _cogl_material_equal (CoglHandle material0_handle,
|
||||
COGL_MATERIAL_STATE_LAYERS);
|
||||
|
||||
if (!_cogl_material_layers_equal (authority0, authority1))
|
||||
goto done;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
equal = TRUE;
|
||||
|
||||
done:
|
||||
|
||||
if (material0_overridden)
|
||||
cogl_handle_unref (material0);
|
||||
if (material1_overridden)
|
||||
cogl_handle_unref (material1);
|
||||
|
||||
return equal;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user