
/**
 * Module dependencies.
 */

var Canvas = require('../lib/canvas')
  , canvas = new Canvas(200, 200) 
  , ctx = canvas.getContext('2d')
  , fs = require('fs');

// err.ABORT_ERR etc
// err.code == 3
// err.message = "HIERARCHY_REQUEST_ERR: DOM Exception 3"
// err.name = "HIERARCHY_REQUEST_ERR"

// FIXME
// ctx.lineWidth = 3;
// ctx.strokeStyle = 'red';
// ctx.lineTo(0,0);
// ctx.lineTo(50,0);
// ctx.stroke();
// ctx.fillStyle = 'rgba(0,0,0,0.2)';
// ctx.fillRect(15,0,20,20);
// ctx.strokeStyle = 'blue';
// ctx.lineTo(0,20);
// ctx.lineTo(50,20);
// ctx.stroke();
// ctx.beginPath();
// ctx.strokeStyle = '#eee';
// ctx.lineTo(25, 20);
// ctx.lineTo(25, 25);
// ctx.rect(60,60,20,20);
// ctx.stroke();
// ctx.lineTo(20, 20);
// ctx.lineTo(50, 50);

ctx.font = '30px Helvetica';
ctx.fillText('Wahoo', 0, 50);

var start = new Date;
var n = 1000000;
while (n--) Canvas.parseColor('rgba(255, 204, 170, 0.75)');
console.log('%d', (new Date - start) / 1000);

var out = fs.createWriteStream(__dirname + '/test.png')
  , stream = canvas.createPNGStream();

stream.on('data', function(chunk){
  out.write(chunk);
});

// 
// var imgdata = ctx.getImageData(0,0,30,30);
// var pixels = imgdata.data;
// pixels[2] = 100;
// pixels[3] = 266;
// console.log(pixels[2]);
// console.log(pixels[3]);
// 
// for (var i = 0, len = imgdata.data.length; i < len; ++i) {
//   //imgdata.data[i + 0] -= 10;
//   //imgdata.data[i + 1] += 30;
//   // imgdata.data[i + 2] -= 10;
//   imgdata.data[i + 3] = 255;
//   i += 3;
// }
// imgdata.data[0] = imgdata.data[1] = imgdata.data[2] = 0;
// imgdata.data[4] = imgdata.data[5] = imgdata.data[6] = 0;
// imgdata.data[8] = imgdata.data[9] = imgdata.data[10] = 0;
// 
// ctx.putImageData(imgdata, 0, 0, 2, 2, 20, 20);

// Shadows
// ctx.fillRect(0,0,10,10);
// 
// ctx.fillStyle = 'black';
// ctx.shadowColor = 'rgba(0,0,0,1)'
// ctx.shadowOffsetX = 10;
// ctx.shadowOffsetY = 5;
// ctx.shadowBlur = 3;
// 
// ctx.lineTo(50, 50);
// ctx.lineTo(100, 100);
// ctx.lineTo(150, 100);
// ctx.stroke();
// ctx.lineTo(100, 150);
// ctx.lineTo(50, 50);
// ctx.stroke();

//canvas.savePNG("test.png");