#include <gtk/gtk.h>
#include "gsk/gskrectprivate.h"
#include "../reftests/reftest-compare.h"
static void
test_normalize (GskRenderNode *node1,
GskRenderNode *node2)
{
GskRenderer *renderer = gsk_cairo_renderer_new ();
graphene_rect_t bounds1, bounds2;
GdkTexture *texture1, *texture2, *diff;
GError *error = NULL;
gsk_renderer_realize_for_display (renderer, gdk_display_get_default (), &error);
g_assert_no_error (error);
gsk_render_node_get_bounds (node1, &bounds1);
gsk_render_node_get_bounds (node2, &bounds2);
texture1 = gsk_renderer_render_texture (renderer, node1, &bounds1);
texture2 = gsk_renderer_render_texture (renderer, node2, &bounds2);
diff = reftest_compare_textures (texture1, texture2);
g_assert_null (diff);
g_object_unref (texture1);
g_object_unref (texture2);
gsk_renderer_unrealize (renderer);
g_object_unref (renderer);
}
static void
test_normalize_color (void )
{
GskRenderNode *node1, *node2;
GdkRGBA red = { 1 , 0 , 0 , 1 };
node1 = gsk_color_node_new (&red, &GRAPHENE_RECT_INIT (0 , 0 , 100 , 100 ));
node2 = gsk_color_node_new (&red, &GRAPHENE_RECT_INIT (0 , 100 , 100 , -100 ));
test_normalize (node1, node2);
gsk_render_node_unref (node1);
gsk_render_node_unref (node2);
}
static void
test_normalize_linear_gradient (void )
{
GskRenderNode *node1, *node2;
GskColorStop stops[] = {
{ 0 , { 1 , 0 , 0 , 1 } },
{ 1 , { 0 , 0 , 1 , 1 } },
};
node1 = gsk_linear_gradient_node_new (&GRAPHENE_RECT_INIT (0 , 0 , 100 , 100 ),
&GRAPHENE_POINT_INIT (0 , 0 ),
&GRAPHENE_POINT_INIT (100 , 100 ),
stops,
G_N_ELEMENTS (stops));
node2 = gsk_linear_gradient_node_new (&GRAPHENE_RECT_INIT (0 , 100 , 100 , -100 ),
&GRAPHENE_POINT_INIT (0 , 0 ),
&GRAPHENE_POINT_INIT (100 , 100 ),
stops,
G_N_ELEMENTS (stops));
test_normalize (node1, node2);
gsk_render_node_unref (node1);
gsk_render_node_unref (node2);
}
int
main (int argc, char *argv[])
{
gtk_test_init (&argc, &argv);
g_test_add_func ("/node/normalize/color" , test_normalize_color);
g_test_add_func ("/node/normalize/linear-gradient" , test_normalize_linear_gradient);
return g_test_run ();
}
Messung V0.5 in Prozent C=97 H=96 G=96
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-07-02)
¤
*© Formatika GbR, Deutschland