summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-11-19 15:00:26 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-11-19 15:00:26 +0100
commitda1344e0cd3c796791e984d6e66721e5a457e466 (patch)
tree48c66ba20158bac97926734105a1a067a6b536ba /libavfilter
parente749b3780c288591159f078b00a8d859d7cb4905 (diff)
vsrc_mandelbrot: simplify second bailout search by not recalculating values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vsrc_mandelbrot.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/libavfilter/vsrc_mandelbrot.c b/libavfilter/vsrc_mandelbrot.c
index d7f51dbdd6..68f65bcc6c 100644
--- a/libavfilter/vsrc_mandelbrot.c
+++ b/libavfilter/vsrc_mandelbrot.c
@@ -264,25 +264,22 @@ static void draw_mandelbrot(AVFilterContext *ctx, uint32_t *color, int linesize,
Z_Z2_C_ZYKLUS(t, zi, zr, zi, 0)
i++;
Z_Z2_C_ZYKLUS(zr, zi, t, zi, 1)
- if(zr*zr + zi*zi > mb->bailout)
- break;
- }
- i-= FFMIN(7, i);
- zr= mb->zyklus[i][0];
- zi= mb->zyklus[i][1];
- for(; i<mb->maxiter; i++){
- double t;
if(zr*zr + zi*zi > mb->bailout){
- switch(mb->outer){
- case ITERATION_COUNT: zr = i - (SQR(zr-cr)+SQR(zi-ci) > SQR(mb->bailout)); break;
- case NORMALIZED_ITERATION_COUNT: zr= i + log2(log(mb->bailout) / log(zr*zr + zi*zi)); break;
+ i-= FFMIN(7, i);
+ for(; i<mb->maxiter; i++){
+ zr= mb->zyklus[i][0];
+ zi= mb->zyklus[i][1];
+ if(zr*zr + zi*zi > mb->bailout){
+ switch(mb->outer){
+ case ITERATION_COUNT: zr = i; break;
+ case NORMALIZED_ITERATION_COUNT: zr= i + log2(log(mb->bailout) / log(zr*zr + zi*zi)); break;
+ }
+ c= lrintf((sin(zr)+1)*127) + lrintf((sin(zr/1.234)+1)*127)*256*256 + lrintf((sin(zr/100)+1)*127)*256;
+ break;
+ }
}
- c= lrintf((sin(zr)+1)*127) + lrintf((sin(zr/1.234)+1)*127)*256*256 + lrintf((sin(zr/100)+1)*127)*256;
break;
}
- Z_Z2_C_ZYKLUS(t, zi, zr, zi, 0)
- i++;
- Z_Z2_C_ZYKLUS(zr, zi, t, zi, 1)
}
if(!c){
if(mb->inner==PERIOD){