[whatwg] Canvas performance issue: setting colors

Greg Houston gregory.houston at gmail.com
Fri Oct 3 17:55:36 PDT 2008


On Fri, Oct 3, 2008 at 6:37 PM, Oliver Hunt <oliver at apple.com> wrote:
> <thinking out loud>
> Just had a thought (no idea how original) -- how about if fillStyle were
> able to accept a 3 or 4 number array? eg. fillStyle = [0, 0.3, 0.6, 1.0] ?
>
> That might work well if people are using arrays as vectors/colours
> </thinking out loud>

I have an application that allows the developer to set color options
for most of the canvas shapes in the application. The options are
stored as arrays:

	myColor:  [255, 0, 0]

When the colors are used then it takes a little JavaScript finessing
to apply them:

	ctx.fillStyle = 'rgb(' + myColor.join(',') + ')';

Being able to simply write the following, as would be the case with
your idea, would be nice.

	ctx.fillStyle = myColor;

Another example of using arrays for colors, both RGB and HSB can be
found in the Mootools JavaScript framework:
http://mootools.net/docs/Plugins/Color

Note that also like your example the Mootools color plugin does not
have separate rgb and rgba methods. It is smart enough to recognize
that if there is a fourth value in the array it refers to the alpha. I
never quite grasped why there is both an rgb() and rgba() in canvas.
It seems like rgb is all that would have been necessary, and if a
fourth value is passed it obviously refers to the alpha.

- Greg



More information about the whatwg mailing list