瀏覽代碼

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.
tags/mesa_7_7_rc1
Michel Dänzer 16 年之前
父節點
當前提交
7edda9350a
共有 1 個檔案被更改,包括 3 行新增21 行删除
  1. 3
    21
      src/gallium/state_trackers/xorg/xorg_composite.c

+ 3
- 21
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");

Loading…
取消
儲存