!gles3_only

# GLES 3.x functions required by the translator library.
# Right now, this is used for:

# - glGetStringi() from the host GL library in order to
#   deal with the fact that glGetString(GL_EXTENSIONS) is obsolete.
#   In OpenGL 3.0, some drivers don't implement it anymore.
#   (i.e. the # function just returns NULL).
# - glFenceSync / glClientWaitSync / glWaitSync to enforce frame
#   ordering while preserving performance, and to implement
#   KHR_fence_sync and KHR_ANDROID_native_fence_sync extensions.

%#include <GLES/gl.h>
%#include <GLES3/gl3.h>

# New version of glGetString
GLconstubyteptr glGetStringi(GLenum name, GLint index);

# OpenGL ES 3+ sync commands
GLsync glFenceSync(GLenum condition, GLbitfield flags);
GLenum glClientWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout);
void glWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout);
void glDeleteSync(GLsync to_delete);
