docs: function scaleDrawerOps(ops, scale){
  	var scaled = [];
  	var n = ops.length;
  	for(var i=0;i<n;i++){
  		var op = ops[i];
  		switch(op[0]){
  			case "move_to": {
  				var x = op[1];
  				var y = op[2];
  				scaled.push(["move_to", x * scale, y * scale]);
  				break;
  			}
  			case "line_to": {
  				var x = op[1];
  				var y = op[2];
  				scaled.push(["line_to", x * scale, y * scale]);
  				break;
  			}
  			case "create_font": {
  				var name = op[1];
  				var font = op[2];
  				var size = op[3];
  				var weight = op[4];
  				var italic = op[5];
  				scaled.push(["create_font", name, font, size * scale, weight, italic]);
  				break;
  			}
  			case "draw_chars": {
  				var text = op[1];
  				var xs = op[2];
  				var ys = op[3];
  				var scaled_xs, scaled_ys;
  				if( xs.length ){
  					scaled_xs = xs.map(function(x){ return x * scale; });
  				} else {
  					scaled_xs = xs * scale;
  				}
  				if( ys.length ){
  					scaled_ys = ys.map(function(y){ return y * scale; });
  				} else {
  					scaled_ys = ys * scale;
  				}
  				scaled.push(["draw_chars", text, scaled_xs, scaled_ys]);
  				break;
  			}
  			case "create_pen": {
  				var name = op[1];
  				var r = op[2];
  				var g = op[3];
  				var b = op[4];
  				var w = op[5];
  				scaled.push(["create_pen", name, r, g, b, w * scale]);
  				break;
  			}
  			default: scaled.push(op);
  		}
  	}
  	return scaled;
  }