tests/test-client: Use draw_surface for subsurface corner case tests

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3388>
This commit is contained in:
Sebastian Wick 2023-11-12 12:49:22 +01:00
parent b59fb7c08c
commit 87907674f5

View File

@ -77,19 +77,9 @@ static const struct xdg_toplevel_listener xdg_toplevel_listener = {
static void static void
draw_toplevel (void) draw_toplevel (void)
{ {
struct wl_buffer *buffer; draw_surface (display, toplevel_surface,
void *buffer_data; window_width, window_height,
int size; 0xffffffffu);
uint32_t *pixels;
if (!create_shm_buffer (display, window_width, window_height,
&buffer, &buffer_data, &size))
g_error ("Failed to create shm buffer");
for (pixels = buffer_data; size > 0; size -= 4)
*pixels++ = 0xffffffffu;
wl_surface_attach (toplevel_surface, buffer, 0, 0);
} }
static void static void
@ -106,35 +96,20 @@ static const struct xdg_surface_listener xdg_surface_listener = {
handle_xdg_surface_configure, handle_xdg_surface_configure,
}; };
static void
draw_descendant (struct wl_surface *descendant,
uint32_t color)
{
struct wl_buffer *buffer;
void *buffer_data;
int size;
uint32_t *pixels;
if (!create_shm_buffer (display, window_width / 2, window_height / 2,
&buffer, &buffer_data, &size))
g_error ("Failed to create shm buffer");
for (pixels = buffer_data; size > 0; size -= 4)
*pixels++ = color;
wl_surface_attach (descendant, buffer, 0, 0);
}
static void static void
draw_child (void) draw_child (void)
{ {
draw_descendant (child_surface, 0xff000000u); draw_surface (display, child_surface,
window_width / 2, window_height / 2,
0xff000000u);
} }
static void static void
draw_grandchild (void) draw_grandchild (void)
{ {
draw_descendant (grandchild_surface, 0xffff0000u); draw_surface (display, grandchild_surface,
window_width / 2, window_height / 2,
0xffff0000u);
} }
static void static void