
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5452 8e941d3f-bd1b-0410-a28a-d453659cc2b4
73 lines
1.4 KiB
ObjectPascal
73 lines
1.4 KiB
ObjectPascal
unit Scanlines;
|
|
|
|
{$IFDEF FPC}
|
|
{$MODE DELPHI}
|
|
{$ENDIF}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF FPC}LCLIntf, LCLType,
|
|
{$ELSE}Windows,
|
|
{$ENDIF}
|
|
Graphics;
|
|
|
|
type
|
|
TRGBTripleArray = array [0..65535] of TRGBTriple;
|
|
pRGBTripleArray = ^TRGBTripleArray;
|
|
TRGBQuadArray = array [0..65535] of TRGBQuad;
|
|
pRGBQuadArray = ^TRGBQuadArray;
|
|
|
|
function RGBtoRGBTriple(R, G, B: byte): TRGBTriple;
|
|
function RGBtoRGBQuad(R, G, B: byte): TRGBQuad; overload;
|
|
function RGBToRGBQuad(c: TColor): TRGBQuad; overload;
|
|
function RGBQuadToRGB(q: TRGBQuad): TColor;
|
|
function RGBTripleToTColor(RGBTriple : TRGBTriple) : TColor;
|
|
|
|
implementation
|
|
|
|
function RGBtoRGBTriple(R, G, B: byte): TRGBTriple;
|
|
begin
|
|
with Result do
|
|
begin
|
|
rgbtRed := R;
|
|
rgbtGreen := G;
|
|
rgbtBlue := B;
|
|
end
|
|
end;
|
|
|
|
function RGBtoRGBQuad(R, G, B: byte): TRGBQuad; overload;
|
|
begin
|
|
with Result do
|
|
begin
|
|
rgbRed := R;
|
|
rgbGreen := G;
|
|
rgbBlue := B;
|
|
rgbReserved := 0;
|
|
end
|
|
end;
|
|
|
|
function RGBToRGBQuad(c: TColor): TRGBQuad; overload;
|
|
begin
|
|
with Result do
|
|
begin
|
|
rgbRed := GetRValue(c);
|
|
rgbGreen := GetGValue(c);
|
|
rgbBlue := GetBValue(c);
|
|
rgbReserved := 0
|
|
end;
|
|
end;
|
|
|
|
function RGBQuadToRGB(q: TRGBQuad): TColor;
|
|
begin
|
|
Result := RGB(q.rgbRed, q.rgbGreen, q.rgbBlue);
|
|
end;
|
|
|
|
function RGBTripleToTColor(RGBTriple: TRGBTriple): TColor;
|
|
begin
|
|
Result := RGBTriple.rgbtBlue shl 16 + RGBTriple.rgbtGreen shl 8 + RGBTriple.rgbtRed;
|
|
end;
|
|
|
|
end.
|
|
|