Building an LCD TFT library for Arduino DUE

Another test of the LCD HX8347A library with DUE. This time using stimmer's VGA approach (Thank you stimmer!). Even though the LCD can handle 24-bit RGB(888), I decided to keep stimmer 8-bit colour (RRRGGGBB).
http://forum.arduino.cc/index.php?topic=130742.0
Refreshing time: 50 secs.

The sketch and a picture.

// Arduino Due - LCD HX8347A VGA sample 1
// Brief LCD controller HX8347A TFT example for Arduino Due
// ported from Atmel ASF SAM3X-EK Display Controller Example. 
// Draw a fractal pattern on the HX8347A LCD controller. 
// By Wilfredo Molina 2014 (fractal code by stimmer)

#include "hx8347a.h"
#include "smc.h"
#define CONF_BOARD_HX8347A_LCD_CS      2
struct opt_t display_opt;

HX8347A HX8347A;

void setup() {
 Serial.begin(115200);
} 

#include <complex>
using namespace std;
const byte cmap[]={0b00000000,0b11100000,0b11100100,0b11101000,0b11101100,0b11110000,0b11110100,0b11111000,0b11111100,
                   0b11011100,0b10111100,0b10011100,0b01111100,0b01011100,0b00111100,0b00011100,0b00011101,0b00011110,
                   0b00011111,0b00011011,0b00010111,0b00010011,0b00001111,0b00001011,0b00000111,0b00000011,0b00100011,
                   0b01000011,0b01100011,0b10000011,0b10100011,0b11000011,0b11100011,0b11100010,0b11100001,0b11100000,0b00000000}; 
void loop()
{
        pmc_enable_periph_clk(ID_SMC);
        smc_set_setup_timing(SMC, CONF_BOARD_HX8347A_LCD_CS, SMC_SETUP_NWE_SETUP(1)
			| SMC_SETUP_NCS_WR_SETUP(1)
			| SMC_SETUP_NRD_SETUP(9)
			| SMC_SETUP_NCS_RD_SETUP(9));
	smc_set_pulse_timing(SMC, CONF_BOARD_HX8347A_LCD_CS, SMC_PULSE_NWE_PULSE(4)
			| SMC_PULSE_NCS_WR_PULSE(4)
			| SMC_PULSE_NRD_PULSE(36)
			| SMC_PULSE_NCS_RD_PULSE(36));
	smc_set_cycle_timing(SMC, CONF_BOARD_HX8347A_LCD_CS, SMC_CYCLE_NWE_CYCLE(10)
			| SMC_CYCLE_NRD_CYCLE(45));
	smc_set_mode(SMC, CONF_BOARD_HX8347A_LCD_CS, SMC_MODE_READ_MODE
			| SMC_MODE_WRITE_MODE | SMC_MODE_DBW_BIT_16);
	display_opt.ul_width = HX8347A_LCD_WIDTH;
	display_opt.ul_height = HX8347A_LCD_HEIGHT;
	display_opt.foreground_color = COLOR_BLACK;
	display_opt.background_color = COLOR_WHITE;
        if(HX8347A.init(&display_opt)){
		puts("Read HX8347A chip ID error, please check the configuration.\r");
	}
	HX8347A.set_foreground_color(COLOR_WHITE);
	HX8347A.draw_filled_rectangle(0, 0, HX8347A_LCD_WIDTH - 1, HX8347A_LCD_HEIGHT - 1);
	HX8347A.display_on();
	HX8347A.set_foreground_color(COLOR_BLACK);
        for(int i=0;i<320;i++){
        for(int j=0;j<240;j++){     
          complex<float> z(0,0),c((i+180.0)/1280.0,(j+640.0)/1280.0);
          int n;
          for(n=1;n<sizeof(cmap);n++){
           z=z*z+c;
          if(norm(z)>4.0)break;
          }
        HX8347A.set_foreground_color(cmap[sizeof(cmap)-n]);
        HX8347A.draw_pixel(j, i);
        }
    }
}

p