Support for post render changes added
This commit is contained in:
parent
3d97bf58d4
commit
b472bd5f01
@ -69,6 +69,7 @@ type
|
||||
procedure SetCP(CP: TControlPoint);
|
||||
function GetImage: TBitmap; virtual; abstract;
|
||||
procedure Render; virtual; abstract;
|
||||
procedure UpdateImage(CP: TControlPoint); virtual;
|
||||
procedure Stop;
|
||||
|
||||
property OnProgress: TOnProgress
|
||||
@ -109,6 +110,7 @@ type
|
||||
function GetImage: TBitmap;
|
||||
procedure Render;
|
||||
procedure RenderMaxMem(MaxMem: Int64);
|
||||
procedure UpdateImage(CP: TControlPoint);
|
||||
|
||||
procedure Stop;
|
||||
|
||||
@ -248,6 +250,12 @@ begin
|
||||
FCP := Cp.Clone;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
procedure TBaseRenderer.UpdateImage(CP: TControlPoint);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
procedure TBaseRenderer.Stop;
|
||||
begin
|
||||
@ -289,6 +297,12 @@ begin
|
||||
Render;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
procedure TRenderer.UpdateImage(CP: TControlPoint);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
end.
|
||||
|
||||
|
@ -461,6 +461,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
bm.PixelFormat := pf32bit;
|
||||
|
||||
ls := 0;
|
||||
ai := 0;
|
||||
bucketpos := 0;
|
||||
|
@ -68,8 +68,8 @@ type
|
||||
ColorMap: TColorMapArray;
|
||||
|
||||
bg: array[0..2] of extended;
|
||||
vib_gam_n: Integer;
|
||||
vibrancy: double;
|
||||
// vib_gam_n: Integer;
|
||||
// vibrancy: double;
|
||||
gamma: double;
|
||||
|
||||
bounds: array[0..3] of extended;
|
||||
@ -101,6 +101,7 @@ type
|
||||
|
||||
procedure Render; override;
|
||||
|
||||
procedure UpdateImage(CP: TControlPoint); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -234,8 +235,10 @@ end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
procedure TRenderer64.InitBuffers;
|
||||
const
|
||||
MaxFilterWidth = 25;
|
||||
begin
|
||||
gutter_width := (filter_width - oversample) div 2;
|
||||
gutter_width := (MaxFilterWidth - oversample) div 2;
|
||||
BucketHeight := oversample * image_height + 2 * gutter_width;
|
||||
Bucketwidth := oversample * image_width + 2 * gutter_width;
|
||||
BucketSize := BucketWidth * BucketHeight;
|
||||
@ -258,9 +261,9 @@ begin
|
||||
|
||||
CreateColorMap;
|
||||
|
||||
vibrancy := 0;
|
||||
// vibrancy := 0;
|
||||
gamma := 0;
|
||||
vib_gam_n := 0;
|
||||
// vib_gam_n := 0;
|
||||
bg[0] := 0;
|
||||
bg[1] := 0;
|
||||
bg[2] := 0;
|
||||
@ -473,7 +476,7 @@ begin
|
||||
for i := 1 to 1024 do begin
|
||||
lsa[i] := (k1 * log10(1 + fcp.White_level * i * k2)) / (fcp.White_level * i);
|
||||
end;
|
||||
|
||||
(*
|
||||
if filter_width > 1 then begin
|
||||
for i := 0 to BucketWidth * BucketHeight - 1 do begin
|
||||
if Buckets[i].count = 0 then
|
||||
@ -487,6 +490,8 @@ begin
|
||||
Buckets[i].Count := Round(Buckets[i].Count * ls);
|
||||
end;
|
||||
end;
|
||||
*)
|
||||
bm.PixelFormat := pf32bit;
|
||||
|
||||
ls := 0;
|
||||
ai := 0;
|
||||
@ -510,10 +515,12 @@ begin
|
||||
filterValue := filter[ii, jj];
|
||||
filterpos := bucketpos + ii * BucketWidth + jj;
|
||||
|
||||
fp[0] := fp[0] + filterValue * Buckets[filterpos].Red;
|
||||
fp[1] := fp[1] + filterValue * Buckets[filterpos].Green;
|
||||
fp[2] := fp[2] + filterValue * Buckets[filterpos].Blue;
|
||||
fp[3] := fp[3] + filterValue * Buckets[filterpos].Count;
|
||||
ls := lsa[Min(1023, Buckets[filterpos].Count)];
|
||||
|
||||
fp[0] := fp[0] + filterValue * ls * Buckets[filterpos].Red;
|
||||
fp[1] := fp[1] + filterValue * ls * Buckets[filterpos].Green;
|
||||
fp[2] := fp[2] + filterValue * ls * Buckets[filterpos].Blue;
|
||||
fp[3] := fp[3] + filterValue * ls * Buckets[filterpos].Count;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -623,6 +630,17 @@ begin
|
||||
CreateBMFromBuckets;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
procedure TRenderer64.UpdateImage(CP: TControlPoint);
|
||||
begin
|
||||
FCP.background := cp.background;
|
||||
FCP.spatial_filter_radius := cp.spatial_filter_radius;
|
||||
|
||||
CreateFilter;
|
||||
|
||||
CreateBMFromBuckets;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
end.
|
||||
|
||||
|
@ -52,6 +52,7 @@ type
|
||||
procedure SetCP(CP: TControlPoint);
|
||||
function GetImage: TBitmap;
|
||||
procedure Execute; override;
|
||||
function GetRenderer: TBaseRenderer;
|
||||
|
||||
procedure Terminate;
|
||||
|
||||
@ -179,6 +180,12 @@ begin
|
||||
FMaxMem := Value;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
end.
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
function TRenderThread.GetRenderer: TBaseRenderer;
|
||||
begin
|
||||
Result := FRenderer;
|
||||
FRenderer := nil;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////end.
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user