diff options
author | Zack Rusin <zackr@vmware.com> | 2009-09-15 11:01:21 -0400 |
---|---|---|
committer | Zack Rusin <zackr@vmware.com> | 2009-09-15 19:50:36 -0400 |
commit | a016043386045d7cc35d70e42d963704fcae3731 (patch) | |
tree | 8c439d2557d2fc20a0648159db247f8bc7247b77 /src/gallium/state_trackers/xorg/xorg_exa.c | |
parent | 8adcad0c703a9d339b6630ceaba5f96981c524d9 (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.c | 20 |
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 |