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

Derek Foreman derekf at osg.samsung.com
Tue May 26 10:00:49 PDT 2015


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;
 		}
 }
 
-- 
2.1.4



More information about the wayland-devel mailing list