summaryrefslogtreecommitdiff
path: root/src/corelib
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graeme@mastermaths.co.za>2012-03-15 09:09:23 +0200
committerGraeme Geldenhuys <graeme@mastermaths.co.za>2012-03-15 09:18:47 +0200
commit60c6680973646d1a852f66cf522acf74f174702b (patch)
tree61829a1c9189891cf186069f27eee65ec646ab16 /src/corelib
parent80854141ccc4cb7ca405703681edc5b97a5ba457 (diff)
downloadfpGUI-60c6680973646d1a852f66cf522acf74f174702b.tar.xz
Changed color channels from word to byte size.
* 8 bit color channels are the norm in all gui toolkits. * Deprecated the usage of TFPColor. TFPColor comes from the FPC fpcanvas unit, which I do not plan to use any more.
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/fpg_base.pas82
1 files changed, 41 insertions, 41 deletions
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas
index 273bd074..269d47aa 100644
--- a/src/corelib/fpg_base.pas
+++ b/src/corelib/fpg_base.pas
@@ -30,26 +30,26 @@ uses
type
TfpgCoord = integer; // we might use floating point coordinates in the future...
- TfpgColor = type longword; // Always in RRGGBB (Alpha, Red, Green, Blue) format!!
+ TfpgColor = type longword; // Always in AARRGGBB (Alpha, Red, Green, Blue) format!!
TfpgString = type string;
TfpgChar = type string[4];
PPoint = ^TPoint;
- TRGBTriple = record
- Red: word;
- Green: word;
- Blue: word;
- Alpha: word;
- end deprecated;
+ TRGBTriple = packed record
+ Red: byte;
+ Green: byte;
+ Blue: byte;
+ Alpha: byte;
+ end;
// Same declaration as in FPImage unit, but we don't use FPImage yet, so declare it here
TFPColor = record
- Red: word;
- Green: word;
- Blue: word;
- Alpha: word;
- end;
+ Red: byte;
+ Green: byte;
+ Blue: byte;
+ Alpha: byte;
+ end deprecated;
TWindowType = (wtChild, wtWindow, wtModalForm, wtPopup);
@@ -734,14 +734,14 @@ function KeycodeToText(AKey: Word; AShiftState: TShiftState): string;
function CheckClipboardKey(AKey: Word; AShiftstate: TShiftState): TClipboardKeyType;
{ Color }
-function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; deprecated;
-function fpgColorToFPColor(const AColor: TfpgColor): TFPColor;
-function RGBTripleTofpgColor(const AColor: TRGBTriple): TfpgColor; deprecated;
-function FPColorTofpgColor(const AColor: TFPColor): TfpgColor;
-function fpgGetRed(const AColor: TfpgColor): word;
-function fpgGetGreen(const AColor: TfpgColor): word;
-function fpgGetBlue(const AColor: TfpgColor): word;
-function fpgGetAlpha(const AColor: TfpgColor): word;
+function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple;
+function fpgColorToFPColor(const AColor: TfpgColor): TFPColor; deprecated;
+function RGBTripleTofpgColor(const AColor: TRGBTriple): TfpgColor;
+function FPColorTofpgColor(const AColor: TFPColor): TfpgColor; deprecated;
+function fpgGetRed(const AColor: TfpgColor): byte;
+function fpgGetGreen(const AColor: TfpgColor): byte;
+function fpgGetBlue(const AColor: TfpgColor): byte;
+function fpgGetAlpha(const AColor: TfpgColor): byte;
function fpgGetAvgColor(const AColor1, AColor2: TfpgColor): TfpgColor;
function fpgColor(const ARed, AGreen, ABlue: byte): TfpgColor;
function fpgDarker(const AColor: TfpgColor; APercent: Byte = 50): TfpgColor;
@@ -952,7 +952,7 @@ begin
end { if/else }
end;
-function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; deprecated;
+function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple;
begin
with Result do
begin
@@ -963,7 +963,7 @@ begin
end
end;
-function fpgColorToFPColor(const AColor: TfpgColor): TFPColor;
+function fpgColorToFPColor(const AColor: TfpgColor): TFPColor; deprecated;
begin
with Result do
begin
@@ -974,64 +974,64 @@ begin
end
end;
-function RGBTripleTofpgColor(const AColor: TRGBTriple): TfpgColor; deprecated;
+function RGBTripleTofpgColor(const AColor: TRGBTriple): TfpgColor;
begin
Result := AColor.Blue or (AColor.Green shl 8) or (AColor.Red shl 16) or (AColor.Alpha shl 32);
end;
-function FPColorTofpgColor(const AColor: TFPColor): TfpgColor;
+function FPColorTofpgColor(const AColor: TFPColor): TfpgColor; deprecated;
begin
Result := AColor.Blue or (AColor.Green shl 8) or (AColor.Red shl 16) or (AColor.Alpha shl 32);
end;
-function fpgGetRed(const AColor: TfpgColor): word;
+function fpgGetRed(const AColor: TfpgColor): byte;
var
c: TfpgColor;
begin
c := fpgColorToRGB(AColor);
// AARRGGBB format
- Result := Word((c shr 16) and $FF);
+ Result := (c shr 16) and $FF;
end;
-function fpgGetGreen(const AColor: TfpgColor): word;
+function fpgGetGreen(const AColor: TfpgColor): byte;
var
c: TfpgColor;
begin
c := fpgColorToRGB(AColor);
// AARRGGBB format
- Result := Word((c shr 8) and $FF);
+ Result := (c shr 8) and $FF;
end;
-function fpgGetBlue(const AColor: TfpgColor): word;
+function fpgGetBlue(const AColor: TfpgColor): byte;
var
c: TfpgColor;
begin
c := fpgColorToRGB(AColor);
// AARRGGBB format
- Result := Word(c and $FF);
+ Result := c and $FF;
end;
-function fpgGetAlpha(const AColor: TfpgColor): word;
+function fpgGetAlpha(const AColor: TfpgColor): byte;
var
c: TfpgColor;
begin
c := fpgColorToRGB(AColor);
// AARRGGBB format
- Result := Word((c shr 32) and $FF);
+ Result := (c shr 24) and $FF;
end;
function fpgGetAvgColor(const AColor1, AColor2: TfpgColor): TfpgColor;
var
- c1, c2: TFPColor;
- avg: TFPColor;
+ c1, c2: TRGBTriple;
+ avg: TRGBTriple;
begin
- c1 := fpgColorToFPColor(AColor1);
- c2 := fpgColorToFPColor(AColor2);
+ c1 := fpgColorToRGBTriple(AColor1);
+ c2 := fpgColorToRGBTriple(AColor2);
avg.Red := c1.Red + (c2.Red - c1.Red) div 2;
avg.Green := c1.Green + (c2.Green - c1.Green) div 2;
avg.Blue := c1.Blue + (c2.Blue - c1.Blue) div 2;
avg.Alpha := c1.Alpha + (c2.Alpha - c1.Alpha) div 2;
- Result := FPColorTofpgColor(avg);
+ Result := RGBTripleTofpgColor(avg);
end;
function fpgColor(const ARed, AGreen, ABlue: byte): TfpgColor;
@@ -1042,7 +1042,7 @@ end;
function fpgDarker(const AColor: TfpgColor; APercent: Byte): TfpgColor;
var
- lColor: TFPColor;
+ lColor: TRGBTriple;
begin
lColor.Red := fpgGetRed(AColor);
lColor.Green := fpgGetGreen(AColor);
@@ -1050,12 +1050,12 @@ begin
lColor.Red := Round(lColor.Red*APercent/100);
lColor.Green := Round(lColor.Green*APercent/100);
lColor.Blue := Round(lColor.Blue*APercent/100);
- Result := FPColorTofpgColor(lColor);
+ Result := RGBTripleTofpgColor(lColor);
end;
function fpgLighter(const AColor: TfpgColor; APercent: Byte): TfpgColor;
var
- lColor: TFPColor;
+ lColor: TRGBTriple;
begin
lColor.Red := fpgGetRed(AColor);
lColor.Green := fpgGetGreen(AColor);
@@ -1063,7 +1063,7 @@ begin
lColor.Red := Round((lColor.Red*APercent/100) + (255 - APercent/100*255));
lColor.Green := Round((lColor.Green*APercent/100) + (255 - APercent/100*255));
lColor.Blue := Round((lColor.Blue*APercent/100) + (255 - APercent/100*255));
- Result := FPColorTofpgColor(lColor);
+ Result := RGBTripleTofpgColor(lColor);
end;
function PtInRect(const ARect: TfpgRect; const APoint: TPoint): Boolean;