tests/clutter: Replace ClutterTexture from image with custom helper

ClutterTexture is deprecated, lets remove the trivial usage with a
simple gdk-pixbuf using constructor putting pixel contents into a
ClutterImage then putting said image in a plain ClutterActor.

Tested partially, as the interactive tests cannot be properly run at the
moment.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/932
This commit is contained in:
Jonas Ådahl 2019-11-12 18:37:05 +01:00 committed by Georges Basile Stavracas Neto
parent f3b9fc8159
commit 14bb104ef0
15 changed files with 75 additions and 25 deletions

View File

@ -76,6 +76,7 @@ executable('test-interactive',
sources: clutter_tests_interactive_sources, sources: clutter_tests_interactive_sources,
include_directories: [ include_directories: [
clutter_includes, clutter_includes,
clutter_tests_includepath,
clutter_tests_interactive_includepath, clutter_tests_interactive_includepath,
], ],
c_args: clutter_tests_interactive_c_args, c_args: clutter_tests_interactive_c_args,

View File

@ -6,6 +6,8 @@
#include <glib.h> #include <glib.h>
#include <gmodule.h> #include <gmodule.h>
#include "test-utils.h"
#define NHANDS 6 #define NHANDS 6
typedef struct SuperOH typedef struct SuperOH
@ -195,7 +197,7 @@ test_actors_main (int argc, char *argv[])
g_signal_connect (oh->timeline, "new-frame", G_CALLBACK (frame_cb), oh); g_signal_connect (oh->timeline, "new-frame", G_CALLBACK (frame_cb), oh);
file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL); file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL);
real_hand = clutter_texture_new_from_file (file, &error); real_hand = clutter_test_utils_create_texture_from_file (file, &error);
if (real_hand == NULL) if (real_hand == NULL)
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);

View File

@ -6,6 +6,8 @@
#include <clutter/x11/clutter-x11.h> #include <clutter/x11/clutter-x11.h>
#endif #endif
#include "test-utils.h"
typedef struct { typedef struct {
ClutterActor *stage; ClutterActor *stage;
@ -172,10 +174,10 @@ manager_device_added_cb (ClutterDeviceManager *manager,
clutter_input_device_set_enabled (device, TRUE); clutter_input_device_set_enabled (device, TRUE);
hand = clutter_texture_new_from_file (TESTS_DATADIR hand = clutter_test_utils_create_texture_from_file (TESTS_DATADIR
G_DIR_SEPARATOR_S G_DIR_SEPARATOR_S
"redhand.png", "redhand.png",
NULL); NULL);
g_hash_table_insert (app->devices, device, hand); g_hash_table_insert (app->devices, device, hand);
clutter_container_add_actor (CLUTTER_CONTAINER (app->stage), hand); clutter_container_add_actor (CLUTTER_CONTAINER (app->stage), hand);
@ -273,10 +275,10 @@ test_devices_main (int argc, char **argv)
clutter_input_device_set_enabled (device, TRUE); clutter_input_device_set_enabled (device, TRUE);
hand = clutter_texture_new_from_file (TESTS_DATADIR hand = clutter_test_utils_create_texture_from_file (TESTS_DATADIR
G_DIR_SEPARATOR_S G_DIR_SEPARATOR_S
"redhand.png", "redhand.png",
NULL); NULL);
g_hash_table_insert (app->devices, device, hand); g_hash_table_insert (app->devices, device, hand);
clutter_container_add_actor (CLUTTER_CONTAINER (stage), hand); clutter_container_add_actor (CLUTTER_CONTAINER (stage), hand);

View File

@ -5,6 +5,7 @@
#include <cogl/cogl.h> #include <cogl/cogl.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-utils.h"
/* layout actor, by Lucas Rocha */ /* layout actor, by Lucas Rocha */
@ -629,10 +630,10 @@ test_layout_main (int argc, char *argv[])
clutter_actor_set_position (box, 20, 20); clutter_actor_set_position (box, 20, 20);
clutter_actor_set_size (box, 350, -1); clutter_actor_set_size (box, 350, -1);
icon = clutter_texture_new_from_file (TESTS_DATADIR icon = clutter_test_utils_create_texture_from_file (TESTS_DATADIR
G_DIR_SEPARATOR_S G_DIR_SEPARATOR_S
"redhand.png", "redhand.png",
&error); &error);
if (error) if (error)
g_error ("Unable to load 'redhand.png': %s", error->message); g_error ("Unable to load 'redhand.png': %s", error->message);

View File

@ -15,6 +15,8 @@
#include "clutter/x11/clutter-x11.h" #include "clutter/x11/clutter-x11.h"
#endif #endif
#include "test-utils.h"
#define NHANDS 6 #define NHANDS 6
typedef struct SuperOH typedef struct SuperOH
@ -247,10 +249,10 @@ test_paint_wrapper_main (int argc, char *argv[])
oh->frame_id = oh->frame_id =
g_signal_connect (oh->timeline, "new-frame", G_CALLBACK (frame_cb), oh); g_signal_connect (oh->timeline, "new-frame", G_CALLBACK (frame_cb), oh);
real_hand = clutter_texture_new_from_file (TESTS_DATADIR real_hand = clutter_test_utils_create_texture_from_file (TESTS_DATADIR
G_DIR_SEPARATOR_S G_DIR_SEPARATOR_S
"redhand.png", "redhand.png",
&error); &error);
if (real_hand == NULL) if (real_hand == NULL)
{ {
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);

View File

@ -6,6 +6,7 @@
#include <gmodule.h> #include <gmodule.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-utils.h"
int int
test_shader_effects_main (int argc, char *argv[]); test_shader_effects_main (int argc, char *argv[]);
@ -31,7 +32,7 @@ test_shader_effects_main (int argc, char *argv[])
/* Make a hand */ /* Make a hand */
file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL); file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL);
hand = clutter_texture_new_from_file (file, NULL); hand = clutter_test_utils_create_texture_from_file (file, NULL);
if (!hand) if (!hand)
g_error("Unable to load '%s'", file); g_error("Unable to load '%s'", file);

View File

@ -2,6 +2,7 @@
#include <math.h> #include <math.h>
#include <gmodule.h> #include <gmodule.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-utils.h"
#define STAGE_WIDTH 1024 #define STAGE_WIDTH 1024
#define STAGE_HEIGHT 768 #define STAGE_HEIGHT 768
@ -82,7 +83,7 @@ static ClutterActor *new_rect (gint r,
gchar *file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL); gchar *file = g_build_filename (TESTS_DATADIR, "redhand.png", NULL);
hand = clutter_texture_new_from_file (file, &error); hand = clutter_test_utils_create_texture_from_file (file, &error);
if (rectangle == NULL) if (rectangle == NULL)
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);
g_free (file); g_free (file);

View File

@ -6,6 +6,7 @@
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include <cogl/cogl.h> #include <cogl/cogl.h>
#include <cogl-pango/cogl-pango.h> #include <cogl-pango/cogl-pango.h>
#include "test-utils.h"
#define FONT "Sans 12" #define FONT "Sans 12"
@ -155,7 +156,7 @@ create_image (const gchar *file, const gchar *color)
ClutterActor *texture; ClutterActor *texture;
ClutterActor *result; ClutterActor *result;
texture = clutter_texture_new_from_file (file, NULL); texture = clutter_test_utils_create_texture_from_file (file, NULL);
g_object_set (G_OBJECT (texture), "keep-aspect-ratio", TRUE, NULL); g_object_set (G_OBJECT (texture), "keep-aspect-ratio", TRUE, NULL);
clutter_actor_show (texture); clutter_actor_show (texture);

View File

@ -1,3 +1,5 @@
clutter_tests_includepath = include_directories('.')
subdir('accessibility') subdir('accessibility')
subdir('conform') subdir('conform')
subdir('interactive') subdir('interactive')

View File

@ -24,7 +24,10 @@ foreach test : clutter_tests_performance_tests
'@0@.c'.format(test), '@0@.c'.format(test),
'test-common.h', 'test-common.h',
], ],
include_directories: clutter_includes, include_directories: [
clutter_includes,
clutter_tests_includepath,
],
c_args: clutter_tests_performance_c_args, c_args: clutter_tests_performance_c_args,
dependencies: [ dependencies: [
clutter_deps, clutter_deps,

View File

@ -3,6 +3,7 @@
#include <gmodule.h> #include <gmodule.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-common.h" #include "test-common.h"
#include "test-utils.h"
#define STAGE_WIDTH 800 #define STAGE_WIDTH 800
#define STAGE_HEIGHT 600 #define STAGE_HEIGHT 600
@ -77,7 +78,7 @@ static ClutterActor *new_rect (gint r,
gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL); gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL);
hand = clutter_texture_new_from_file (file, &error); hand = clutter_test_utils_create_texture_from_file (file, &error);
if (rectangle == NULL) if (rectangle == NULL)
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);
g_free (file); g_free (file);

View File

@ -3,6 +3,7 @@
#include <gmodule.h> #include <gmodule.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-common.h" #include "test-common.h"
#include "test-utils.h"
#define STAGE_WIDTH 160 #define STAGE_WIDTH 160
#define STAGE_HEIGHT 120 #define STAGE_HEIGHT 120
@ -44,7 +45,7 @@ static ClutterActor *new_rect (gint r,
gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL); gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL);
hand = clutter_texture_new_from_file (file, &error); hand = clutter_test_utils_create_texture_from_file (file, &error);
if (rectangle == NULL) if (rectangle == NULL)
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);
g_free (file); g_free (file);

View File

@ -3,6 +3,7 @@
#include <gmodule.h> #include <gmodule.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-common.h" #include "test-common.h"
#include "test-utils.h"
static gint times = 16; static gint times = 16;
@ -49,7 +50,7 @@ static ClutterActor *new_rect (gint r,
gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL); gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL);
hand = clutter_texture_new_from_file (file, &error); hand = clutter_test_utils_create_texture_from_file (file, &error);
if (rectangle == NULL) if (rectangle == NULL)
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);
g_free (file); g_free (file);

View File

@ -3,6 +3,7 @@
#include <gmodule.h> #include <gmodule.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "test-common.h" #include "test-common.h"
#include "test-utils.h"
static gint times = 16; static gint times = 16;
@ -49,7 +50,7 @@ static ClutterActor *new_rect (gint r,
gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL); gchar *file = g_build_filename (TESTS_DATA_DIR, "redhand.png", NULL);
hand = clutter_texture_new_from_file (file, &error); hand = clutter_test_utils_create_texture_from_file (file, &error);
if (rectangle == NULL) if (rectangle == NULL)
g_error ("image load failed: %s", error->message); g_error ("image load failed: %s", error->message);
g_free (file); g_free (file);

View File

@ -0,0 +1,30 @@
#include <clutter/clutter.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
static inline ClutterActor *
clutter_test_utils_create_texture_from_file (const char *filename,
GError **error)
{
g_autoptr (ClutterContent) image = NULL;
g_autoptr (GdkPixbuf) pixbuf = NULL;
pixbuf = gdk_pixbuf_new_from_file (filename, error);
if (!pixbuf)
return NULL;
image = clutter_image_new ();
if (!clutter_image_set_data (CLUTTER_IMAGE (image),
gdk_pixbuf_get_pixels (pixbuf),
gdk_pixbuf_get_has_alpha (pixbuf)
? COGL_PIXEL_FORMAT_RGBA_8888
: COGL_PIXEL_FORMAT_RGB_888,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf),
gdk_pixbuf_get_rowstride (pixbuf),
error))
return NULL;
return g_object_new (CLUTTER_TYPE_ACTOR,
"content", image,
NULL);
}