Renderer splitup completed

This commit is contained in:
ronaldhordijk
2005-02-06 09:14:17 +00:00
parent dc3d395e11
commit e4b303a414
5 changed files with 883 additions and 1008 deletions

View File

@ -29,19 +29,19 @@ type
type
TColorMapColor = Record
Red : Integer;
Green: Integer;
Blue : Integer;
Red : Int64;
Green: Int64;
Blue : Int64;
// Count: Integer;
end;
PColorMapColor = ^TColorMapColor;
TColorMapArray = array[0..255] of TColorMapColor;
TBucket = Record
Red : Integer;
Green: Integer;
Blue : Integer;
Count: Integer;
Red : Int64;
Green: Int64;
Blue : Int64;
Count: Int64;
end;
PBucket = ^TBucket;
TBucketArray = array of TBucket;
@ -51,15 +51,15 @@ type
private
bm: TBitmap;
oversample: Integer;
oversample: Int64;
filter_width: Integer;
filter: array of array of extended;
image_Width: Integer;
image_Height: Integer;
BucketWidth: Integer;
BucketHeight: Integer;
BucketSize: Integer;
BucketWidth: Int64;
BucketHeight: Int64;
BucketSize: Int64;
gutter_width: Integer;
sample_density: extended;
@ -358,7 +358,7 @@ end;
procedure TRenderer64.SetPixels;
var
i: integer;
nsamples: Integer;
nsamples: Int64;
nrbatches: Integer;
points: TPointsArray;
begin
@ -372,8 +372,8 @@ begin
if FStop then
Exit;
if (i and $F = 0) and assigned(FOnProgress) then
FOnProgress(i / nrbatches);
if (i and $F = 0) then
Progress(i / nrbatches);
// generate points
case Compatibility of
@ -387,8 +387,7 @@ begin
AddPointsToBucketsAngle(points);
end;
if assigned(FOnProgress) then
FOnProgress(1);
Progress(1);
end;
///////////////////////////////////////////////////////////////////////////////
@ -456,8 +455,7 @@ begin
if FStop then
Break;
if assigned(FOnProgress) then
FOnProgress(i / Image_Height);
Progress(i / Image_Height);
Row := PLongintArray(bm.scanline[YOffset + i]);
for j := 0 to Image_Width - 1 do begin
@ -539,7 +537,7 @@ begin
else if (bi > 255) then
bi := 255;
Row[j] := RGB(bi, gi, ri);
Row[j] := RGB(bi, gi, ri) + (ai shl 24);
end;
Inc(bucketpos, 2 * gutter_width);
@ -547,8 +545,7 @@ begin
end;
bm.PixelFormat := pf24bit;
if assigned(FOnProgress) then
FOnProgress(1);
Progress(1);
end;
///////////////////////////////////////////////////////////////////////////////