diff --git a/apps/plugins/fractals/mandelbrot_set.c b/apps/plugins/fractals/mandelbrot_set.c index 583095913f..69485d405a 100644 --- a/apps/plugins/fractals/mandelbrot_set.c +++ b/apps/plugins/fractals/mandelbrot_set.c @@ -39,8 +39,15 @@ static fb_data imgbuffer[LCD_HEIGHT]; * 345 (=15*26-45) is max_iter maximal value * This implementation ignores pixel format, thus it is not uniformly spread */ +#if LCD_DEPTH > 24 +/* when LCD_DEPTH is 32 casting to 64bit intermediate is needed to prevent + * overflow and warning 'left shift count >= width of type' + */ +#define LCOLOR(iter) ((unsigned int)(((unsigned long long)iter << LCD_DEPTH) / 345)) +#else #define LCOLOR(iter) ((iter << LCD_DEPTH) / 345) #endif +#endif #ifdef HAVE_LCD_COLOR #define COLOR(iter) FB_SCALARPACK(LCOLOR(iter))