mirror of
https://github.com/scottdraves/flam3.git
synced 2025-01-21 13:30:04 -05:00
When using flam3-animate, a number of render parameters were based on the first genome in the file passed in - but things like highlight power should be based on the time to render, not the first genome. Fixed.
git-svn-id: https://flam3.googlecode.com/svn/trunk@17 77852712-ef1d-11de-8684-7d64432d61a3
This commit is contained in:
parent
8705587ecc
commit
22a1b64c8a
27
src/rect.c
27
src/rect.c
@ -534,10 +534,10 @@ static int render_rectangle(flam3_frame *spec, void *out,
|
|||||||
int out_width;
|
int out_width;
|
||||||
int filter_width=0;
|
int filter_width=0;
|
||||||
int bytes_per_channel = spec->bytes_per_channel;
|
int bytes_per_channel = spec->bytes_per_channel;
|
||||||
int oversample = spec->genomes[0].spatial_oversample;
|
int oversample;
|
||||||
double highpow = spec->genomes[0].highlight_power;
|
double highpow;
|
||||||
int nbatches = spec->genomes[0].nbatches;
|
int nbatches;
|
||||||
int ntemporal_samples = spec->genomes[0].ntemporal_samples;
|
int ntemporal_samples;
|
||||||
flam3_palette dmap;
|
flam3_palette dmap;
|
||||||
int gutter_width;
|
int gutter_width;
|
||||||
double vibrancy = 0.0;
|
double vibrancy = 0.0;
|
||||||
@ -578,6 +578,13 @@ static int render_rectangle(flam3_frame *spec, void *out,
|
|||||||
|
|
||||||
memset(&cp,0, sizeof(flam3_genome));
|
memset(&cp,0, sizeof(flam3_genome));
|
||||||
|
|
||||||
|
/* interpolate and get a control point */
|
||||||
|
flam3_interpolate(spec->genomes, spec->ngenomes, spec->time, 0, &cp);
|
||||||
|
oversample = cp.spatial_oversample;
|
||||||
|
highpow = cp.highlight_power;
|
||||||
|
nbatches = cp.nbatches;
|
||||||
|
ntemporal_samples = cp.ntemporal_samples;
|
||||||
|
|
||||||
if (nbatches < 1) {
|
if (nbatches < 1) {
|
||||||
fprintf(stderr, "nbatches must be positive, not %d.\n", nbatches);
|
fprintf(stderr, "nbatches must be positive, not %d.\n", nbatches);
|
||||||
return(1);
|
return(1);
|
||||||
@ -594,17 +601,17 @@ static int render_rectangle(flam3_frame *spec, void *out,
|
|||||||
fth[i].cp.final_xform_index=-1;
|
fth[i].cp.final_xform_index=-1;
|
||||||
|
|
||||||
/* Set up the output image dimensions, adjusted for scanline */
|
/* Set up the output image dimensions, adjusted for scanline */
|
||||||
image_width = spec->genomes[0].width;
|
image_width = cp.width;
|
||||||
out_width = image_width;
|
out_width = image_width;
|
||||||
if (field) {
|
if (field) {
|
||||||
image_height = spec->genomes[0].height / 2;
|
image_height = cp.height / 2;
|
||||||
|
|
||||||
if (field == flam3_field_odd)
|
if (field == flam3_field_odd)
|
||||||
out = (unsigned char *)out + nchan * bytes_per_channel * out_width;
|
out = (unsigned char *)out + nchan * bytes_per_channel * out_width;
|
||||||
|
|
||||||
out_width *= 2;
|
out_width *= 2;
|
||||||
} else
|
} else
|
||||||
image_height = spec->genomes[0].height;
|
image_height = cp.height;
|
||||||
|
|
||||||
|
|
||||||
/* Spatial Filter kernel creation */
|
/* Spatial Filter kernel creation */
|
||||||
@ -626,9 +633,9 @@ static int render_rectangle(flam3_frame *spec, void *out,
|
|||||||
|
|
||||||
/* temporal filter - we must free temporal_filter and temporal_deltas at the end */
|
/* temporal filter - we must free temporal_filter and temporal_deltas at the end */
|
||||||
sumfilt = flam3_create_temporal_filter(nbatches*ntemporal_samples,
|
sumfilt = flam3_create_temporal_filter(nbatches*ntemporal_samples,
|
||||||
spec->genomes[0].temporal_filter_type,
|
cp.temporal_filter_type,
|
||||||
spec->genomes[0].temporal_filter_exp,
|
cp.temporal_filter_exp,
|
||||||
spec->genomes[0].temporal_filter_width,
|
cp.temporal_filter_width,
|
||||||
&temporal_filter, &temporal_deltas);
|
&temporal_filter, &temporal_deltas);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user