mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 00:20:42 -05:00
cogl-material: Fix the function which sets the enable blend flag
This function had two problems. Firstly it would clear the enable blend flag before calling pre_change_notify so that if blending was previously enabled the journal would end up being flushed while the flag was still cleared. Secondly it would call the pre change notify whenever blending is needed regardless of whether it was already needed previously. This was causing problems in test-depth.
This commit is contained in:
parent
b1f7d2fea8
commit
dc09fca264
@ -359,14 +359,19 @@ _cogl_material_pre_change_notify (CoglMaterial *material,
|
|||||||
static void
|
static void
|
||||||
handle_automatic_blend_enable (CoglMaterial *material)
|
handle_automatic_blend_enable (CoglMaterial *material)
|
||||||
{
|
{
|
||||||
material->flags &= ~COGL_MATERIAL_FLAG_ENABLE_BLEND;
|
gboolean needs_blending_enabled =
|
||||||
|
_cogl_material_needs_blending_enabled (material, NULL);
|
||||||
|
|
||||||
if (_cogl_material_needs_blending_enabled (material, NULL))
|
if (needs_blending_enabled !=
|
||||||
|
!!(material->flags & COGL_MATERIAL_FLAG_ENABLE_BLEND))
|
||||||
{
|
{
|
||||||
_cogl_material_pre_change_notify (material,
|
_cogl_material_pre_change_notify (material,
|
||||||
COGL_MATERIAL_CHANGE_ENABLE_BLEND,
|
COGL_MATERIAL_CHANGE_ENABLE_BLEND,
|
||||||
NULL);
|
NULL);
|
||||||
material->flags |= COGL_MATERIAL_FLAG_ENABLE_BLEND;
|
if (needs_blending_enabled)
|
||||||
|
material->flags |= COGL_MATERIAL_FLAG_ENABLE_BLEND;
|
||||||
|
else
|
||||||
|
material->flags &= ~COGL_MATERIAL_FLAG_ENABLE_BLEND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user