Mattias Gaertner wrote:
> On Mon, 16 Apr 2007 11:20:55 +0200
> Marc Weustink <[EMAIL PROTECTED]> wrote:
>
>> Continuing my TRawImageQuestion.
>>
>> While implementing cursors and imagelists, Paul and I start to get
>> confused. It appears that Mask and Alpha are treated as equal while
>> in fact they are each others inverse. (An 1 in a mask means that this
>> part of the image is masked, not drawn, where for alpha a 1 means
>> opaque, fully drawn)
>>
>> A RawImageDesription describes the RGB and Alpha parts of an image.
>> It has also a flag that the Alpha is separate. This got introduced
>> since traditional windows has only an image and a (1bpp) mask.
>> When reading such image, the mask gets converted into a 1bit separate
>> alpha.
>>
>> With CreateBitmapFromRawImage the fun starts. It creates a bitmap and
>> mask handle form the rawimage. The maskhandle is created from the
>> (separate) alpha and is in fact returning an alpha handle and not a
>> maskhandle. On win32 this is nonsense since alpha is never separated.
>> So I think a Maskhandle should return what it means: a handle to a
>> Mask (and only in the case when the description had the AlphaSeparate
>> flag).
>>
>> Comments ?
>
> Maybe we need an enum, how to interpret the alpha value?
I was think on that also, but somehow didn't sound right. I don't know
exactly for all widgets, but as far as I can tell the separate alpha is
only used for win32 1bit masks.
If this is the case, then ignore my other mail since TRawImage.MaskData
is indeed MaskData. But then the AlphaSeparate, AlphaBitsPerPixel,
AlphaLineEnd, AlphaBitOrder and AlphaByteOrder are not really Alpha, but
Mask -> MaskSeparate (or HasMask), MaskBitsPerPixel, MaskLineEnd,
MaskBitOrder and MaskByteOrder
Marc
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives