# OpenGL graphics rendering library for embedded systems, version 2.0
#
# This is a low-level wrapper, it can be useful for developers already familiar
-# with the C API of OpenGL. Most developers will prefer to use higher level
-# wrappers such as `mnit` and `gammit`.
+# with the C API of OpenGL. Most developers will prefer to use the higher level
+# graphic API `gammit`.
#
# Defines the annotations `glsl_vertex_shader` and `glsl_fragment_shader`
# applicable on string literals to check shader code using `glslangValidator`.
intrude import c
in "C Header" `{
+#ifdef __APPLE__
+ #include <OpenGLES/ES2/gl.h>
+#else
#include <GLES2/gl2.h>
+#endif
`}
# OpenGL ES program to which we attach shaders
fun gl_RENDERBUFFER_BINDING: GLGetParameterName `{ return GL_RENDERBUFFER_BINDING; `}
# Return a string describing the current GL configuration
-fun glGetString(name: GLEnum): String do return glGetString_native(name).to_s
+fun glGetString(name: GLEnum): String
+do
+ var cstr = glGetString_native(name)
+ assert not cstr.address_is_null
+ return cstr.to_s
+end
+
private fun glGetString_native(name: GLEnum): CString `{ return (char*)glGetString(name); `}
# Company responsible for this GL implementation