diff options
author | Grigori Goronzy <greg@chown.ath.cx> | 2013-07-22 02:30:28 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@chown.ath.cx> | 2013-07-22 05:05:48 +0200 |
commit | 4375a6e75e5d41139be7031a0dee58c057ecbd07 (patch) | |
tree | 90bb91b0354a4ac421fbc5c1924334930f6e5d4f /src/ati.c | |
parent | 94d0d14914a025525a0766669b556eaa6681def7 (diff) |
EXA/evergreen/ni: accelerate PictOpOver with component alpha
Subpixel text rendering is typically done with a solid src and a
pixmap mask. Traditionally, this cannot be accelerated in a single
pass and requires two passes [1]. However, we can cheat a little
with a constant blend color.
We can use:
const.A = src.A / src.A
const.R = src.R / src.A
const.G = src.G / src.A
const.B = src.B / src.A
dst.A = const.A * (src.A * mask.A) + (1 - (src.A * mask.A)) * dst.A
dst.R = const.R * (src.A * mask.R) + (1 - (src.A * mask.R)) * dst.R
dst.G = const.G * (src.A * mask.G) + (1 - (src.A * mask.G)) * dst.G
dst.B = const.B * (src.A * mask.B) + (1 - (src.A * mask.B)) * dst.B
This only needs a single source value. src.A is cancelled down in
the right places.
[1] http://anholt.livejournal.com/32058.html
Diffstat (limited to 'src/ati.c')
0 files changed, 0 insertions, 0 deletions