I am trying to come up with a platform independant way of handling shaders, and really struggling.

You may or may not be able to compile on the target device.

You may or may not be able to use binary shaders

You may or may not be able to use the OES extensions.

If you can compile on the device, then on some machines it may take up to 90 seconds to compile a shader.

If you can use binary shaders, then you may have to use an external sdk to do the actual compilation

So it's a mess.

I tried to work out how many different binary formats there are, I have found ten, but I have no way to work out if this is definitive.

At the moment it looks to me that OpenGLES 1.0 is a platform independant API, and due to shader issues OpenGLES 2.0 is not.

I am really struggling to come up with a solution to this issue.

Has anyone got...

1) A definitive list of binary formats
2) A platform independant way of doing shaders
3) A device list with details of supported API's

Without some way of handling shaders. Why would you expend the effort to develop games when the real market size is some small percentage of the total OpenGLES market?