// Auto-generated with: android/scripts/gen-entries.py --mode=funcargs android/android-emugl/host/libs/libOpenGLESDispatch/gles3_only.entries --output=android/android-emugl/host/include/OpenGLESDispatch/gles3_only_functions.h
// DO NOT EDIT THIS FILE

#ifndef GLES3_ONLY_FUNCTIONS_H
#define GLES3_ONLY_FUNCTIONS_H

#include <GLES/gl.h>
#include <GLES3/gl3.h>
#define LIST_GLES3_ONLY_FUNCTIONS(X) \
  X(GLconstubyteptr, glGetStringi, (GLenum name, GLint index), (name, index)) \
  X(GLsync, glFenceSync, (GLenum condition, GLbitfield flags), (condition, flags)) \
  X(GLenum, glClientWaitSync, (GLsync wait_on, GLbitfield flags, GLuint64 timeout), (wait_on, flags, timeout)) \
  X(void, glWaitSync, (GLsync wait_on, GLbitfield flags, GLuint64 timeout), (wait_on, flags, timeout)) \
  X(void, glDeleteSync, (GLsync to_delete), (to_delete)) \


#endif  // GLES3_ONLY_FUNCTIONS_H
