# This .cfg file is used to generate the GL implementing class.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/es3

# Inform the glue code generator of the association between #defines
# and functions and the extensions in which they are defined
# _for_ code generation. This shall match the parsed header files!
GLSemHeader GLES3/gl3x.h
GLSemHeader GLES3/gl3ext.h
GLSemHeader GLES2/gl2ext-supplement.h
GLSemHeader GLES2/gl2ext.h

ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GL.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GL2ES2.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GLES2.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GL2ES3.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GL3ES3.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GL4ES3.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/GLES3.java
ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/com/jogamp/opengl/GLBase.java

Style ImplOnly
ImplPackage jogamp.opengl.es3
ImplJavaClass GLES3Impl
#Implements GLES3Impl GLBase
#Implements GLES3Impl GL
#Implements GLES3Impl GL2ES2
Implements GLES3Impl GLES2
#Implements GLES3Impl GL2ES3
#Implements GLES3Impl GL3ES3
#Implements GLES3Impl GL4ES3
Implements GLES3Impl GLES3
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl2_es3-common.cfg
Include gl2_es2-CustomJavaCode.cfg
Include gl-desktop-ignores.cfg

ForceExtension GL_ARB_ES3_compatibility

EmitProcAddressTable true
ProcAddressTableClassName GLES3ProcAddressTable
GetProcAddressTableExpr _pat
# GetProcAddressTableExpr ((GLES3ProcAddressTable)_context.getGLProcAddressTable())

# Manual implement glDebugMessageCallback* using the proc address resolver
ForceProcAddressGen glDebugMessageCallbackKHR

# Force all of the methods to be emitted using dynamic linking so we
# don't need to link against any emulation library on the desktop or
# depend on the presence of an import library for a particular device
ForceProcAddressGen __ALL__

# Also force the calling conventions of the locally generated function
# pointer typedefs for these routines to GL_APIENTRY
LocalProcAddressCallingConvention __ALL__ GL_APIENTRY

# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
TagNativeBinding true

# Add PixelStorei StateTracker
#
CustomJavaCode GLES3Impl private static final int params_offset = 0; // just a helper for JavaPrologue ..
CustomJavaCode GLES3Impl private static final int data_offset = 0; // just a helper for JavaPrologue ..

JavaPrologue glPixelStorei glStateTracker.setInt(pname, param);

JavaPrologue glGetIntegerv if ( glStateTracker.getInt(pname, data, data_offset) ) { return; }

IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-common.java
IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-gles3.java
IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-gl2_es2.java

Include es3-headers.cfg
IncludeAs CustomCCode gl-impl-CustomCCode-gles3.c

Import com.jogamp.opengl.GLBase
Import com.jogamp.opengl.GL
Import com.jogamp.opengl.GL2ES2
Import com.jogamp.opengl.GL2ES3
Import com.jogamp.opengl.GL3ES3
Import com.jogamp.opengl.GL4ES3
Import com.jogamp.opengl.GLES3
Import com.jogamp.opengl.GLArrayData
Import com.jogamp.opengl.GLUniformData
Import com.jogamp.common.nio.Buffers
Import com.jogamp.opengl.util.GLBuffers
Import java.io.PrintStream

