On Mon, 26 Jan 2004, Thomas Winischhofer wrote:
> Sottek, Matthew J wrote:
> >>a) is used for aa text; however, sometimes (haven't yet found out why)
> >>the alphaType argument to this is not PICT_a8 as one would expect, but
> >>PICT_a8r8g8b8.
> >>
> >>I don't quite get the logic behind this. What's the CPUToScreenTexture
> >>hook for if CPUToScreenAlphaTexture should be able to deal with ARGB
> >>textures? And how should the "red", "green" and "blue" arguments
> >>correlate with the RGB contents of this odd texture?
> >
> >
> > a) Is used whenever you want to combine a per-pixel alpha with a
> > diffuse color. Text, as you said is the common case but I think there
> > were other intentions...
> >
> > I've seen some screenshots on Keith's site that show using a window's
> > own alpha channel as a drop shadow. In order for that to work you
> > would need to get an argb input (the offscreen copy of the full
> > window contents) but only use the "a" and use the diffuse rgb as
> > provided. Maybe that is the intended use?
>
> Hm. I _think_ we're talking about the same thing. However, my (second)
> question was more meant in the line of the following:
>
> I am given a constant r, g and b as each a separate parameter, and an
You are also given "a".
> a8r8g8b8 texture which by Mark's explanation is for providing an alpha
> value for each of the r, g, b components. But the format is _a8_r8g8b8;
No, it modulates r, g, b, and a.
> if the components' alphas are in the r8g8b8 part, what's to happen with
> the a8 part of that texture?
>
You are given constant a, r, g, b. An a8 texture modulates all of
them:
a *= a8
r *= a8
g *= a8
b *= a8
An a8r8g8b8 texture without componentAlpha is the same:
a *= mask.a
r *= mask.a
g *= mask.a
b *= mask.a
With componentAlpha:
a *= mask.a
r *= mask.r
g *= mask.g
b *= mask.b
Mark.
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel