Or maybe OpenGL ES 3 is a bit closer to real OpenGL. I must assume going from OpenGL ES 2 to real OpenGL a bit easier - even if you're probably giving all the fast paths in the latter a wide berth in doing so. I swear I've reused more code between D3D11 and PS4 codepaths than between OpenGL ES and OpenGL codepaths, and the d3d11 and ps4 APIs don't share a single common function name betwixt them! This is extremely well documented: 'Specifies whether to transpose the matrix as the values are loaded into the uniform variable. Multiple render targets? Are you out of your mind? We can't have that - goodbye deferred rendering, hello old school forward rendering!Įven your bread and butter - functions like glUniformMatrix3fv do things like just outright ignore the transpose parameter.
Can't even call glTexImage2D on ES 2 without perfectly fine OpenGL code failing - because format != internalFormat is forbidden (read: documented 'must be the same'), and you were a good explicit OpenGL citizen and asked for something as horrifically complicated as format=GL_RGBA and internalFormat=GL_RGBA8. Not even our shaders went unscathed - no rectangular matrix support (mat4x3? nope!), mandatory precision specifiers (lowp-highp), no Uniform Buffer Objects.