|
 |
361d86 |
From 1b8c6d5f4895edf64aad804e2461d896e4c5c08d Mon Sep 17 00:00:00 2001
|
|
 |
361d86 |
From: Ray Strode <rstrode@redhat.com>
|
|
 |
361d86 |
Date: Tue, 18 Dec 2018 14:42:11 -0500
|
|
 |
361d86 |
Subject: [PATCH] conform: only listen to after-paint after paint
|
|
 |
361d86 |
|
|
 |
361d86 |
The after-paint signal is emitted after painting, obviously,
|
|
 |
361d86 |
but also, maybe less obviously, also emitted after picking.
|
|
 |
361d86 |
|
|
 |
361d86 |
The actor-shader-effect test does read-pixels, so needs to
|
|
 |
361d86 |
know when painting has actually happened, not just picking.
|
|
 |
361d86 |
|
|
 |
361d86 |
This commit changes that test to only look for the after-paint
|
|
 |
361d86 |
signal after the paint signal.
|
|
 |
361d86 |
|
|
 |
361d86 |
In the picking case, after-paint would follow a pick signal
|
|
 |
361d86 |
instead.
|
|
 |
361d86 |
|
|
 |
361d86 |
Fixes Xvfb installed-tests testing.
|
|
 |
361d86 |
---
|
|
 |
361d86 |
tests/conform/actor-shader-effect.c | 15 ++++++++++++---
|
|
 |
361d86 |
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
 |
361d86 |
|
|
 |
361d86 |
diff --git a/tests/conform/actor-shader-effect.c b/tests/conform/actor-shader-effect.c
|
|
 |
361d86 |
index d3ddd384f..8114aab8a 100644
|
|
 |
361d86 |
--- a/tests/conform/actor-shader-effect.c
|
|
 |
361d86 |
+++ b/tests/conform/actor-shader-effect.c
|
|
 |
361d86 |
@@ -197,88 +197,97 @@ static ClutterActor *
|
|
 |
361d86 |
make_actor (GType shader_type)
|
|
 |
361d86 |
{
|
|
 |
361d86 |
ClutterActor *rect;
|
|
 |
361d86 |
const ClutterColor white = { 0xff, 0xff, 0xff, 0xff };
|
|
 |
361d86 |
|
|
 |
361d86 |
rect = clutter_rectangle_new ();
|
|
 |
361d86 |
clutter_rectangle_set_color (CLUTTER_RECTANGLE (rect), &white);
|
|
 |
361d86 |
clutter_actor_set_size (rect, 50, 50);
|
|
 |
361d86 |
|
|
 |
361d86 |
clutter_actor_add_effect (rect, g_object_new (shader_type, NULL));
|
|
 |
361d86 |
|
|
 |
361d86 |
return rect;
|
|
 |
361d86 |
}
|
|
 |
361d86 |
|
|
 |
361d86 |
static guint32
|
|
 |
361d86 |
get_pixel (int x, int y)
|
|
 |
361d86 |
{
|
|
 |
361d86 |
guint8 data[4];
|
|
 |
361d86 |
|
|
 |
361d86 |
cogl_read_pixels (x, y, 1, 1,
|
|
 |
361d86 |
COGL_READ_PIXELS_COLOR_BUFFER,
|
|
 |
361d86 |
COGL_PIXEL_FORMAT_RGBA_8888_PRE,
|
|
 |
361d86 |
data);
|
|
 |
361d86 |
|
|
 |
361d86 |
return (((guint32) data[0] << 16) |
|
|
 |
361d86 |
((guint32) data[1] << 8) |
|
|
 |
361d86 |
data[2]);
|
|
 |
361d86 |
}
|
|
 |
361d86 |
|
|
 |
361d86 |
static void
|
|
 |
361d86 |
-paint_cb (ClutterStage *stage,
|
|
 |
361d86 |
- gpointer data)
|
|
 |
361d86 |
+after_paint_cb (ClutterStage *stage,
|
|
 |
361d86 |
+ gpointer data)
|
|
 |
361d86 |
{
|
|
 |
361d86 |
gboolean *was_painted = data;
|
|
 |
361d86 |
|
|
 |
361d86 |
/* old shader effect */
|
|
 |
361d86 |
g_assert_cmpint (get_pixel (50, 50), ==, 0xff0000);
|
|
 |
361d86 |
/* new shader effect */
|
|
 |
361d86 |
g_assert_cmpint (get_pixel (150, 50), ==, 0x00ffff);
|
|
 |
361d86 |
/* another new shader effect */
|
|
 |
361d86 |
g_assert_cmpint (get_pixel (250, 50), ==, 0xff00ff);
|
|
 |
361d86 |
/* new shader effect */
|
|
 |
361d86 |
g_assert_cmpint (get_pixel (350, 50), ==, 0x00ffff);
|
|
 |
361d86 |
|
|
 |
361d86 |
*was_painted = TRUE;
|
|
 |
361d86 |
}
|
|
 |
361d86 |
|
|
 |
361d86 |
+static void
|
|
 |
361d86 |
+paint_cb (ClutterStage *stage,
|
|
 |
361d86 |
+ gpointer data)
|
|
 |
361d86 |
+{
|
|
 |
361d86 |
+ g_signal_connect (stage, "after-paint",
|
|
 |
361d86 |
+ G_CALLBACK (after_paint_cb),
|
|
 |
361d86 |
+ data);
|
|
 |
361d86 |
+}
|
|
 |
361d86 |
+
|
|
 |
361d86 |
static void
|
|
 |
361d86 |
actor_shader_effect (void)
|
|
 |
361d86 |
{
|
|
 |
361d86 |
ClutterActor *stage;
|
|
 |
361d86 |
ClutterActor *rect;
|
|
 |
361d86 |
gboolean was_painted;
|
|
 |
361d86 |
|
|
 |
361d86 |
if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
|
|
 |
361d86 |
return;
|
|
 |
361d86 |
|
|
 |
361d86 |
stage = clutter_stage_new ();
|
|
 |
361d86 |
|
|
 |
361d86 |
rect = make_actor (foo_old_shader_effect_get_type ());
|
|
 |
361d86 |
clutter_container_add_actor (CLUTTER_CONTAINER (stage), rect);
|
|
 |
361d86 |
|
|
 |
361d86 |
rect = make_actor (foo_new_shader_effect_get_type ());
|
|
 |
361d86 |
clutter_actor_set_x (rect, 100);
|
|
 |
361d86 |
clutter_container_add_actor (CLUTTER_CONTAINER (stage), rect);
|
|
 |
361d86 |
|
|
 |
361d86 |
rect = make_actor (foo_another_new_shader_effect_get_type ());
|
|
 |
361d86 |
clutter_actor_set_x (rect, 200);
|
|
 |
361d86 |
clutter_container_add_actor (CLUTTER_CONTAINER (stage), rect);
|
|
 |
361d86 |
|
|
 |
361d86 |
rect = make_actor (foo_new_shader_effect_get_type ());
|
|
 |
361d86 |
clutter_actor_set_x (rect, 300);
|
|
 |
361d86 |
clutter_container_add_actor (CLUTTER_CONTAINER (stage), rect);
|
|
 |
361d86 |
|
|
 |
361d86 |
clutter_actor_show (stage);
|
|
 |
361d86 |
|
|
 |
361d86 |
was_painted = FALSE;
|
|
 |
361d86 |
- g_signal_connect (stage, "after-paint",
|
|
 |
361d86 |
+ g_signal_connect (stage, "paint",
|
|
 |
361d86 |
G_CALLBACK (paint_cb),
|
|
 |
361d86 |
&was_painted);
|
|
 |
361d86 |
|
|
 |
361d86 |
while (!was_painted)
|
|
 |
361d86 |
g_main_context_iteration (NULL, FALSE);
|
|
 |
361d86 |
}
|
|
 |
361d86 |
|
|
 |
361d86 |
CLUTTER_TEST_SUITE (
|
|
 |
361d86 |
CLUTTER_TEST_UNIT ("/actor/shader-effect", actor_shader_effect)
|
|
 |
361d86 |
)
|
|
 |
361d86 |
--
|
|
 |
361d86 |
2.20.1
|
|
 |
361d86 |
|