Add the ability to render to non-image surfaces.
Add Obj-C level support for non-image surfaces