mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 04:29:29 +02:00
+ and,xor,or operators for TFPColor
This commit is contained in:
parent
df9ba460ca
commit
97d15e8983
@ -25,6 +25,7 @@ type
|
||||
cfBGR15,cfBGR16,cfBGR24,cfBGR32,cfBGR48,
|
||||
cfABGR8,cfABGR16,cfABGR32,cfABGR64);
|
||||
TColorData = int64;
|
||||
PColorData = ^TColorData;
|
||||
|
||||
TDeviceColor = record
|
||||
Fmt : TColorFormat;
|
||||
@ -221,6 +222,9 @@ function ConvertColor (const From : TFPColor; Fmt : TColorFormat) : TDeviceColor
|
||||
function ConvertColor (const From : TDeviceColor; Fmt : TColorFormat) : TDeviceColor;
|
||||
|
||||
operator = (const c,d:TFPColor) : boolean;
|
||||
operator or (const c,d:TFPColor) : TFPColor;
|
||||
operator and (const c,d:TFPColor) : TFPColor;
|
||||
operator xor (const c,d:TFPColor) : TFPColor;
|
||||
|
||||
var ImageHandlers : TImageHandlersManager;
|
||||
|
||||
@ -284,6 +288,31 @@ begin
|
||||
(c.Alpha = d.Alpha);
|
||||
end;
|
||||
|
||||
function GetFullColorData (color:TFPColor) : TColorData;
|
||||
begin
|
||||
result := PColorData(@color)^;
|
||||
end;
|
||||
|
||||
function SetFullColorData (color:TColorData) : TFPColor;
|
||||
begin
|
||||
result := PFPColor (@color)^;
|
||||
end;
|
||||
|
||||
operator or (const c,d:TFPColor) : TFPColor;
|
||||
begin
|
||||
result := SetFullColorData(GetFullColorData(c) OR GetFullColorData(d));
|
||||
end;
|
||||
|
||||
operator and (const c,d:TFPColor) : TFPColor;
|
||||
begin
|
||||
result := SetFullColorData(GetFullColorData(c) AND GetFullColorData(d));
|
||||
end;
|
||||
|
||||
operator xor (const c,d:TFPColor) : TFPColor;
|
||||
begin
|
||||
result := SetFullColorData(GetFullColorData(c) XOR GetFullColorData(d));
|
||||
end;
|
||||
|
||||
initialization
|
||||
ImageHandlers := TImageHandlersManager.Create;
|
||||
ColorBits [cfRGBA64,1] := ColorBits [cfRGBA64,0] shl 32;
|
||||
|
Loading…
Reference in New Issue
Block a user