[PATCH weston] internal-screenshot-test: Fix endian problem

Pekka Paalanen ppaalanen at gmail.com
Fri May 29 01:53:22 PDT 2015


On Tue, 26 May 2015 12:00:49 -0500
Derek Foreman <derekf at osg.samsung.com> wrote:

> Use bit-shifts to properly generate pixel data.
> 
> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
> ---
> 
>  tests/internal-screenshot-test.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/internal-screenshot-test.c b/tests/internal-screenshot-test.c
> index 991761f..7294a37 100644
> --- a/tests/internal-screenshot-test.c
> +++ b/tests/internal-screenshot-test.c
> @@ -185,16 +185,19 @@ capture_screenshot_of_output(struct client *client) {
>  }
>  
>  static void
> -draw_stuff(char *pixels, int w, int h)
> +draw_stuff(void *pixels, int w, int h)
>  {
>  	int x, y;
> +	uint8_t r, g, b;
> +	uint32_t *pixel;
>  
>  	for (x = 0; x < w; x++)
>  		for (y = 0; y < h; y++) {
> -			pixels[y * w * 4 + x * 4] = x;
> -			pixels[y * w * 4 + x * 4 + 1] = x + y;
> -			pixels[y * w * 4 + x * 4 + 2] = y;
> -			pixels[y * w * 4 + x * 4 + 3] = 255;
> +			b = x;
> +			g = x + y;
> +			r = y;
> +			pixel = (uint32_t *)pixels + y * w + x;
> +			*pixel = (255 << 24) | (r << 16) | (g << 8) | b;
>  		}
>  }
>  

Assumes stride == width * 4.

For 1.9
Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>


Thanks,
pq


More information about the wayland-devel mailing list