pixman: Branch 'master' - 4 commits
Søren Sandmann Pedersen
sandmann at kemper.freedesktop.org
Mon Jul 13 04:13:25 PDT 2009
pixman/pixman-bits-image.c | 18 +++++++++---------
pixman/pixman.c | 2 +-
2 files changed, 10 insertions(+), 10 deletions(-)
New commits:
commit 7dc2c48bcab7404ace9b41959e2233d0025801b3
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date: Mon Jul 13 05:58:43 2009 -0400
Return immediately if the operator is CONJOINT_DST or DISJOINT_DST
These are noops just like plain DST is.
diff --git a/pixman/pixman.c b/pixman/pixman.c
index 4c393c5..fed99ee 100644
--- a/pixman/pixman.c
+++ b/pixman/pixman.c
@@ -123,7 +123,7 @@ pixman_image_composite (pixman_op_t op,
* The output operator should be mathematically equivalent to the source.
*/
op = pixman_optimize_operator(op, src, mask, dest);
- if(op == PIXMAN_OP_DST)
+ if(op == PIXMAN_OP_DST || op == PIXMAN_OP_CONJOINT_DST || op == PIXMAN_OP_DISJOINT_DST)
return;
if (!imp)
commit bb383def00b3d30d991295274b58a841a7162620
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date: Mon Jul 13 05:39:40 2009 -0400
Fix bits_image_fetch_{un}transformed() for 64 bit buffers.
The buffer pointer has to advance twice as far as in the 32 bit case.
diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c
index f4fbde4..6789eda 100644
--- a/pixman/pixman-bits-image.c
+++ b/pixman/pixman-bits-image.c
@@ -629,7 +629,7 @@ bits_image_fetch_untransformed_repeat_none (bits_image_t *image, pixman_bool_t w
if (y < 0 || y >= image->height)
{
- memset (buffer, 0, width * sizeof (uint32_t));
+ memset (buffer, 0, width * (wide? 8 : 4));
return;
}
@@ -640,7 +640,7 @@ bits_image_fetch_untransformed_repeat_none (bits_image_t *image, pixman_bool_t w
memset (buffer, 0, w * (wide? 8 : 4));
width -= w;
- buffer += w;
+ buffer += w * (wide? 2 : 1);
x += w;
}
@@ -654,7 +654,7 @@ bits_image_fetch_untransformed_repeat_none (bits_image_t *image, pixman_bool_t w
image->fetch_scanline_raw_32 ((pixman_image_t *)image, x, y, w, buffer, NULL, 0);
width -= w;
- buffer += w;
+ buffer += w * (wide? 2 : 1);
x += w;
}
@@ -687,7 +687,7 @@ bits_image_fetch_untransformed_repeat_normal (bits_image_t *image, pixman_bool_t
else
image->fetch_scanline_raw_32 ((pixman_image_t *)image, x, y, w, buffer, NULL, 0);
- buffer += w;
+ buffer += w * (wide? 2 : 1);
x += w;
width -= w;
}
commit c88b75d24c6fc618d638373dce5e5f0281de1f40
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date: Mon Jul 13 04:43:37 2009 -0400
Make sure we get all 64 bits in bits_image_fetch_solid_64()
Previously we would only store the first 32 bits.
diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c
index fc0dc84..f4fbde4 100644
--- a/pixman/pixman-bits-image.c
+++ b/pixman/pixman-bits-image.c
@@ -605,19 +605,19 @@ bits_image_fetch_solid_64 (pixman_image_t * image, int x, int y,
int width, uint32_t *b,
const uint32_t *unused, uint32_t unused2)
{
- uint32_t color[2];
- uint32_t *coords = (uint32_t *)color;
+ uint64_t color;
+ uint32_t *coords = (uint32_t *)&color;
uint64_t *buffer = (uint64_t *)b;
uint64_t *end;
coords[0] = 0;
coords[1] = 0;
- image->bits.fetch_pixels_raw_64 (&image->bits, color, 1);
+ image->bits.fetch_pixels_raw_64 (&image->bits, (uint32_t *)&color, 1);
end = buffer + width;
while (buffer < end)
- *(buffer++) = color[0];
+ *(buffer++) = color;
}
static void
commit f73ecb3f0ff516e4411de9a2738b8851e679a163
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date: Mon Jul 13 04:04:59 2009 -0400
Fix typo in bits_image_fetch_solid_64().
Found by blitters-test.
diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c
index 977b172..fc0dc84 100644
--- a/pixman/pixman-bits-image.c
+++ b/pixman/pixman-bits-image.c
@@ -611,7 +611,7 @@ bits_image_fetch_solid_64 (pixman_image_t * image, int x, int y,
uint64_t *end;
coords[0] = 0;
- coords[1] = 1;
+ coords[1] = 0;
image->bits.fetch_pixels_raw_64 (&image->bits, color, 1);
More information about the xorg-commit
mailing list