You've already forked lazarus-ccr
Add direct access to ScanLine's Pixels.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1605 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -38,6 +38,8 @@ type
|
||||
procedure SetFillColor(const AValue: TColor);
|
||||
procedure SetOutlineColor(const AValue: TColor);
|
||||
procedure SetPaperColor(const AValue: TColor);
|
||||
function GetScanLinePixel(X, Y: Integer): TColor;
|
||||
procedure SetScanLinePixel(X, Y: Integer; Value: TColor);
|
||||
protected
|
||||
procedure SetWidth(Value: integer); override;
|
||||
procedure SetHeight(Value: integer); override;
|
||||
@ -73,6 +75,7 @@ type
|
||||
property FillColor: TColor read GetFillColor write SetFillColor;
|
||||
property OutlineColor: TColor read GetOutlineColor write SetOutlineColor;
|
||||
property PaperColor: TColor read GetPaperColor write SetPaperColor;
|
||||
property ScanLinePixels[X, Y: Integer]: TColor read GetScanLinePixel write SetScanLinePixel;
|
||||
end;
|
||||
|
||||
TTextEditor = class;
|
||||
@ -433,6 +436,31 @@ begin
|
||||
Canvas.FloodFill(x, y, Canvas.Pixels[x, y], fsSurface);
|
||||
end;
|
||||
|
||||
function TDLBitmap.GetScanLinePixel(X, Y: Integer): TColor;
|
||||
var SrcRow: pRGBATriple; RR, GG, BB: integer;
|
||||
begin
|
||||
if (x >= 0) and (x < Width) and (y >= 0) and (y < Height) then
|
||||
begin
|
||||
SrcRow := ScanLine[y];
|
||||
RR := SrcRow[x].rgbtRed;
|
||||
GG := SrcRow[x].rgbtGreen;
|
||||
BB := SrcRow[x].rgbtBlue;
|
||||
end;
|
||||
Result := RR + (GG shl 8) and $FF00 + (BB shl 16) and $FF0000;
|
||||
end;
|
||||
|
||||
procedure TDLBitmap.SetScanLinePixel(X, Y: Integer; Value: TColor);
|
||||
var SrcRow: pRGBATriple;
|
||||
begin
|
||||
if (x >= 0) and (x < Width) and (y >= 0) and (y < Height) then
|
||||
begin
|
||||
SrcRow := ScanLine[y];
|
||||
SrcRow[x].rgbtRed:=GetRColor(Value);
|
||||
SrcRow[x].rgbtGreen:=GetGColor(Value);
|
||||
SrcRow[x].rgbtBlue:=GetBColor(Value);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TDLBitmap.Spray(x, y, radian: integer; PColor: TColor);
|
||||
begin
|
||||
SprayPoints(Self, x, y, radian, PColor);
|
||||
|
@ -487,11 +487,10 @@ begin
|
||||
DestBmp.Free;
|
||||
end;
|
||||
|
||||
procedure SetCanvasPixel(DLBmp: TDLBitmap; x, y: integer; aColor: TColor);
|
||||
procedure SetDLBMPPixel(DLBmp: TDLBitmap; x, y: integer; aColor: TColor);
|
||||
var SrcRow: pRGBATriple;
|
||||
begin
|
||||
if (x > 0) and (x < DLBmp.Width) and (y > 0) and (y < DLBmp.Height) then
|
||||
//aCanvas.Pixels[x, y] := aColor;
|
||||
if (x >= 0) and (x < DLBmp.Width) and (y >= 0) and (y < DLBmp.Height) then
|
||||
begin
|
||||
SrcRow := DLBmp.ScanLine[y];
|
||||
SrcRow[x].rgbtRed:=GetRColor(aColor);
|
||||
@ -516,7 +515,7 @@ begin
|
||||
b := Random(Round(Radians * 0.65));
|
||||
if (temp < 50) then b := 0 - b;
|
||||
if (a * a + b * b < Sqr(Round(Radians * 0.65))) then
|
||||
SetCanvasPixel(DLBmp, X + a, Y + b, PColor);
|
||||
DLBmp.ScanLinePixels[X + a, Y + b] := PColor;
|
||||
Radian2 := Radians div 3;
|
||||
temp := Random(100);
|
||||
a := Random(Round(Radian2 * 0.65));
|
||||
@ -525,7 +524,7 @@ begin
|
||||
b := Random(Round(Radian2 * 0.65));
|
||||
if (temp < 50) then b := 0 - b;
|
||||
if (a * a + b * b < Sqr(Round(Radian2 * 0.65))) then
|
||||
SetCanvasPixel(DLBmp, X + a, Y + b, PColor);
|
||||
DLBmp.ScanLinePixels[X + a, Y + b] := PColor;
|
||||
Radian3 := Radians * 2 div 3;
|
||||
temp := Random(100);
|
||||
a := Random(Round(Radian3 * 0.65));
|
||||
@ -534,7 +533,7 @@ begin
|
||||
b := Random(Round(Radian3 * 0.65));
|
||||
if (temp < 50) then b := 0 - b;
|
||||
if (a * a + b * b < Sqr(Round(Radian3 * 0.65))) then
|
||||
SetCanvasPixel(DLBmp, X + a, Y + b, PColor);
|
||||
DLBmp.ScanLinePixels[X + a, Y + b] := PColor;
|
||||
end;
|
||||
DLBmp.InvalidateScanLineRect(Rect(X - Radians, Y - Radians, X + Radians, Y + Radians));
|
||||
end;
|
||||
|
@ -41,7 +41,7 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item3>
|
||||
</RequiredPackages>
|
||||
<Units Count="41">
|
||||
<Units Count="43">
|
||||
<Unit0>
|
||||
<Filename Value="lazimageeditor.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -49,7 +49,7 @@
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="14" Y="4"/>
|
||||
<UsageCount Value="74"/>
|
||||
<UsageCount Value="75"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="main.pas"/>
|
||||
@ -62,7 +62,7 @@
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="801"/>
|
||||
<CursorPos X="34" Y="812"/>
|
||||
<UsageCount Value="74"/>
|
||||
<UsageCount Value="75"/>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
</Unit1>
|
||||
@ -71,9 +71,9 @@
|
||||
<UnitName Value="PictureCtrls"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1165"/>
|
||||
<CursorPos X="42" Y="1176"/>
|
||||
<UsageCount Value="31"/>
|
||||
<TopLine Value="430"/>
|
||||
<CursorPos X="26" Y="443"/>
|
||||
<UsageCount Value="32"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
@ -169,19 +169,17 @@
|
||||
<Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/>
|
||||
<UnitName Value="Graphics"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1133"/>
|
||||
<CursorPos X="81" Y="1149"/>
|
||||
<TopLine Value="41"/>
|
||||
<CursorPos X="19" Y="52"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="picturemanager.pas"/>
|
||||
<UnitName Value="PictureManager"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="95" Y="2"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="T:\ajlazctrls\dbdemo\bmprgbgraph.pas"/>
|
||||
@ -242,10 +240,12 @@
|
||||
<Unit21>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<UnitName Value="BmpRGBTypes"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="98" Y="4"/>
|
||||
<UsageCount Value="27"/>
|
||||
<TopLine Value="591"/>
|
||||
<CursorPos X="20" Y="602"/>
|
||||
<UsageCount Value="28"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="T:\fpclaz\laz\lcl\include\winapih.inc"/>
|
||||
@ -290,8 +290,8 @@
|
||||
<Filename Value="T:\fpclaz\laz\lcl\graphtype.pp"/>
|
||||
<UnitName Value="GraphType"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="26"/>
|
||||
<CursorPos X="5" Y="42"/>
|
||||
<TopLine Value="28"/>
|
||||
<CursorPos X="3" Y="39"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
@ -340,8 +340,8 @@
|
||||
<Unit33>
|
||||
<Filename Value="T:\fpclaz\laz\lcl\include\graphic.inc"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="116"/>
|
||||
<CursorPos X="30" Y="130"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
@ -357,9 +357,9 @@
|
||||
<UnitName Value="DLBitmap"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="432"/>
|
||||
<CursorPos X="19" Y="438"/>
|
||||
<UsageCount Value="15"/>
|
||||
<TopLine Value="447"/>
|
||||
<CursorPos X="40" Y="460"/>
|
||||
<UsageCount Value="16"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
@ -391,9 +391,9 @@
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="488"/>
|
||||
<CursorPos X="2" Y="504"/>
|
||||
<UsageCount Value="13"/>
|
||||
<TopLine Value="485"/>
|
||||
<CursorPos X="19" Y="490"/>
|
||||
<UsageCount Value="14"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
@ -404,128 +404,106 @@
|
||||
<CursorPos X="91" Y="1811"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<Filename Value="T:\fpclaz\laz\lcl\include\bitmapcanvas.inc"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<Filename Value="T:\fpclaz\laz\lcl\include\canvas.inc"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="135"/>
|
||||
<CursorPos X="1" Y="141"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit42>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<JumpHistory Count="21" HistoryIndex="20">
|
||||
<Position1>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="177" Column="20" TopLine="145"/>
|
||||
<Caret Line="1135" Column="52" TopLine="1123"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="183" Column="16" TopLine="151"/>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="503" Column="15" TopLine="491"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="257" Column="27" TopLine="225"/>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="581" Column="96" TopLine="571"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1197" Column="72" TopLine="10"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="460" Column="20" TopLine="440"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1198" Column="72" TopLine="1167"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="97" Column="90" TopLine="94"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1199" Column="72" TopLine="1168"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="190" Column="19" TopLine="171"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1198" Column="72" TopLine="1167"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="191" Column="19" TopLine="172"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1199" Column="72" TopLine="1168"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="298" Column="27" TopLine="288"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1201" Column="72" TopLine="1170"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="443" Column="26" TopLine="430"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1337" Column="3" TopLine="1329"/>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="131" Column="28" TopLine="120"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1344" Column="3" TopLine="1336"/>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="603" Column="33" TopLine="591"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1105" Column="26" TopLine="1096"/>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="602" Column="22" TopLine="591"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="193" Column="57" TopLine="181"/>
|
||||
<Filename Value="bmprgbtypes.pas"/>
|
||||
<Caret Line="602" Column="20" TopLine="591"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="510" Column="30" TopLine="506"/>
|
||||
<Caret Line="430" Column="17" TopLine="419"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="1176" Column="33" TopLine="1159"/>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="573" Column="18" TopLine="557"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="428" Column="28" TopLine="409"/>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="573" Column="17" TopLine="557"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="4" Column="96" TopLine="1"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="439" Column="56" TopLine="435"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="601" Column="1" TopLine="588"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="449" Column="52" TopLine="438"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="13" Column="89" TopLine="5"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="41" Column="68" TopLine="34"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="615" Column="45" TopLine="591"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="78" Column="74" TopLine="433"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="616" Column="59" TopLine="593"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="41" Column="44" TopLine="31"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1106" Column="31" TopLine="1096"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1112" Column="25" TopLine="1096"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="188" Column="27" TopLine="172"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="49" Column="33" TopLine="42"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="50" Column="33" TopLine="42"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="190" Column="37" TopLine="170"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1135" Column="52" TopLine="1123"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="503" Column="15" TopLine="491"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<Caret Line="581" Column="96" TopLine="571"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
Reference in New Issue
Block a user