aboutsummaryrefslogtreecommitdiffstats
path: root/make/config/jogl/gl-es3-impl.cfg
blob: 2e5e36e9c1f812b35440630570cfd16212f8fae0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# This .cfg file is used to generate the GL implementing class.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/es3

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/GLES2.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES3.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL3ES3.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL4ES3.java
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GLES3.java
ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/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

ForceExtension GL_ARB_ES3_compatibility

EmitProcAddressTable true
ProcAddressTableClassName GLES3ProcAddressTable
GetProcAddressTableExpr ((GLES3ProcAddressTable)_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 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
#
# Add input validation to glPixelStorei, just to be sure.
CustomJavaCode GLES3Impl private static final int params_offset = 0; // just a helper for JavaPrologue ..

JavaPrologue glPixelStorei if (pname != GL_PACK_ALIGNMENT && pname != GL_UNPACK_ALIGNMENT) {
JavaPrologue glPixelStorei     throw new GLException("Unsupported pixel store parameter name 0x" + Integer.toHexString(pname));
JavaPrologue glPixelStorei }
JavaPrologue glPixelStorei glStateTracker.setInt(pname, param);

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

CustomCCode #include <stdio.h> /* android */
CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in
CustomCCode    "glext.h" are parsed. */
CustomCCode #define GL_GLEXT_PROTOTYPES

CustomCCode /* Include the OpenGL headers */
CustomCCode /* #define GL_APICALL __declspec(dllimport) */
CustomCCode #include <GLES3/gl3.h>
CustomCCode #include <GLES3/gl3ext.h>
CustomCCode #include <GLES2/gl2ext.h>
CustomCCode #include <stdlib.h>

IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-common.java
IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-gles3.java
IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-embedded.java
IncludeAs CustomJavaCode GLES3Impl gl-impl-CustomJavaCode-gl2_es2.java
IncludeAs CustomCCode gl-impl-CustomCCode-gles3.c

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