summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/xorg/xorg_exa.c
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2009-09-15 11:01:21 -0400
committerZack Rusin <zackr@vmware.com>2009-09-15 19:50:36 -0400
commita016043386045d7cc35d70e42d963704fcae3731 (patch)
tree8c439d2557d2fc20a0648159db247f8bc7247b77 /src/gallium/state_trackers/xorg/xorg_exa.c
parent8adcad0c703a9d339b6630ceaba5f96981c524d9 (diff)
st/xorg: fixing copies and composite shaders
copies were busted when src == dst. also the composite shaders were incorrectly using the fragments instead of the texture coordinate.
Diffstat (limited to 'src/gallium/state_trackers/xorg/xorg_exa.c')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index 3c2639e7d9..dea9f4c2bc 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -342,20 +342,24 @@ ExaSolid(PixmapPtr pPixmap, int x0, int y0, int x1, int y1)
exa->solid_color[1] = 0.f;
exa->solid_color[2] = 0.f;
exa->solid_color[3] = 1.f;
- xorg_solid(exa, priv, 0, 0, 300, 300);
- xorg_solid(exa, priv, 300, 300, 350, 350);
- xorg_solid(exa, priv, 350, 350, 500, 500);
- xorg_solid(exa, priv,
+ xorg_solid(exa, priv, 0, 0, 300, 300);
+ xorg_solid(exa, priv, 300, 300, 350, 350);
+ xorg_solid(exa, priv, 350, 350, 500, 500);
+
+ xorg_solid(exa, priv,
priv->tex->width[0] - 10,
priv->tex->height[0] - 10,
priv->tex->width[0],
priv->tex->height[0]);
+ exa->solid_color[0] = 0.f;
+ exa->solid_color[1] = 0.f;
+ exa->solid_color[2] = 1.f;
+ exa->solid_color[3] = 1.f;
+
+ exa->has_solid_color = FALSE;
ExaPrepareCopy(pPixmap, pPixmap, 0, 0, GXcopy, 0xffffffff);
- ExaCopy(pPixmap, 350, 350, 510, 350, 150, 150);
- ExaCopy(pPixmap, 350, 350, 510, 190, 150, 150);
- xorg_exa_finish(exa);
- ExaCopy(pPixmap, 0, 0, 0, 0, 1024, 768);
+ ExaCopy(pPixmap, 0, 0, 50, 50, 500, 500);
#else
xorg_solid(exa, priv, x0, y0, x1, y1) ;
#endif