From 71a6ed5c065ba987c3e7aff28141759318f95ea6 Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Mon, 15 Nov 2010 14:11:10 -0800 Subject: [PATCH] Misc refactoring of PutImageData() --- src/CanvasRenderingContext2d.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/CanvasRenderingContext2d.cc b/src/CanvasRenderingContext2d.cc index 947b3b0..0c2e55c 100644 --- a/src/CanvasRenderingContext2d.cc +++ b/src/CanvasRenderingContext2d.cc @@ -414,10 +414,18 @@ Context2d::PutImageData(const Arguments &args) { for (int x = 0; x < dw; ++x) { int bx = x * 4; uint32_t *pixel = row + x + dx; - *pixel = srcRows[bx + 3] << 24 - | srcRows[bx + 0] << 16 - | srcRows[bx + 1] << 8 - | srcRows[bx + 2]; + + // RGBA + uint8_t a = srcRows[bx + 3]; + uint8_t r = srcRows[bx + 0]; + uint8_t g = srcRows[bx + 1]; + uint8_t b = srcRows[bx + 3]; + + // ARGB + *pixel = a << 24 + | r << 16 + | g << 8 + | b; } srcRows += srcStride; }