Allow optional 16 bits per channel floating point (RGBA16F) canvas textures

Issue #476 resolved
Alex Szpakowski
created an issue

Canvas textures use 8 bits per channel by default which is more than enough for most uses, however allowing optional RGBA16F canvases will allow more advanced rendering techniques such as HDR and certain types of dynamic lighting.

While color channel values of standard textures are bounded to [0, 1], floating point formats such as RGBA16F have no such restrictions, allowing for many more lighting and shading techniques when combined with PixelEffects.

Floating point texture formats are only part of OpenGL core in version 3.0 and above, and requires the GL_ARB_texture_float extension otherwise. Some older hardware may have problems with linear texture filtering (see

The outward-facing API could be as easy as an optional third argument to, and a string to go along with it.

floating-point texture support for regular images is possible but has less usefulness from my understanding, but it may be worth looking into further.