summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/xorg/xorg_composite.c
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-09-25 20:38:49 +0200
committerMichel Dänzer <daenzer@vmware.com>2009-09-25 20:38:49 +0200
commit7edda9350acbf84b63ad67af8053fb07785637cb (patch)
tree00e13a98e7204dc9af589ebd4cc962618291b28b /src/gallium/state_trackers/xorg/xorg_composite.c
parent07f107467ed1e301b1362298c350ff3758a1f22f (diff)
st/xorg: Source-only pictures always have format PICT_a8r8g8b8.
See xserver/render/picture.c:createSourcePicture(). This both simplifies the code and avoids a crash because pFormat is NULL.
Diffstat (limited to 'src/gallium/state_trackers/xorg/xorg_composite.c')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_composite.c24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c
index 1bfcc28866..2af557794d 100644
--- a/src/gallium/state_trackers/xorg/xorg_composite.c
+++ b/src/gallium/state_trackers/xorg/xorg_composite.c
@@ -57,24 +57,6 @@ pixel_to_float4(Pixel pixel, float *color)
color[3] = ((float)a) / 255.;
}
-static INLINE void
-render_pixel_to_float4(PictFormatPtr format,
- CARD32 pixel, float *color)
-{
- CARD32 r, g, b, a;
-
- debug_assert(format->type == PictTypeDirect);
-
- r = (pixel >> format->direct.red) & format->direct.redMask;
- g = (pixel >> format->direct.green) & format->direct.greenMask;
- b = (pixel >> format->direct.blue) & format->direct.blueMask;
- a = (pixel >> format->direct.alpha) & format->direct.alphaMask;
- color[0] = ((float)r) / ((float)format->direct.redMask);
- color[1] = ((float)g) / ((float)format->direct.greenMask);
- color[2] = ((float)b) / ((float)format->direct.blueMask);
- color[3] = ((float)a) / ((float)format->direct.alphaMask);
-}
-
struct acceleration_info {
int op : 16;
int with_mask : 1;
@@ -433,9 +415,9 @@ bind_shaders(struct exa_context *exa, int op,
if (pSrcPicture->pSourcePict->type == SourcePictTypeSolidFill) {
fs_traits |= FS_SOLID_FILL;
vs_traits |= VS_SOLID_FILL;
- render_pixel_to_float4(pSrcPicture->pFormat,
- pSrcPicture->pSourcePict->solidFill.color,
- exa->solid_color);
+ debug_assert(pSrcPicture->format == PICT_a8r8g8b8);
+ pixel_to_float4(pSrcPicture->pSourcePict->solidFill.color,
+ exa->solid_color);
exa->has_solid_color = TRUE;
} else {
debug_assert("!gradients not supported");