Commit 1011331c authored by Jasper St. Pierre's avatar Jasper St. Pierre

cullable: Use relative actor coordinates for culling

This ensures that nested cullables work fine.
parent 0ccef817
......@@ -95,8 +95,10 @@ meta_actor_vertices_are_untransformed (ClutterVertex *verts,
v3x != v1x || v3y != v2y)
return FALSE;
*x_origin = x;
*y_origin = y;
if (x_origin)
*x_origin = x;
if (y_origin)
*y_origin = y;
return TRUE;
}
......
......@@ -71,7 +71,7 @@ meta_cullable_cull_out_children (MetaCullable *cullable,
clutter_actor_iter_init (&iter, actor);
while (clutter_actor_iter_prev (&iter, &child))
{
int x, y;
float x, y;
if (!CLUTTER_ACTOR_IS_VISIBLE (child))
continue;
......@@ -98,9 +98,11 @@ meta_cullable_cull_out_children (MetaCullable *cullable,
if (!META_IS_CULLABLE (child))
continue;
if (!meta_actor_is_untransformed (child, &x, &y))
if (!meta_actor_is_untransformed (child, NULL, NULL))
continue;
clutter_actor_get_position (child, &x, &y);
/* Temporarily move to the coordinate system of the actor */
cairo_region_translate (unobscured_region, - x, - y);
cairo_region_translate (clip_region, - x, - y);
......
......@@ -301,15 +301,8 @@ meta_shaped_texture_paint (ClutterActor *actor)
filter = COGL_PIPELINE_FILTER_LINEAR;
if (!clutter_actor_is_in_clone_paint (actor))
{
int x_origin, y_origin;
if (meta_actor_is_untransformed (actor,
&x_origin,
&y_origin))
filter = COGL_PIPELINE_FILTER_NEAREST;
}
if (!clutter_actor_is_in_clone_paint (actor) && meta_actor_is_untransformed (actor, NULL, NULL))
filter = COGL_PIPELINE_FILTER_NEAREST;
ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
fb = cogl_get_draw_framebuffer ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment