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