summaryrefslogtreecommitdiffstats
path: root/make/config/jogl/eglext.cfg
blob: 857eb5804e307c79ff506204623296671df99713 (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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# This .cfg file is used to generate the interface to the EGL routines
# used internally by the EGLContext implementation.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/egl

Package com.sun.opengl.impl.egl
Style InterfaceAndImpl
JavaClass EGLExt
ImplPackage com.sun.opengl.impl.egl
ImplJavaClass EGLExtImpl
# Shouldn't matter which one of these we pick up

ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/sun/opengl/impl/egl/EGL.java
HierarchicalNativeOutput false
Include gl-common.cfg

# Use a ProcAddressTable so we dynamically look up the routines
EmitProcAddressTable true
ProcAddressTableClassName EGLExtProcAddressTable
GetProcAddressTableExpr _context.getEGLExtProcAddressTable()

# Translate EGLBoolean as Java boolean
Opaque boolean EGLBoolean

# Implement the first argument to eglGetProcAddress as String instead
# of byte[]
ArgumentIsString eglGetProcAddress 0
ReturnsString eglQueryString

# Make eglGetProcAddress return an opaque long
Opaque long __EGLFuncPtr

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

# Treat all of the EGL types as opaque longs
# Opaque long EGLConfig
Opaque long EGLContext
Opaque long EGLDisplay
Opaque long EGLSurface
Opaque long EGLNativeDisplayType
Opaque long EGLNativeWindowType
Opaque long EGLNativePixmapType
Opaque long EGLClientBuffer
Opaque long EGLImageKHR
#Opaque long EGLPerfMonitorNV
#Opaque long EGLPerfCounterNV
#Opaque long EGLPerfMarkerNV
Opaque long EGLSyncKHR
Opaque long NativeSyncKHR

# Opaque long EGLClientBuffer

CustomCCode /* Define EGL_EGLEXT_PROTOTYPES so that the EGL extension prototypes in
CustomCCode    "eglext.h" are parsed. */
CustomCCode #define EGL_EGLEXT_PROTOTYPES
CustomCCode
CustomCCode #include <EGL/eglext.h>

Include ../intptr.cfg

# There are some #defines in eglext.h that GlueGen and PCPP don't currently handle
CustomJavaCode EGLExt      public static final long EGL_NO_IMAGE = 0;
CustomJavaCode EGLExt      public static final long EGL_NO_PERFMONITOR = 0;
CustomJavaCode EGLExt      public static final long EGL_DEFAULT_PERFMARKER = 0;
CustomJavaCode EGLExt      public boolean isFunctionAvailable(String glFunctionName);
CustomJavaCode EGLExt      public boolean isExtensionAvailable(String glExtensionName);

CustomJavaCode EGLExtImpl  public EGLExtImpl(EGLContext context) {
CustomJavaCode EGLExtImpl    this._context = context; 
CustomJavaCode EGLExtImpl  }

CustomJavaCode EGLExtImpl  public boolean isFunctionAvailable(String glFunctionName)
CustomJavaCode EGLExtImpl  {
CustomJavaCode EGLExtImpl    return _context.isFunctionAvailable(glFunctionName);
CustomJavaCode EGLExtImpl  }

CustomJavaCode EGLExtImpl  public boolean isExtensionAvailable(String glExtensionName)
CustomJavaCode EGLExtImpl  {
CustomJavaCode EGLExtImpl    return _context.isExtensionAvailable(glExtensionName);
CustomJavaCode EGLExtImpl  }

CustomJavaCode EGLExtImpl  private EGLContext _context;

# These Ignores cause the core EGL routines to be ignored from the
# EGLExt interface and EGLExtImpl implementing class.
Ignore eglBindAPI
Ignore eglBindTexImage
Ignore eglChooseConfig
Ignore eglCopyBuffers
Ignore eglCreateContext
Ignore eglCreatePbufferFromClientBuffer
Ignore eglCreatePbufferSurface
Ignore eglCreatePixmapSurface
Ignore eglCreateWindowSurface
Ignore eglDestroyContext
Ignore eglDestroySurface
Ignore eglGetConfigAttrib
Ignore eglGetConfigs
Ignore eglGetCurrentContext
Ignore eglGetCurrentDisplay
Ignore eglGetCurrentSurface
Ignore eglGetDisplay
Ignore eglGetError
Ignore eglGetProcAddress
Ignore eglInitialize
Ignore eglMakeCurrent
Ignore eglQueryAPI
Ignore eglQueryContext
Ignore eglQueryString
Ignore eglQuerySurface
Ignore eglReleaseTexImage
Ignore eglReleaseThread
Ignore eglSurfaceAttrib
Ignore eglSwapBuffers
Ignore eglSwapInterval
Ignore eglTerminate
Ignore eglWaitClient
Ignore eglWaitGL
Ignore eglWaitNative