Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer authored on 2011/11/13 00:33:56... | ... |
@@ -159,7 +159,7 @@ static void draw_mandelbrot(AVFilterContext *ctx, uint32_t *color, int linesize, |
159 | 159 |
MBContext *mb = ctx->priv; |
160 | 160 |
int x,y,i, in_cidx=0, next_cidx=0, tmp_cidx; |
161 | 161 |
double scale= mb->start_scale*pow(mb->end_scale/mb->start_scale, pts/mb->end_pts); |
162 |
- |
|
162 |
+ int use_zyklus=0; |
|
163 | 163 |
fill_from_cache(ctx, NULL, &in_cidx, NULL, mb->start_y+scale*(-mb->h/2-0.5), scale); |
164 | 164 |
for(y=0; y<mb->h; y++){ |
165 | 165 |
const double ci=mb->start_y+scale*(y-mb->h/2); |
... | ... |
@@ -190,11 +190,14 @@ static void draw_mandelbrot(AVFilterContext *ctx, uint32_t *color, int linesize, |
190 | 190 |
t= zr*zr - zi*zi; |
191 | 191 |
zi= 2*zr*zi + ci; |
192 | 192 |
zr= t + cr; |
193 |
- if(i && mb->zyklus[i>>1][0]==zr && mb->zyklus[i>>1][1]==zi) |
|
194 |
- break; |
|
195 |
- mb->zyklus[i][0]= zr; |
|
196 |
- mb->zyklus[i][1]= zi; |
|
193 |
+ if(use_zyklus){ |
|
194 |
+ if(i && mb->zyklus[i>>1][0]==zr && mb->zyklus[i>>1][1]==zi) |
|
195 |
+ break; |
|
196 |
+ mb->zyklus[i][0]= zr; |
|
197 |
+ mb->zyklus[i][1]= zi; |
|
198 |
+ } |
|
197 | 199 |
} |
200 |
+ use_zyklus = !c; |
|
198 | 201 |
c |= 0xFF000000; |
199 | 202 |
color[x + y*linesize]= c; |
200 | 203 |
if(next_cidx < mb->cache_allocated){ |