summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-02-13 17:37:56 -0800
committerEric Anholt <eric@anholt.net>2007-02-13 17:42:47 -0800
commit1623b47c4863f5362587cdac855e3e11c109b007 (patch)
treec53495e6703ad607d50c50f1af0e82d9dcc65d83
parent4bd4058dfdca84d6ebab82a1dfba99adf3852c9c (diff)
Switch the RECTLIST vertex order to (x2, y2), (x1, y2), (x1, y1).
This is the documented correct ordering, and while the previous ordering (reversed) worked on some hardware, it failed on others. Reported by: Wang Zhenyu <zhenyu.z.wang@intel.com>
-rw-r--r--src/i830_render.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/i830_render.c b/src/i830_render.c
index 96aeb3fa..49d8fc11 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -557,13 +557,13 @@ i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
OUT_RING(PRIM3D_INLINE | PRIM3D_RECTLIST | (vertex_count-1));
- OUT_RING_F(-0.125 + dstX);
- OUT_RING_F(-0.125 + dstY);
- OUT_RING_F(src_x[0] / pI830->scale_units[0][0]);
- OUT_RING_F(src_y[0] / pI830->scale_units[0][1]);
+ OUT_RING_F(-0.125 + dstX + w);
+ OUT_RING_F(-0.125 + dstY + h);
+ OUT_RING_F(src_x[2] / pI830->scale_units[0][0]);
+ OUT_RING_F(src_y[2] / pI830->scale_units[0][1]);
if (has_mask) {
- OUT_RING_F(mask_x[0] / pI830->scale_units[1][0]);
- OUT_RING_F(mask_y[0] / pI830->scale_units[1][1]);
+ OUT_RING_F(mask_x[2] / pI830->scale_units[1][0]);
+ OUT_RING_F(mask_y[2] / pI830->scale_units[1][1]);
}
OUT_RING_F(-0.125 + dstX);
@@ -575,13 +575,13 @@ i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
OUT_RING_F(mask_y[1] / pI830->scale_units[1][1]);
}
- OUT_RING_F(-0.125 + dstX + w);
- OUT_RING_F(-0.125 + dstY + h);
- OUT_RING_F(src_x[2] / pI830->scale_units[0][0]);
- OUT_RING_F(src_y[2] / pI830->scale_units[0][1]);
+ OUT_RING_F(-0.125 + dstX);
+ OUT_RING_F(-0.125 + dstY);
+ OUT_RING_F(src_x[0] / pI830->scale_units[0][0]);
+ OUT_RING_F(src_y[0] / pI830->scale_units[0][1]);
if (has_mask) {
- OUT_RING_F(mask_x[2] / pI830->scale_units[1][0]);
- OUT_RING_F(mask_y[2] / pI830->scale_units[1][1]);
+ OUT_RING_F(mask_x[0] / pI830->scale_units[1][0]);
+ OUT_RING_F(mask_y[0] / pI830->scale_units[1][1]);
}
ADVANCE_LP_RING();
}