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

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

Package javax.media.opengl
Style InterfaceOnly
JavaClass GL2ES2
Extends GL2ES2 GLBase
Extends GL2ES2 GL

HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-if-gl3-ignores.cfg
Include gl-if-gl4-ignores.cfg

RenameExtensionIntoCore GL_OES_texture_3D
RenameExtensionIntoCore GL_OES_get_program_binary

# Ignore all ES 2.X only stuff ..
DropUniqVendorExtensions AMD
DropUniqVendorExtensions ANGLE
DropUniqVendorExtensions ARM
DropUniqVendorExtensions APPLE
DropUniqVendorExtensions ATI
DropUniqVendorExtensions IMG
DropUniqVendorExtensions QCOM
DropUniqVendorExtensions NV
DropUniqVendorExtensions VIV

IgnoreExtension GL_EXT_discard_framebuffer
IgnoreExtension GL_OES_compressed_paletted_texture
IgnoreExtension GL_OES_compressed_ETC1_RGB8_texture
IgnoreExtension GL_OES_vertex_array_object

# isn't included in GL2
# includes GL_STATE_RESTORE, which hasn't the QCOM suffix
IgnoreExtension GL_QCOM_extended_get
Ignore GL_STATE_RESTORE
Ignore GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET

# Ignore ^gl.*x(v)?(OES)?
Ignore glEGL.*
#Ignore glFramebufferVertexAttribArrayNV
#Ignore glCoverageOperationNV
#Ignore glCoverageMaskNV

# Ignore GL_ARB_ES2_compatibility functions for interface code generation
# since we need our own javadoc header for a detailed description
Ignore glReleaseShaderCompiler
Ignore glShaderBinary
Ignore glGetShaderPrecisionFormat
Ignore glDepthRangef
Ignore glClearDepthf

CustomJavaCode GL2ES2 public void glClearDepth( double depth );
CustomJavaCode GL2ES2 public void glDepthRange(double zNear, double zFar);

IncludeAs CustomJavaCode GL2ES2 gl-if-CustomJavaCode-gl2_es2.java

EmitProcAddressTable false
ProcAddressTableClassName DontGenerateProcAddressTableStuff
GetProcAddressTableExpr DontGenerateProcAddressTableStuff

# Inform the glue code generator of the association between #defines
# and functions and the extensions in which they are defined
GLHeader GLES2/gl2.h
GLHeader GLES2/gl2ext.h
GLHeader GL/gl.h
GLHeader GL/glext.h

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

CustomJavaCode GL2ES2  public void glVertexAttribPointer(GLArrayData array);
CustomJavaCode GL2ES2  public void glUniform(GLUniformData data);
CustomJavaCode GL2ES2

Import java.io.PrintStream

