mirror of
https://github.com/brl/mutter.git
synced 2025-08-04 15:45:54 +00:00
shaped-texture: Update mipmap counters on invalidation
https://gitlab.gnome.org/GNOME/mutter/merge_requests/861
This commit is contained in:
@@ -684,6 +684,24 @@ do_paint_content (MetaShapedTexture *stex,
|
|||||||
g_clear_pointer (&blended_tex_region, cairo_region_destroy);
|
g_clear_pointer (&blended_tex_region, cairo_region_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
update_invalidation_counters (MetaShapedTexture *stex)
|
||||||
|
{
|
||||||
|
stex->prev_invalidation = stex->last_invalidation;
|
||||||
|
stex->last_invalidation = g_get_monotonic_time ();
|
||||||
|
|
||||||
|
if (stex->prev_invalidation)
|
||||||
|
{
|
||||||
|
gint64 interval = stex->last_invalidation - stex->prev_invalidation;
|
||||||
|
gboolean fast_update = interval < MIN_MIPMAP_AGE_USEC;
|
||||||
|
|
||||||
|
if (!fast_update)
|
||||||
|
stex->fast_updates = 0;
|
||||||
|
else if (stex->fast_updates < MIN_FAST_UPDATES_BEFORE_UNMIPMAP)
|
||||||
|
stex->fast_updates++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static CoglTexture *
|
static CoglTexture *
|
||||||
select_texture_for_paint (MetaShapedTexture *stex)
|
select_texture_for_paint (MetaShapedTexture *stex)
|
||||||
{
|
{
|
||||||
@@ -782,6 +800,8 @@ meta_shaped_texture_invalidate (ClutterContent *content)
|
|||||||
{
|
{
|
||||||
MetaShapedTexture *stex = META_SHAPED_TEXTURE (content);
|
MetaShapedTexture *stex = META_SHAPED_TEXTURE (content);
|
||||||
|
|
||||||
|
update_invalidation_counters (stex);
|
||||||
|
|
||||||
if (!stex->invalidate_func)
|
if (!stex->invalidate_func)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -793,6 +813,8 @@ meta_shaped_texture_invalidate_size (ClutterContent *content)
|
|||||||
{
|
{
|
||||||
MetaShapedTexture *stex = META_SHAPED_TEXTURE (content);
|
MetaShapedTexture *stex = META_SHAPED_TEXTURE (content);
|
||||||
|
|
||||||
|
update_invalidation_counters (stex);
|
||||||
|
|
||||||
if (!stex->invalidate_func)
|
if (!stex->invalidate_func)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user