

The new specification has been three years in the making – work actually started before the release of our last major release, OpenGL ES 1.1.


OpenGL ES 2.0 brings shader-based rendering to cell phones, set-top boxes, and other embedded platforms. It’s here at last! At the Game Developers Conference in March, the OpenGL ES Working Group announced the release of OpenGL ES 2.0, the newest version of OpenGL for mobile devices.

void glGetInteger64v( GLenum pname, - GLint64 * data) -void glGetBooleani_v( GLenum target, - GLuint index, - GLboolean * data) - GL_INVALID_ENUM is generated if pname is not an accepted value.Shaders Go Mobile: Announcing OpenGL ES 2.0 Shaders Go Mobile: Announcing OpenGL ES 2.0 Unsafe ( unsafePerformIO ) - * Extension detection hasExt :: String -> Bool hasExt ext = ext `elem` glExtensions -hasExt :: CString -> Bool -glGetString 0x1F03 >= indexOf ext /= -1 hasES3 :: Bool hasES3 = glEnv majorVersion > 2 extVAO :: Maybe ( GLsizei -> Ptr GLuint -> GL (), GLuint -> GL (), GLsizei -> Ptr GLuint -> GL () ) extVAO | hasES3 = Just ( glGenVertexArrays, glBindVertexArray, glDeleteVertexArrays ) | hasExt "GL_OES_vertex_array_object" = Just ( glGenVertexArraysOES, glBindVertexArrayOES, glDeleteVertexArraysOES ) | otherwise = Nothing - * String Parameters glVendor, glRenderer, glVersion, glShadingLanguageVersion :: String glVendor = unsafePerformIO $ glGetString 0x1F00 >= peekCString glRenderer = unsafePerformIO $ glGetString 0x1F01 >= peekCString glVersion = unsafePerformIO $ glGetString 0x1F02 >= peekCString glShadingLanguageVersion = unsafePerformIO $ glGetString 0x8B8C >= peekCString - * Integer Parameters newtype GLParam = GLParam GLenum - glGetBooleanv glGetFloatv glGetIntegerv glGetInteger64v - glGetBooleani_v glGetIntegeri_v glGetInteger64i_v - As of 3.1, 188 + ext parameters are queriable. (glGetString could return null pointer!) module Graphics. Do NOT call below APIs out of OpenGL threads. Graphics/OpenGLES/Env.hs - | Retriving implementation depend constant values.
