summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2018-06-20 21:57:34 +0200
committerMarcin Bukat <marcin.bukat@gmail.com>2018-06-20 21:57:34 +0200
commit708a54d3de31ef76f524baeb0f5c2697589e93d7 (patch)
treee511c49d18284c76eb8340eaf7ec92d2bb3f9470
parent28cfeed4c1a07262ac9d0abc4e9263f10971633a (diff)
downloadrockbox-708a54d.tar.gz
rockbox-708a54d.tar.bz2
rockbox-708a54d.zip
Fix yellow for LCD_DEPTH == 32
Change-Id: I59e9ec8720555c17e882a3a8c7ed0ba281b8d7c7
-rw-r--r--apps/plugins/fractals/mandelbrot_set.c7
1 files changed, 7 insertions, 0 deletions
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))