#if (!js && !flash) import haxe.io.Bytes; #end #if anon_objects typedef RGB = { r:Int, g:Int, b:Int }; typedef Complex = { i:Float, j:Float }; #else class RGB { public var r:Int; public var g:Int; public var b:Int; public function new(inR:Int, inG:Int, inB:Int) { r = inR; g = inG; b = inB; } } class Complex { public var i:Float; public var j:Float; public function new(inI:Float, inJ:Float) { i = inI; j = inJ; } } #end class Mandelbrot { static inline var SIZE = 25; static inline var MaxIterations = 1000; static inline var MaxRad = 1<<16; static inline var width = 35*SIZE; static inline var height = 20*SIZE; public static function main() { var t0 = now(); var palette = []; for(i in 0...MaxIterations+1) palette.push( createPalette(i/MaxIterations) ); var image = []; image[ width*height-1 ] = null; var outPixel = 0; var scale = 0.1/SIZE; for(y in 0...height) { if ( (y%10)== 0) trace(y); for(x in 0...width) { var iteration = 0; #if reduce_allocs var offsetI = x*scale - 2.5; var offsetJ = y*scale - 1.0; var valI = 0.0; var valJ = 0.0; while( valI*valI+valJ*valJ