[PATCH weston 07/10] tests: Add screenshot recording capability to weston-test
Daniel Stone
daniel at fooishbar.org
Sat May 9 06:56:54 PDT 2015
Hi,
On 7 May 2015 at 01:44, Bryce Harrington <bryce at osg.samsung.com> wrote:
> +enum weston_test_screenshot_outcome {
> + WESTON_TEST_SCREENSHOT_SUCCESS,
> + WESTON_TEST_SCREENSHOT_NO_MEMORY,
> + WESTON_TEST_SCREENSHOT_BAD_BUFFER
> + };
This should be declared as an enum in the protocol definition.
> +static void
> +copy_bgra_yflip(uint8_t *dst, uint8_t *src, int height, int stride)
> +
> +static void
> +copy_bgra(uint8_t *dst, uint8_t *src, int height, int stride)
> +
> +static void
> +copy_row_swap_RB(void *vdst, void *vsrc, int bytes)
> +
> +static void
> +copy_rgba_yflip(uint8_t *dst, uint8_t *src, int height, int stride)
> +
> +static void
> +copy_rgba(uint8_t *dst, uint8_t *src, int height, int stride)
Can we please use Pixman for these instead of open-coding them?
> +static void
> +test_screenshot_frame_notify(struct wl_listener *listener, void *data)
> +{
> + struct test_screenshot_frame_listener *l =
> + container_of(listener,
> + struct test_screenshot_frame_listener, listener);
> + struct weston_output *output = data;
> + struct weston_compositor *compositor = output->compositor;
> + int32_t stride;
> + uint8_t *pixels, *d, *s;
> +
> + output->disable_planes--;
> + wl_list_remove(&listener->link);
> + stride = l->buffer->width * (PIXMAN_FORMAT_BPP(compositor->read_format) / 8);
> + pixels = malloc(stride * l->buffer->height);
> +
> + if (pixels == NULL) {
> + l->done(l->data, WESTON_TEST_SCREENSHOT_NO_MEMORY);
> + free(l);
> + return;
> + }
> +
> + // FIXME: Needs to handle output transformations
C++ comment. :(
> +/**
> + * Grabs a snapshot of the screen.
> + */
> +static void
> +capture_screenshot(struct wl_client *client,
> + struct wl_resource *resource,
> + struct wl_resource *output_resource,
> + struct wl_resource *buffer_resource)
> +{
> +// struct weston_test *test =
> +// wl_resource_get_user_data(resource);
Unused declaration.
> @@ -316,7 +559,6 @@ idle_launch_client(void *data)
> sigfillset(&allsigs);
> sigprocmask(SIG_UNBLOCK, &allsigs, NULL);
> execl(path, path, NULL);
> - weston_log("compositor: executing '%s' failed: %m\n", path);
> exit(EXIT_FAILURE);
> }
Unrelated change?
Cheers,
Daniel
More information about the wayland-devel
mailing list