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

ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2GL3.java
ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java

Package javax.media.opengl
Style InterfaceAndImpl
JavaClass GL3
Extends GL3 GLBase
Extends GL3 GL
Extends GL3 GL2ES2
Extends GL3 GL2GL3
ImplPackage com.jogamp.opengl.impl.gl3
ImplJavaClass GL3Impl
Implements GL3Impl GLBase
Implements GL3Impl GL
Implements GL3Impl GL2ES2
Implements GL3Impl GL2GL3
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl3-common.cfg
Include gl3-desktop.cfg

IncludeAs CustomJavaCode GL3 gl-if-CustomJavaCode-gl3.java

EmitProcAddressTable true
ProcAddressTableClassName GL3ProcAddressTable
GetProcAddressTableExpr ((GL3ProcAddressTable)_context.getGLProcAddressTable())

# 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 APIENTRY
LocalProcAddressCallingConvention __ALL__ APIENTRY

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

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

JavaPrologue glPixelStorei glStateTracker.setInt(pname, param);

JavaPrologue glGetIntegerv if ( glStateTracker.getInt(pname, params, params_offset) ) { return; }

CustomJavaCode GL3Impl public void glClearDepthf(float depth) {
CustomJavaCode GL3Impl   glClearDepth((double)depth); }

CustomJavaCode GL3Impl public void glDepthRangef(float zNear, float zFar) {
CustomJavaCode GL3Impl    glDepthRange((double)zNear, (double)zFar); }

Include gl3-headers.cfg
Include ../intptr.cfg

IncludeAs CustomJavaCode GL3Impl gl-impl-CustomJavaCode-common.java
IncludeAs CustomJavaCode GL3Impl gl-impl-CustomJavaCode-gl3.java
IncludeAs CustomJavaCode GL3Impl gl-impl-CustomJavaCode-desktop.java
IncludeAs CustomJavaCode GL3Impl gl-impl-CustomJavaCode-gl2_es2.java
IncludeAs CustomCCode gl-impl-CustomCCode-gl3.c

Import javax.media.opengl.GLES2
Import javax.media.opengl.GL3
Import javax.media.opengl.GLArrayData
Import javax.media.opengl.GLUniformData
Import com.jogamp.opengl.impl.InternalBufferUtil
Import java.io.PrintStream