diff options
author | emersion <contact@emersion.fr> | 2018-01-29 23:24:09 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2018-01-29 23:24:09 +0100 |
commit | 51c22d39a4a1a3c4ecfe39ee3df90ba7e66633af (patch) | |
tree | b9fd9fd6fddc8a869f3500bf92944b47c01c578c /examples | |
parent | 2cc989e09716eed5974dc9a76b7b6dbee9c3d730 (diff) | |
parent | ed5b1fdedd775a7acec3d6814cc2ac007e34fd29 (diff) |
Merge remote-tracking branch 'upstream/master' into output-damage
Diffstat (limited to 'examples')
-rw-r--r-- | examples/screenshot.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/examples/screenshot.c b/examples/screenshot.c index 529af38f..ba225023 100644 --- a/examples/screenshot.c +++ b/examples/screenshot.c @@ -74,7 +74,7 @@ static void output_handle_mode(void *data, struct wl_output *wl_output, } static void output_handle_done(void *data, struct wl_output *wl_output) { - + // No-op } static const struct wl_output_listener output_listener = { @@ -148,16 +148,6 @@ static struct wl_buffer *create_shm_buffer(int width, int height, return buffer; } -static void argb_to_rgba(uint32_t *data, size_t height, size_t stride) { - size_t n = height*stride/4; - for (size_t i = 0; i < n; ++i) { - uint32_t v = data[i]; - uint32_t rgb = v & 0x00ffffff; - uint32_t a = (v & 0xff000000) >> 24; - data[i] = (rgb << 8) | a; - } -} - static void write_image(const char *filename, int width, int height) { int buffer_stride = width * 4; @@ -182,8 +172,6 @@ static void write_image(const char *filename, int width, int height) { free(output); } - argb_to_rgba(data, height, buffer_stride); - char size[10 + 1 + 10 + 2 + 1]; // int32_t are max 10 digits sprintf(size, "%dx%d+0", width, height); @@ -213,7 +201,9 @@ static void write_image(const char *filename, int width, int height) { exit(EXIT_FAILURE); } close(fd[0]); - execlp("convert", "convert", "-depth", "8", "-size", size, "rgba:-", + // We requested WL_SHM_FORMAT_XRGB8888 in little endian, so that's BGRA + // in big endian. + execlp("convert", "convert", "-depth", "8", "-size", size, "bgra:-", "-alpha", "opaque", filename, NULL); fprintf(stderr, "cannot execute convert\n"); exit(EXIT_FAILURE); |