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
82e80e6765
commit
cce5616edf
@ -359,14 +359,19 @@ _cogl_material_pre_change_notify (CoglMaterial *material,
|
||||
static void
|
||||
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_CHANGE_ENABLE_BLEND,
|
||||
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