mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
st/xorg: get transparency on fills working (fixes Qt/KDE apps)
This commit is contained in:
parent
96c9b39a6a
commit
59cf40059a
2 changed files with 15 additions and 7 deletions
|
|
@ -40,6 +40,14 @@ static const struct xorg_composite_blend xorg_blends[] = {
|
|||
{ PictOpOverReverse,
|
||||
PIPE_BLENDFACTOR_SRC_ALPHA, PIPE_BLENDFACTOR_ONE,
|
||||
PIPE_BLENDFACTOR_INV_SRC_ALPHA, PIPE_BLENDFACTOR_INV_SRC_ALPHA },
|
||||
|
||||
{ PictOpOutReverse,
|
||||
PIPE_BLENDFACTOR_SRC_ALPHA, PIPE_BLENDFACTOR_ONE,
|
||||
PIPE_BLENDFACTOR_INV_SRC_ALPHA, PIPE_BLENDFACTOR_INV_SRC_ALPHA },
|
||||
|
||||
{ PictOpAdd,
|
||||
PIPE_BLENDFACTOR_SRC_ALPHA, PIPE_BLENDFACTOR_ONE,
|
||||
PIPE_BLENDFACTOR_INV_SRC_ALPHA, PIPE_BLENDFACTOR_INV_SRC_ALPHA },
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -138,7 +146,9 @@ boolean xorg_composite_accelerated(int op,
|
|||
(!accelerated_ops[i].with_mask ||
|
||||
(pMaskPicture->componentAlpha &&
|
||||
!accelerated_ops[i].component_alpha))))
|
||||
XORG_FALLBACK("component alpha unsupported");
|
||||
XORG_FALLBACK("component alpha unsupported (PictOpOver=%s(%d)",
|
||||
(accelerated_ops[i].op == PictOpOver) ? "yes" : "no",
|
||||
accelerated_ops[i].op);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
|
@ -156,10 +166,7 @@ bind_blend_state(struct exa_context *exa, int op,
|
|||
|
||||
memset(&blend, 0, sizeof(struct pipe_blend_state));
|
||||
blend.blend_enable = 1;
|
||||
blend.colormask |= PIPE_MASK_R;
|
||||
blend.colormask |= PIPE_MASK_G;
|
||||
blend.colormask |= PIPE_MASK_B;
|
||||
blend.colormask |= PIPE_MASK_A;
|
||||
blend.colormask |= PIPE_MASK_RGBA;
|
||||
|
||||
blend.rgb_src_factor = blend_opt.rgb_src_factor;
|
||||
blend.alpha_src_factor = blend_opt.alpha_src_factor;
|
||||
|
|
@ -346,8 +353,6 @@ boolean xorg_solid_bind_state(struct exa_context *exa,
|
|||
pixel_to_float4(fg, exa->solid_color);
|
||||
exa->has_solid_color = TRUE;
|
||||
|
||||
exa->solid_color[3] = 1.f;
|
||||
|
||||
#if 0
|
||||
debug_printf("Color Pixel=(%d, %d, %d, %d), RGBA=(%f, %f, %f, %f)\n",
|
||||
(fg >> 24) & 0xff, (fg >> 16) & 0xff,
|
||||
|
|
|
|||
|
|
@ -681,6 +681,9 @@ void renderer_draw_solid_rect(struct xorg_renderer *r,
|
|||
struct pipe_context *pipe = r->pipe;
|
||||
struct pipe_buffer *buf = 0;
|
||||
|
||||
/*
|
||||
debug_printf("solid rect[(%d, %d), (%d, %d)], rgba[%f, %f, %f, %f]\n",
|
||||
x0, y0, x1, y1, color[0], color[1], color[2], color[3]);*/
|
||||
/* 1st vertex */
|
||||
setup_vertex0(r->vertices2[0], x0, y0, color);
|
||||
/* 2nd vertex */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue