LCL: TRawImage.PerformEffect: added option to free old data

git-svn-id: trunk@34802 -
This commit is contained in:
mattias 2012-01-19 21:20:47 +00:00
parent 6776c76423
commit a9debb99ed

View File

@ -215,7 +215,7 @@ type
procedure ReleaseData; procedure ReleaseData;
procedure ExtractRect(const ARect: TRect; out ADst: TRawImage); procedure ExtractRect(const ARect: TRect; out ADst: TRawImage);
procedure PerformEffect(const ADrawEffect: TGraphicsDrawEffect; CreateNewData: Boolean = True); procedure PerformEffect(const ADrawEffect: TGraphicsDrawEffect; CreateNewData: Boolean = True; FreeOldData: boolean = false);
function ReadBits(const APosition: TRawImagePosition; APrec, AShift: Byte): Word; function ReadBits(const APosition: TRawImagePosition; APrec, AShift: Byte): Word;
procedure ReadChannels(const APosition: TRawImagePosition; out ARed, AGreen, ABlue, AAlpha: Word); procedure ReadChannels(const APosition: TRawImagePosition; out ARed, AGreen, ABlue, AAlpha: Word);
procedure ReadMask(const APosition: TRawImagePosition; out AMask: Boolean); procedure ReadMask(const APosition: TRawImagePosition; out AMask: Boolean);
@ -1592,7 +1592,7 @@ begin
end; end;
procedure TRawImage.PerformEffect(const ADrawEffect: TGraphicsDrawEffect; procedure TRawImage.PerformEffect(const ADrawEffect: TGraphicsDrawEffect;
CreateNewData: Boolean); CreateNewData: Boolean; FreeOldData: boolean);
function CheckDescription: Boolean; function CheckDescription: Boolean;
begin begin
@ -1641,8 +1641,7 @@ begin
Move(Data^, AData^, DataSize); Move(Data^, AData^, DataSize);
P := AData; P := AData;
end end
else else begin
begin
P := Data; P := Data;
AData := P; AData := P;
end; end;
@ -1715,6 +1714,9 @@ begin
end; end;
end; end;
end; end;
if FreeOldData then
ReAllocMem(Data,0);
Data := P; Data := P;
end; end;