mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 00:19:22 +02:00
* Return alpha description when asked for
git-svn-id: trunk@15765 -
This commit is contained in:
parent
26f698131e
commit
a0853e7841
@ -132,6 +132,40 @@ end;
|
|||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
function TWin32WidgetSet.RawImage_QueryDescription(AFlags: TRawImageQueryFlags; out ADesc: TRawImageDescription): Boolean;
|
function TWin32WidgetSet.RawImage_QueryDescription(AFlags: TRawImageQueryFlags; out ADesc: TRawImageDescription): Boolean;
|
||||||
begin
|
begin
|
||||||
|
if riqfAlpha in AFlags
|
||||||
|
then begin
|
||||||
|
//always return rgba description
|
||||||
|
if not (riqfUpdate in AFlags)
|
||||||
|
then ADesc.Init;
|
||||||
|
|
||||||
|
ADesc.Format := ricfRGBA;
|
||||||
|
ADesc.Depth := 32;
|
||||||
|
ADesc.BitOrder := riboReversedBits;
|
||||||
|
ADesc.ByteOrder := riboLSBFirst;
|
||||||
|
ADesc.LineOrder := riloTopToBottom;
|
||||||
|
ADesc.LineEnd := rileDWordBoundary;
|
||||||
|
ADesc.BitsPerPixel := 32;
|
||||||
|
|
||||||
|
ADesc.AlphaPrec := 8;
|
||||||
|
ADesc.AlphaShift := 24;
|
||||||
|
|
||||||
|
if riqfRGB in AFlags
|
||||||
|
then begin
|
||||||
|
ADesc.RedPrec := 8;
|
||||||
|
ADesc.GreenPrec := 8;
|
||||||
|
ADesc.BluePrec := 8;
|
||||||
|
ADesc.RedShift := 16;
|
||||||
|
ADesc.GreenShift := 8;
|
||||||
|
ADesc.BlueShift := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
AFlags := AFlags - [riqfRGB, riqfAlpha, riqfUpdate];
|
||||||
|
if AFlags = [] then Exit(True);
|
||||||
|
|
||||||
|
// continue with default
|
||||||
|
Include(AFlags, riqfUpdate);
|
||||||
|
end;
|
||||||
|
|
||||||
Result := inherited RawImage_QueryDescription(AFlags, ADesc);
|
Result := inherited RawImage_QueryDescription(AFlags, ADesc);
|
||||||
// reduce mem
|
// reduce mem
|
||||||
if Result and (ADesc.Depth = 24)
|
if Result and (ADesc.Depth = 24)
|
||||||
|
Loading…
Reference in New Issue
Block a user