mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 20:47:58 +02:00
Add scanline support
git-svn-id: trunk@41855 -
This commit is contained in:
parent
698715cdc9
commit
84d4e52eae
@ -1297,6 +1297,7 @@ type
|
||||
procedure FreeCanvasContext;
|
||||
function GetCanvas: TCanvas;
|
||||
function GetRawImage: TRawImage;
|
||||
function GetScanline(ARow: Integer): Pointer;
|
||||
function GetTransparentColor: TColor;
|
||||
procedure SetTransparentColor(AValue: TColor);
|
||||
protected
|
||||
@ -1379,7 +1380,7 @@ type
|
||||
property MaskHandle: HBITMAP read GetMaskHandle write SetMaskHandle;
|
||||
property PixelFormat: TPixelFormat read GetPixelFormat write SetPixelFormat default pfDevice;
|
||||
property RawImage: TRawImage read GetRawImage; // be carefull with this, modify only within a begin/endupdate
|
||||
// property ScanLine[Row: Integer]: Pointer; -> Use TLazIntfImage for such things
|
||||
property ScanLine[Row: Integer]: Pointer read GetScanLine; platform; // Use only when wrpped by a begin/endupdate
|
||||
property TransparentColor: TColor read GetTransparentColor
|
||||
write SetTransparentColor default clDefault;
|
||||
property TransparentMode: TTransparentMode read FTransparentMode
|
||||
|
@ -209,6 +209,7 @@ type
|
||||
procedure ReleaseData;
|
||||
procedure ExtractRect(const ARect: TRect; out ADst: TRawImage);
|
||||
|
||||
function GetLineStart(ALine: Cardinal): PByte;
|
||||
procedure PerformEffect(const ADrawEffect: TGraphicsDrawEffect; CreateNewData: Boolean = True; FreeOldData: boolean = false);
|
||||
function ReadBits(const APosition: TRawImagePosition; APrec, AShift: Byte): Word;
|
||||
procedure ReadChannels(const APosition: TRawImagePosition; out ARed, AGreen, ABlue, AAlpha: Word);
|
||||
@ -1585,6 +1586,14 @@ begin
|
||||
Description.MaskLineEnd, ADst.Mask, ADst.MaskSize);
|
||||
end;
|
||||
|
||||
function TRawImage.GetLineStart(ALine: Cardinal): PByte;
|
||||
begin
|
||||
Result := Data;
|
||||
if Result = nil then Exit;
|
||||
if ALine = 0 then Exit;
|
||||
Inc(Result, ALine * Description.BytesPerLine);
|
||||
end;
|
||||
|
||||
procedure TRawImage.PerformEffect(const ADrawEffect: TGraphicsDrawEffect;
|
||||
CreateNewData: Boolean; FreeOldData: boolean);
|
||||
|
||||
|
@ -467,6 +467,14 @@ begin
|
||||
else Result := p^;
|
||||
end;
|
||||
|
||||
function TRasterImage.GetScanline(ARow: Integer): Pointer;
|
||||
var
|
||||
RI: TRawImage;
|
||||
begin
|
||||
RI := GetRawImage;
|
||||
Result := RI.GetLineStart(ARow);
|
||||
end;
|
||||
|
||||
function TRasterImage.GetTransparentColor: TColor;
|
||||
begin
|
||||
if FTransparentColor = clDefault
|
||||
|
Loading…
Reference in New Issue
Block a user