fixed errors in MM rendering

This commit is contained in:
zueuk
2006-04-05 11:01:07 +00:00
parent d85cf9e346
commit 4f76d9b2a3
4 changed files with 59 additions and 62 deletions

View File

@ -47,7 +47,6 @@ type
FImageMaker: TImageMaker;
procedure InitValues;
procedure InitBuffers;
procedure ClearBuffers;
@ -75,7 +74,7 @@ type
procedure Render; override;
function GetImage: TBitmap; override;
procedure UpdateImage(CP: TControlPoint); override;
// procedure UpdateImage(CP: TControlPoint); override;
procedure SaveImage(const FileName: String); override;
end;
@ -212,6 +211,8 @@ begin
Bucketwidth := oversample * fcp.Width + 2 * max_gutter_width;
BucketSize := BucketWidth * BucketHeight;
assert(BucketSize > 0); // who knows ;)
if high(buckets) <> (BucketSize - 1) then
try
SetLength(buckets, BucketSize);
@ -219,6 +220,7 @@ begin
on EOutOfMemory do begin
Application.MessageBox('Error: not enough memory for this render!', 'Apophysis', 48);
FStop := true;
exit;
end;
end;
@ -226,17 +228,6 @@ begin
FImageMaker.SetBucketData(Buckets, BucketWidth);
end;
///////////////////////////////////////////////////////////////////////////////
procedure TRenderer64.InitValues;
begin
InitBuffers;
CreateCamera;
CreateColorMap;
fcp.Prepare;
end;
///////////////////////////////////////////////////////////////////////////////
procedure TRenderer64.SetPixels;
var
@ -245,7 +236,6 @@ var
nrbatches: Integer;
IterateBatchProc: procedure of object;
begin
Prepare;
Randomize;
if FCP.FAngle = 0 then begin
@ -290,7 +280,13 @@ begin
FImageMaker.SetCP(FCP);
FImageMaker.Init;
InitValues;
InitBuffers;
if FStop then exit; // memory allocation error
CreateColorMap;
Prepare;
CreateCamera;
ClearBuffers;
SetPixels;
@ -302,6 +298,7 @@ begin
end;
///////////////////////////////////////////////////////////////////////////////
{
procedure TRenderer64.UpdateImage(CP: TControlPoint);
begin
FCP.background := cp.background;
@ -317,6 +314,7 @@ begin
FImageMaker.OnProgress := OnProgress;
FImageMaker.CreateImage;
end;
}
///////////////////////////////////////////////////////////////////////////////
procedure TRenderer64.SaveImage(const FileName: String);