From 0b7a4d59af3ec29740720c4c8d9b249efe06ff5f Mon Sep 17 00:00:00 2001
From: sg215889
Date: Fri, 24 Jul 2009 14:29:08 -0700
Subject: NEWT: Adding KD if building with OpenGL. Fixing build in case no
native library is being build. Fixing KD build for non windows.
---
make/build-newt.xml | 28 ++++++++++++++++++++++++----
make/make.jogl.all.linux-x86.sh | 1 -
make/make.jogl.cdcfp.linux-x86.sh | 1 -
3 files changed, 24 insertions(+), 6 deletions(-)
(limited to 'make')
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 8ef77c7c7..4895318e0 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -97,6 +97,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -104,6 +120,7 @@
+
@@ -569,7 +586,7 @@
-
+
@@ -579,9 +596,9 @@
-
+
-
+
-
+
+
+
+
diff --git a/make/make.jogl.all.linux-x86.sh b/make/make.jogl.all.linux-x86.sh
index 2b791c6dd..915bacaf3 100644
--- a/make/make.jogl.all.linux-x86.sh
+++ b/make/make.jogl.all.linux-x86.sh
@@ -19,6 +19,5 @@ ant \
-DisLinux=true \
-DisLinuxX86=true \
-DisX11=true \
- -DuseKD=true \
-DuseOpenMAX=true \
$* 2>&1 | tee make.jogl.all.linux-x86.log
diff --git a/make/make.jogl.cdcfp.linux-x86.sh b/make/make.jogl.cdcfp.linux-x86.sh
index 67ef9fb65..4a2241669 100644
--- a/make/make.jogl.cdcfp.linux-x86.sh
+++ b/make/make.jogl.cdcfp.linux-x86.sh
@@ -23,7 +23,6 @@ ant -v \
-DisLinux=true \
-DisLinuxX86=true \
-DisX11=true \
- -DuseKD=true \
-DuseOpenMAX=true \
$* 2>&1 | tee make.jogl.cdcfp.linux-x86.log
--
cgit v1.2.3
From 51981d1fdb8e8056db9bbba6f1714f2f4c1cd6bc Mon Sep 17 00:00:00 2001
From: sg215889
Date: Sat, 25 Jul 2009 23:30:21 -0700
Subject: Newt: useKD optional again; macosx jar fix
---
make/build-newt.xml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
(limited to 'make')
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 4895318e0..a28a3188f 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -98,9 +98,7 @@
-
-
-
+
@@ -710,7 +708,7 @@
+ includes="${java.part.macosx}"/>
@@ -725,7 +723,7 @@
+ includes="${java.part.macosx}"/>
--
cgit v1.2.3
From 30e7b4af033598ffea6ddff051aa937bb50e1ad9 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Sun, 26 Jul 2009 00:29:38 -0700
Subject: Fix: Add gluegen.cpptasks.detect.os call
---
make/build-jogl.xml | 2 +-
make/build-nativewindow.xml | 2 +-
make/build-newt.xml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index c48745da7..b23aee60c 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -75,7 +75,7 @@
-
+
diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml
index 79e6b93ae..fa1dfe696 100644
--- a/make/build-nativewindow.xml
+++ b/make/build-nativewindow.xml
@@ -66,7 +66,7 @@
-
+
diff --git a/make/build-newt.xml b/make/build-newt.xml
index a28a3188f..fc8bd1f00 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -69,7 +69,7 @@
-
+
--
cgit v1.2.3
From 90beaae660222f1fb5ca15313f8e4645d3fd30fe Mon Sep 17 00:00:00 2001
From: Morris Meyer
Date: Mon, 27 Jul 2009 14:06:41 -0400
Subject: mips changes
---
make/build-jogl.xml | 10 ++-
make/build-nativewindow.xml | 2 -
make/build-newt.xml | 4 +-
make/config/jogl/eglext.cfg | 3 +
make/stub_includes/egl/EGL/egl.h | 5 ++
.../media/nativewindow/NativeWindowFactory.java | 4 +-
src/newt/classes/com/sun/javafx/newt/Display.java | 3 +-
.../classes/com/sun/javafx/newt/NewtFactory.java | 3 +
.../com/sun/javafx/newt/opengl/egl/EGLDisplay.java | 85 ++++++++++++++++++++++
9 files changed, 111 insertions(+), 8 deletions(-)
create mode 100644 src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index c48745da7..290ed67ca 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -1204,6 +1204,10 @@
+
+
+
+
@@ -1331,7 +1335,11 @@
-
+
+
+
diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml
index 79e6b93ae..e19d75ba2 100644
--- a/make/build-nativewindow.xml
+++ b/make/build-nativewindow.xml
@@ -490,8 +490,6 @@
-
-
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 4895318e0..ee4b6ee17 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -137,7 +137,7 @@
value="com/sun/javafx/newt/macosx/*"/>
+ value="com/sun/javafx/newt/opengl/*, com/sun/javafx/newt/opengl/egl/*, com/sun/javafx/newt/opengl/kd/*"/>
@@ -367,8 +367,6 @@
-
-
diff --git a/make/config/jogl/eglext.cfg b/make/config/jogl/eglext.cfg
index bdd9a3655..0447dd1e4 100755
--- a/make/config/jogl/eglext.cfg
+++ b/make/config/jogl/eglext.cfg
@@ -124,3 +124,6 @@ Ignore eglTerminate
Ignore eglWaitClient
Ignore eglWaitGL
Ignore eglWaitNative
+
+Ignore EGLUtil_CreateDisplayByNative
+Ignore EGLUtil_CreateWindowByNative
diff --git a/make/stub_includes/egl/EGL/egl.h b/make/stub_includes/egl/EGL/egl.h
index 86ca4818f..5b4c4215c 100755
--- a/make/stub_includes/egl/EGL/egl.h
+++ b/make/stub_includes/egl/EGL/egl.h
@@ -297,6 +297,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
EGLNativePixmapType target);
+EGLAPI EGLDisplay EGLAPIENTRY EGLUtil_CreateDisplayByNative(EGLint w, EGLint h);
+
+EGLAPI EGLSurface EGLAPIENTRY EGLUtil_CreateWindowByNative(EGLDisplay dpy, EGLint xx,
+ EGLint *wvalue, EGLint *hvalue);
+
typedef void (* EGLAPIENTRY __EGLFuncPtr)(void);
EGLAPI __EGLFuncPtr eglGetProcAddress(const char *procname);
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
index cbd485649..fd6eb458e 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
@@ -80,7 +80,7 @@ public abstract class NativeWindowFactory {
}
private static String _getNativeWindowingType(String osNameLowerCase) {
- if (osNameLowerCase.startsWith("kd")) {
+ if (osNameLowerCase.startsWith("kd") || osNameLowerCase.startsWith("linux")) {
return TYPE_EGL;
} else if (osNameLowerCase.startsWith("wind")) {
return TYPE_WINDOWS;
@@ -101,6 +101,8 @@ public abstract class NativeWindowFactory {
AccessControlContext acc = AccessController.getContext();
nativeOSNamePure = Debug.getProperty("os.name", false, acc);
nativeOSNameCustom = Debug.getProperty("nativewindow.ws.name", true, acc);
+ System.out.println(nativeOSNamePure);
+ System.out.println(nativeOSNameCustom);
if(null==nativeOSNameCustom||nativeOSNameCustom.length()==0) {
nativeOSNameCustom = nativeOSNamePure;
}
diff --git a/src/newt/classes/com/sun/javafx/newt/Display.java b/src/newt/classes/com/sun/javafx/newt/Display.java
index 5032477c9..bdac08dab 100755
--- a/src/newt/classes/com/sun/javafx/newt/Display.java
+++ b/src/newt/classes/com/sun/javafx/newt/Display.java
@@ -45,7 +45,8 @@ public abstract class Display implements Runnable {
{
Class displayClass = null;
if (NativeWindowFactory.TYPE_EGL.equals(type)) {
- displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay");
+ // displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay");
+ displayClass = Class.forName("com.sun.javafx.newt.opengl.egl.EGLDisplay");
} else if (NativeWindowFactory.TYPE_WINDOWS.equals(type)) {
displayClass = Class.forName("com.sun.javafx.newt.windows.WindowsDisplay");
} else if (NativeWindowFactory.TYPE_MACOSX.equals(type)) {
diff --git a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java b/src/newt/classes/com/sun/javafx/newt/NewtFactory.java
index b5a555455..b88e1e49e 100755
--- a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java
+++ b/src/newt/classes/com/sun/javafx/newt/NewtFactory.java
@@ -50,6 +50,7 @@ public abstract class NewtFactory {
* Create a Display entity, incl native creation
*/
public static Display createDisplay(String name) {
+ System.out.println("NewtFactory: NAME: " + name);
return Display.create(NativeWindowFactory.getNativeWindowType(true), name);
}
@@ -57,6 +58,8 @@ public abstract class NewtFactory {
* Create a Display entity using the given implementation type, incl native creation
*/
public static Display createDisplay(String type, String name) {
+ System.out.println("NewtFactory: TYPE: " + type);
+ System.out.println("NewtFactory: NAME: " + name);
return Display.create(type, name);
}
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java b/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java
new file mode 100644
index 000000000..bebb7ccf2
--- /dev/null
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.opengl.egl;
+
+import com.sun.javafx.newt.*;
+import com.sun.javafx.newt.impl.*;
+import com.sun.opengl.impl.egl.*;
+import javax.media.nativewindow.*;
+import javax.media.nativewindow.egl.*;
+
+public class EGLDisplay extends Display {
+
+ static {
+ NativeLibLoader.loadNEWT();
+
+ System.loadLibrary("EglUtil");
+ }
+
+ public static void initSingleton() {
+ // just exist to ensure static init has been run
+ }
+
+
+ public EGLDisplay() {
+ }
+
+ protected void createNative() {
+ try {
+ int windowWidth = 1920, windowHeight = 1080;
+ int width[] = { windowWidth };
+ int height[] = { windowHeight };
+ long eglDisplayHandle =
+ EGL.EGLUtil_CreateDisplayByNative(windowWidth, windowHeight);
+ long eglSurfaceHandle =
+ EGL.EGLUtil_CreateWindowByNative(eglDisplayHandle, 1,
+ width, 0, height, 0);
+ } catch (Throwable th) {
+ th.printStackTrace();
+ }
+ }
+
+ protected void closeNative() {
+ if (aDevice.getHandle() != EGL.EGL_NO_DISPLAY) {
+ EGL.eglTerminate(aDevice.getHandle());
+ }
+ }
+
+ protected void dispatchMessages() {
+ DispatchMessages();
+ }
+
+ private native void DispatchMessages();
+}
+
--
cgit v1.2.3
From 8949675c20e3fc064d170b509391fadbdb970611 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Mon, 27 Jul 2009 19:25:33 -0700
Subject: Add Custom NativeWindow Type 'BroadcomEGL'
(-Dnativewindow.ws.name=BroadcomEGL): 1st Draft of supporting broadcom's
proprietary EGL mapping
---
make/build-jogl.xml | 39 +----
make/build-nativewindow.xml | 15 +-
make/build-newt.xml | 65 ++++++--
make/config/jogl/eglext.cfg | 3 -
make/make.jogl.all.linux-x86.sh | 10 +-
make/make.jogl.all.linux-x86_64.sh | 13 +-
make/stub_includes/egl/EGL/egl.h | 5 -
.../com/sun/opengl/impl/egl/EGLDrawable.java | 38 +++--
.../opengl/impl/egl/EGLGraphicsConfiguration.java | 19 ++-
.../media/nativewindow/NativeWindowFactory.java | 4 +-
src/newt/classes/com/sun/javafx/newt/Display.java | 7 +-
.../classes/com/sun/javafx/newt/NewtFactory.java | 5 +-
src/newt/classes/com/sun/javafx/newt/Screen.java | 2 +
src/newt/classes/com/sun/javafx/newt/Window.java | 2 +
.../javafx/newt/opengl/broadcom/BCEGLDisplay.java | 82 ++++++++++
.../javafx/newt/opengl/broadcom/BCEGLScreen.java | 64 ++++++++
.../javafx/newt/opengl/broadcom/BCEGLWindow.java | 126 +++++++++++++++
.../com/sun/javafx/newt/opengl/egl/EGLDisplay.java | 85 -----------
src/newt/native/BroadcomEGL.c | 170 +++++++++++++++++++++
src/newt/native/KDWindow.c | 18 +--
20 files changed, 578 insertions(+), 194 deletions(-)
create mode 100644 src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLDisplay.java
create mode 100755 src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLScreen.java
create mode 100755 src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
delete mode 100644 src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java
create mode 100755 src/newt/native/BroadcomEGL.c
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index 348dc0624..fda65c5b2 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -1199,16 +1199,9 @@
-
+
-
-
-
-
-
-
-
@@ -1293,8 +1286,6 @@
-
-
@@ -1302,8 +1293,6 @@
-
-
@@ -1311,8 +1300,6 @@
-
-
@@ -1320,8 +1307,6 @@
-
-
@@ -1329,23 +1314,15 @@
-
-
-
-
-
+
-
-
@@ -1354,8 +1331,6 @@
-
-
@@ -1364,8 +1339,6 @@
-
-
@@ -1373,8 +1346,6 @@
-
-
@@ -1382,8 +1353,6 @@
-
-
@@ -1394,8 +1363,6 @@
-
-
@@ -1554,7 +1521,7 @@
-
+
diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml
index e583d05a6..641e2a4f5 100644
--- a/make/build-nativewindow.xml
+++ b/make/build-nativewindow.xml
@@ -490,6 +490,8 @@
+
+
@@ -531,35 +533,30 @@
-
-
-
-
-
@@ -568,7 +565,6 @@
-
@@ -576,7 +572,6 @@
-
@@ -584,21 +579,18 @@
-
-
-
@@ -608,7 +600,6 @@
-
@@ -749,7 +740,7 @@
+ linker.cfg.id="${linker.cfg.id.base}"/>
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 31a23172a..95869546f 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -97,16 +97,13 @@
-
-
-
-
+
@@ -118,7 +115,9 @@
+
+
@@ -135,7 +134,10 @@
value="com/sun/javafx/newt/macosx/*"/>
+ value="com/sun/javafx/newt/opengl/*, com/sun/javafx/newt/opengl/kd/*"/>
+
+
@@ -148,7 +150,7 @@
+ value="${java.part.opengl} ${java.part.broadcomegl}">
@@ -271,6 +273,7 @@
+
@@ -279,6 +282,7 @@
+
@@ -308,6 +312,7 @@
+
@@ -364,7 +369,13 @@
+
+
+
+
+
+
@@ -421,7 +432,19 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -521,6 +544,7 @@
+
@@ -553,7 +577,8 @@
-
+
+
@@ -583,16 +608,20 @@
-
+
+
+
+
+
-
-
-
+
+
+
-
+
+
+
+
@@ -693,6 +726,10 @@
+
+
+
@@ -735,7 +772,7 @@
+ includes="${java.part.core} ${java.part.opengl} ${java.part.broadcomegl}"/>
diff --git a/make/config/jogl/eglext.cfg b/make/config/jogl/eglext.cfg
index 0447dd1e4..bdd9a3655 100755
--- a/make/config/jogl/eglext.cfg
+++ b/make/config/jogl/eglext.cfg
@@ -124,6 +124,3 @@ Ignore eglTerminate
Ignore eglWaitClient
Ignore eglWaitGL
Ignore eglWaitNative
-
-Ignore EGLUtil_CreateDisplayByNative
-Ignore EGLUtil_CreateWindowByNative
diff --git a/make/make.jogl.all.linux-x86.sh b/make/make.jogl.all.linux-x86.sh
index 915bacaf3..8842cbc0c 100644
--- a/make/make.jogl.all.linux-x86.sh
+++ b/make/make.jogl.all.linux-x86.sh
@@ -9,15 +9,17 @@ fi
# -Dc.compiler.debug=true
# -DuseOpenMAX=true \
# -Dbuild.noarchives=true
+# -Dgluegen.cpptasks.detected.os=true \
+# -DisUnix=true \
+# -DisLinux=true \
+# -DisLinuxX86=true \
ant \
-Dbuild.noarchives=true \
-Djogl.cg=1 -Dx11.cg.lib=../../lib-linux-x86 \
-Drootrel.build=build-x86 \
- -Dgluegen.cpptasks.detected.os=true \
- -DisUnix=true \
- -DisLinux=true \
- -DisLinuxX86=true \
+ -Dos.arch=x86 \
-DisX11=true \
+ -DuseKD=true \
-DuseOpenMAX=true \
$* 2>&1 | tee make.jogl.all.linux-x86.log
diff --git a/make/make.jogl.all.linux-x86_64.sh b/make/make.jogl.all.linux-x86_64.sh
index b9e1d1789..90883f97c 100644
--- a/make/make.jogl.all.linux-x86_64.sh
+++ b/make/make.jogl.all.linux-x86_64.sh
@@ -8,14 +8,17 @@ fi
# -Dc.compiler.debug=true
# -Dbuild.noarchives=true
+# -Dgluegen.cpptasks.detected.os=true \
+# -DisUnix=true \
+# -DisLinux=true \
+# -DisLinuxAMD64=true \
+# -DisX11=true \
+
ant \
-Dbuild.noarchives=true \
-Djogl.cg=1 -Dx11.cg.lib=../../lib-linux-x86_64 \
-Dc.compiler.debug=true \
-Drootrel.build=build-x86_64 \
- -Dgluegen.cpptasks.detected.os=true \
- -DisUnix=true \
- -DisLinux=true \
- -DisLinuxAMD64=true \
- -DisX11=true \
+ -DuseKD=true \
+ -DuseOpenMAX=true \
$* 2>&1 | tee make.jogl.all.linux-x86_64.log
diff --git a/make/stub_includes/egl/EGL/egl.h b/make/stub_includes/egl/EGL/egl.h
index 5b4c4215c..86ca4818f 100755
--- a/make/stub_includes/egl/EGL/egl.h
+++ b/make/stub_includes/egl/EGL/egl.h
@@ -297,11 +297,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
EGLNativePixmapType target);
-EGLAPI EGLDisplay EGLAPIENTRY EGLUtil_CreateDisplayByNative(EGLint w, EGLint h);
-
-EGLAPI EGLSurface EGLAPIENTRY EGLUtil_CreateWindowByNative(EGLDisplay dpy, EGLint xx,
- EGLint *wvalue, EGLint *hvalue);
-
typedef void (* EGLAPIENTRY __EGLFuncPtr)(void);
EGLAPI __EGLFuncPtr eglGetProcAddress(const char *procname);
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawable.java
index d2907c83d..aabc6f263 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawable.java
@@ -45,10 +45,10 @@ import javax.media.opengl.*;
public abstract class EGLDrawable extends GLDrawableImpl {
protected boolean ownEGLDisplay = false;
+ protected boolean ownEGLSurface = false;
private EGLGraphicsConfiguration eglConfig;
protected long eglDisplay;
protected long eglSurface;
- private int[] tmp = new int[1];
protected EGLDrawable(EGLDrawableFactory factory,
NativeWindow component) throws GLException {
@@ -78,13 +78,16 @@ public abstract class EGLDrawable extends GLDrawableImpl {
protected abstract long createSurface(long eglDpy, _EGLConfig eglNativeCfg);
private void recreateSurface() {
- if(EGL.EGL_NO_SURFACE!=eglSurface) {
- EGL.eglDestroySurface(eglDisplay, eglSurface);
- }
- eglSurface = createSurface(eglDisplay, eglConfig.getNativeConfig());
+ if(ownEGLSurface) {
+ // create a new EGLSurface ..
+ if(EGL.EGL_NO_SURFACE!=eglSurface) {
+ EGL.eglDestroySurface(eglDisplay, eglSurface);
+ }
+ eglSurface = createSurface(eglDisplay, eglConfig.getNativeConfig());
- if(DEBUG) {
- System.err.println("setSurface using component: handle 0x"+Long.toHexString(component.getWindowHandle())+" -> 0x"+Long.toHexString(eglSurface));
+ if(DEBUG) {
+ System.err.println("setSurface using component: handle 0x"+Long.toHexString(component.getWindowHandle())+" -> 0x"+Long.toHexString(eglSurface));
+ }
}
}
@@ -110,13 +113,28 @@ public abstract class EGLDrawable extends GLDrawableImpl {
if (null == eglConfig) {
throw new GLException("Null EGLGraphicsConfiguration from "+aConfig);
}
- eglConfig.updateGraphicsConfiguration();
+ int[] tmp = new int[1];
+ if (EGL.eglQuerySurface(eglDisplay, component.getWindowHandle(), EGL.EGL_CONFIG_ID, tmp, 0)) {
+ // component holds static EGLSurface
+ eglSurface = component.getWindowHandle();
+ if(DEBUG) {
+ System.err.println("setSurface re-using component's EGLSurface: handle 0x"+Long.toHexString(eglSurface));
+ }
+ } else {
+ // EGLSurface is ours ..
+ ownEGLSurface=true;
+
+ eglConfig.updateGraphicsConfiguration();
+ }
} else {
throw new GLException("EGLGraphicsConfiguration doesn't carry a EGLGraphicsDevice: "+aConfig);
}
} else {
// create a new EGL config ..
ownEGLDisplay=true;
+ // EGLSurface is ours ..
+ ownEGLSurface=true;
+
long nDisplay;
if( NativeWindowFactory.TYPE_WINDOWS.equals(NativeWindowFactory.getNativeWindowType(false)) ) {
nDisplay = component.getSurfaceHandle(); // don't even ask ..
@@ -153,7 +171,7 @@ public abstract class EGLDrawable extends GLDrawableImpl {
} finally {
unlockSurface();
}
- } else if (eglSurface != EGL.EGL_NO_SURFACE) {
+ } else if (ownEGLSurface && eglSurface != EGL.EGL_NO_SURFACE) {
// Destroy the window surface
if (!EGL.eglDestroySurface(eglDisplay, eglSurface)) {
throw new GLException("Error destroying window surface (eglDestroySurface)");
@@ -168,6 +186,7 @@ public abstract class EGLDrawable extends GLDrawableImpl {
}
public int getWidth() {
+ int[] tmp = new int[1];
if (!EGL.eglQuerySurface(eglDisplay, eglSurface, EGL.EGL_WIDTH, tmp, 0)) {
throw new GLException("Error querying surface width");
}
@@ -175,6 +194,7 @@ public abstract class EGLDrawable extends GLDrawableImpl {
}
public int getHeight() {
+ int[] tmp = new int[1];
if (!EGL.eglQuerySurface(eglDisplay, eglSurface, EGL.EGL_HEIGHT, tmp, 0)) {
throw new GLException("Error querying surface height");
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLGraphicsConfiguration.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLGraphicsConfiguration.java
index 4f04bb57a..08fbae5bc 100644
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLGraphicsConfiguration.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLGraphicsConfiguration.java
@@ -37,6 +37,7 @@ package com.sun.opengl.impl.egl;
import java.util.*;
import javax.media.nativewindow.*;
+import javax.media.nativewindow.egl.*;
import javax.media.opengl.*;
import com.sun.opengl.impl.*;
import com.sun.gluegen.runtime.NativeLibrary;
@@ -52,15 +53,29 @@ public class EGLGraphicsConfiguration extends DefaultGraphicsConfiguration imple
return configID;
}
- public EGLGraphicsConfiguration(AbstractGraphicsScreen screen,
+ public EGLGraphicsConfiguration(AbstractGraphicsScreen absScreen,
GLCapabilities capsChosen, GLCapabilities capsRequested, GLCapabilitiesChooser chooser,
_EGLConfig cfg, int cfgID) {
- super(screen, capsChosen, capsRequested);
+ super(absScreen, capsChosen, capsRequested);
this.chooser = chooser;
_config = cfg;
configID = cfgID;
}
+ public static EGLGraphicsConfiguration create(GLProfile glp, AbstractGraphicsScreen absScreen, int cfgID) {
+ AbstractGraphicsDevice absDevice = absScreen.getDevice();
+ if(null==absDevice || !(absDevice instanceof EGLGraphicsDevice)) {
+ throw new GLException("GraphicsDevice must be a valid EGLGraphicsDevice");
+ }
+ long dpy = absDevice.getHandle();
+ if (dpy == EGL.EGL_NO_DISPLAY) {
+ throw new GLException("Invalid EGL display: "+absDevice);
+ }
+ _EGLConfig _cfg = EGLConfigId2EGLConfig(glp, dpy, cfgID);
+ GLCapabilities caps = EGLConfig2Capabilities(glp, dpy, _cfg);
+ return new EGLGraphicsConfiguration(absScreen, caps, caps, new DefaultGLCapabilitiesChooser(), _cfg, cfgID);
+ }
+
public Object clone() {
return super.clone();
}
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
index fd6eb458e..cbd485649 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
@@ -80,7 +80,7 @@ public abstract class NativeWindowFactory {
}
private static String _getNativeWindowingType(String osNameLowerCase) {
- if (osNameLowerCase.startsWith("kd") || osNameLowerCase.startsWith("linux")) {
+ if (osNameLowerCase.startsWith("kd")) {
return TYPE_EGL;
} else if (osNameLowerCase.startsWith("wind")) {
return TYPE_WINDOWS;
@@ -101,8 +101,6 @@ public abstract class NativeWindowFactory {
AccessControlContext acc = AccessController.getContext();
nativeOSNamePure = Debug.getProperty("os.name", false, acc);
nativeOSNameCustom = Debug.getProperty("nativewindow.ws.name", true, acc);
- System.out.println(nativeOSNamePure);
- System.out.println(nativeOSNameCustom);
if(null==nativeOSNameCustom||nativeOSNameCustom.length()==0) {
nativeOSNameCustom = nativeOSNamePure;
}
diff --git a/src/newt/classes/com/sun/javafx/newt/Display.java b/src/newt/classes/com/sun/javafx/newt/Display.java
index bdac08dab..04fdb0181 100755
--- a/src/newt/classes/com/sun/javafx/newt/Display.java
+++ b/src/newt/classes/com/sun/javafx/newt/Display.java
@@ -45,16 +45,15 @@ public abstract class Display implements Runnable {
{
Class displayClass = null;
if (NativeWindowFactory.TYPE_EGL.equals(type)) {
- // displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay");
- displayClass = Class.forName("com.sun.javafx.newt.opengl.egl.EGLDisplay");
+ displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay");
} else if (NativeWindowFactory.TYPE_WINDOWS.equals(type)) {
displayClass = Class.forName("com.sun.javafx.newt.windows.WindowsDisplay");
} else if (NativeWindowFactory.TYPE_MACOSX.equals(type)) {
displayClass = Class.forName("com.sun.javafx.newt.macosx.MacDisplay");
} else if (NativeWindowFactory.TYPE_X11.equals(type)) {
displayClass = Class.forName("com.sun.javafx.newt.x11.X11Display");
- } else if (NativeWindowFactory.TYPE_AWT.equals(type)) {
- displayClass = Class.forName("com.sun.javafx.newt.awt.AWTDisplay");
+ } else if (NewtFactory.TYPE_BROADCOM_EGL.equals(type)) {
+ displayClass = Class.forName("com.sun.javafx.newt.opengl.broadcom.BCEGLDisplay");
} else {
throw new RuntimeException("Unknown display type \"" + type + "\"");
}
diff --git a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java b/src/newt/classes/com/sun/javafx/newt/NewtFactory.java
index b88e1e49e..dbae30a4b 100755
--- a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java
+++ b/src/newt/classes/com/sun/javafx/newt/NewtFactory.java
@@ -39,6 +39,8 @@ import java.util.Iterator;
import com.sun.nativewindow.impl.jvm.JVMUtil;
public abstract class NewtFactory {
+ public static final String TYPE_BROADCOM_EGL = "BroadcomEGL";
+
// Work-around for initialization order problems on Mac OS X
// between native Newt and (apparently) Fmod
static {
@@ -50,7 +52,6 @@ public abstract class NewtFactory {
* Create a Display entity, incl native creation
*/
public static Display createDisplay(String name) {
- System.out.println("NewtFactory: NAME: " + name);
return Display.create(NativeWindowFactory.getNativeWindowType(true), name);
}
@@ -58,8 +59,6 @@ public abstract class NewtFactory {
* Create a Display entity using the given implementation type, incl native creation
*/
public static Display createDisplay(String type, String name) {
- System.out.println("NewtFactory: TYPE: " + type);
- System.out.println("NewtFactory: NAME: " + name);
return Display.create(type, name);
}
diff --git a/src/newt/classes/com/sun/javafx/newt/Screen.java b/src/newt/classes/com/sun/javafx/newt/Screen.java
index 2566041a8..57ed34211 100755
--- a/src/newt/classes/com/sun/javafx/newt/Screen.java
+++ b/src/newt/classes/com/sun/javafx/newt/Screen.java
@@ -54,6 +54,8 @@ public abstract class Screen {
screenClass = Class.forName("com.sun.javafx.newt.x11.X11Screen");
} else if (NativeWindowFactory.TYPE_AWT.equals(type)) {
screenClass = Class.forName("com.sun.javafx.newt.awt.AWTScreen");
+ } else if (NewtFactory.TYPE_BROADCOM_EGL.equals(type)) {
+ screenClass = Class.forName("com.sun.javafx.newt.opengl.broadcom.BCEGLScreen");
} else {
throw new RuntimeException("Unknown window type \"" + type + "\"");
}
diff --git a/src/newt/classes/com/sun/javafx/newt/Window.java b/src/newt/classes/com/sun/javafx/newt/Window.java
index 36eafd32d..a1168d12d 100755
--- a/src/newt/classes/com/sun/javafx/newt/Window.java
+++ b/src/newt/classes/com/sun/javafx/newt/Window.java
@@ -74,6 +74,8 @@ public abstract class Window implements NativeWindow
windowClass = Class.forName("com.sun.javafx.newt.x11.X11Window");
} else if (NativeWindowFactory.TYPE_AWT.equals(type)) {
windowClass = Class.forName("com.sun.javafx.newt.awt.AWTWindow");
+ } else if (NewtFactory.TYPE_BROADCOM_EGL.equals(type)) {
+ windowClass = Class.forName("com.sun.javafx.newt.opengl.broadcom.BCEGLWindow");
} else {
throw new NativeWindowException("Unknown window type \"" + type + "\"");
}
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLDisplay.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLDisplay.java
new file mode 100644
index 000000000..abf9859c5
--- /dev/null
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLDisplay.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.opengl.broadcom;
+
+import com.sun.javafx.newt.*;
+import com.sun.javafx.newt.impl.*;
+import com.sun.opengl.impl.egl.*;
+import javax.media.nativewindow.*;
+import javax.media.nativewindow.egl.*;
+
+public class BCEGLDisplay extends Display {
+
+ static {
+ NativeLibLoader.loadNEWT();
+
+ if (!BCEGLWindow.initIDs()) {
+ throw new NativeWindowException("Failed to initialize BCEGLWindow jmethodIDs");
+ }
+ }
+
+ public static void initSingleton() {
+ // just exist to ensure static init has been run
+ }
+
+
+ public BCEGLDisplay() {
+ }
+
+ protected void createNative() {
+ long handle = CreateDisplay(BCEGLScreen.fixedWidth, BCEGLScreen.fixedHeight);
+ if (handle == EGL.EGL_NO_DISPLAY) {
+ throw new NativeWindowException("BC EGL CreateDisplay failed");
+ }
+ aDevice = new EGLGraphicsDevice(handle);
+ }
+
+ protected void closeNative() {
+ if (aDevice.getHandle() != EGL.EGL_NO_DISPLAY) {
+ DestroyDisplay(aDevice.getHandle());
+ }
+ }
+
+ protected void dispatchMessages() {
+ DispatchMessages();
+ }
+
+ private native long CreateDisplay(int width, int height);
+ private native void DestroyDisplay(long dpy);
+ private native void DispatchMessages();
+}
+
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLScreen.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLScreen.java
new file mode 100755
index 000000000..165081cde
--- /dev/null
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLScreen.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.opengl.broadcom;
+
+import com.sun.javafx.newt.*;
+import com.sun.javafx.newt.impl.*;
+import javax.media.nativewindow.*;
+
+public class BCEGLScreen extends Screen {
+
+ static {
+ BCEGLDisplay.initSingleton();
+ }
+
+
+ public BCEGLScreen() {
+ }
+
+ protected void createNative(int index) {
+ aScreen = new DefaultGraphicsScreen(getDisplay().getGraphicsDevice(), index);
+ setScreenSize(fixedWidth, fixedHeight);
+ }
+
+ protected void closeNative() { }
+
+ //----------------------------------------------------------------------
+ // Internals only
+ //
+
+ static final int fixedWidth = 1920;
+ static final int fixedHeight = 1080;
+}
+
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
new file mode 100755
index 000000000..a91a91598
--- /dev/null
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.opengl.broadcom;
+
+import com.sun.javafx.newt.*;
+import com.sun.javafx.newt.impl.*;
+import com.sun.opengl.impl.egl.*;
+import javax.media.nativewindow.*;
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLProfile;
+import javax.media.nativewindow.NativeWindowException;
+
+public class BCEGLWindow extends Window {
+ static {
+ BCEGLDisplay.initSingleton();
+ }
+
+ public BCEGLWindow() {
+ }
+
+ protected void createNative(Capabilities caps) {
+ // just save the GLProfile here, create window later ..
+ glProfile = ((GLCapabilities)caps).getGLProfile();
+ }
+
+ protected void closeNative() {
+ if(0!=windowHandleClose) {
+ CloseWindow(getDisplayHandle(), windowHandleClose);
+ }
+ }
+
+ public void setVisible(boolean visible) {
+ if(this.visible!=visible) {
+ this.visible=visible;
+ if ( 0==windowHandle ) {
+ windowHandle = realizeWindow(true, width, height);
+ if (0 == windowHandle) {
+ throw new NativeWindowException("Error native Window Handle is null");
+ }
+ }
+ clearEventMask();
+ }
+ }
+
+ public void setSize(int width, int height) {
+ if(0!=windowHandle) {
+ // n/a in BroadcomEGL
+ System.err.println("setSize n/a in BroadcomEGL with realized window");
+ } else {
+ this.width = width;
+ this.height = height;
+ }
+ }
+
+ public void setPosition(int x, int y) {
+ // n/a in BroadcomEGL
+ System.err.println("setPosition n/a in BroadcomEGL");
+ }
+
+ public boolean setFullscreen(boolean fullscreen) {
+ // n/a in BroadcomEGL
+ System.err.println("setFullscreen n/a in BroadcomEGL");
+ return false;
+ }
+
+ //----------------------------------------------------------------------
+ // Internals only
+ //
+
+ protected static native boolean initIDs();
+ private native long CreateWindow(long eglDisplayHandle, boolean chromaKey, int width, int height);
+ private native void CloseWindow(long eglDisplayHandle, long eglWindowHandle);
+
+
+ private long realizeWindow(boolean chromaKey, int width, int height) {
+ long handle = CreateWindow(getDisplayHandle(), chromaKey, width, height);
+ if (0 == handle) {
+ throw new NativeWindowException("Error native Window Handle is null");
+ }
+ windowHandleClose = handle;
+ return handle;
+ }
+
+ private void windowCreated(int cfgID, int width, int height) {
+ this.width = width;
+ this.height = height;
+ config = EGLGraphicsConfiguration.create(glProfile, screen.getGraphicsScreen(), cfgID);
+ if (config == null) {
+ throw new NativeWindowException("Error creating EGLGraphicsConfiguration from id: "+cfgID+", "+this);
+ }
+ }
+
+ private long windowHandleClose;
+ private GLProfile glProfile;
+}
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java b/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java
deleted file mode 100644
index bebb7ccf2..000000000
--- a/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * - Redistribution of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistribution in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Neither the name of Sun Microsystems, Inc. or the names of
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * This software is provided "AS IS," without a warranty of any kind. ALL
- * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
- * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
- * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
- * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
- * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
- * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
- * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
- * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- *
- */
-
-package com.sun.javafx.newt.opengl.egl;
-
-import com.sun.javafx.newt.*;
-import com.sun.javafx.newt.impl.*;
-import com.sun.opengl.impl.egl.*;
-import javax.media.nativewindow.*;
-import javax.media.nativewindow.egl.*;
-
-public class EGLDisplay extends Display {
-
- static {
- NativeLibLoader.loadNEWT();
-
- System.loadLibrary("EglUtil");
- }
-
- public static void initSingleton() {
- // just exist to ensure static init has been run
- }
-
-
- public EGLDisplay() {
- }
-
- protected void createNative() {
- try {
- int windowWidth = 1920, windowHeight = 1080;
- int width[] = { windowWidth };
- int height[] = { windowHeight };
- long eglDisplayHandle =
- EGL.EGLUtil_CreateDisplayByNative(windowWidth, windowHeight);
- long eglSurfaceHandle =
- EGL.EGLUtil_CreateWindowByNative(eglDisplayHandle, 1,
- width, 0, height, 0);
- } catch (Throwable th) {
- th.printStackTrace();
- }
- }
-
- protected void closeNative() {
- if (aDevice.getHandle() != EGL.EGL_NO_DISPLAY) {
- EGL.eglTerminate(aDevice.getHandle());
- }
- }
-
- protected void dispatchMessages() {
- DispatchMessages();
- }
-
- private native void DispatchMessages();
-}
-
diff --git a/src/newt/native/BroadcomEGL.c b/src/newt/native/BroadcomEGL.c
new file mode 100755
index 000000000..8afa71a47
--- /dev/null
+++ b/src/newt/native/BroadcomEGL.c
@@ -0,0 +1,170 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+#ifdef _WIN32
+ #include
+#else
+ #include
+#endif
+
+#include
+#include
+#include
+
+#include "com_sun_javafx_newt_opengl_broadcom_BCEGLWindow.h"
+
+#include "EventListener.h"
+#include "MouseEvent.h"
+#include "KeyEvent.h"
+
+#include
+
+typedef unsigned int GLuint;
+
+EGLDisplay EGLUtil_CreateDisplay( GLuint uiWidth, GLuint uiHeight );
+void EGLUtil_DestroyDisplay( EGLDisplay eglDisplay );
+
+EGLSurface EGLUtil_CreateWindow( EGLDisplay eglDisplay, /* bool */ GLuint bChromakey, GLuint *puiWidth, GLuint *puiHeight );
+void EGLUtil_DestroyWindow( EGLDisplay eglDisplay, EGLSurface eglSurface );
+void EGLUtil_SwapWindow( EGLDisplay eglDisplay, EGLSurface eglSurface );
+
+#define VERBOSE_ON 1
+
+#ifdef VERBOSE_ON
+ #define DBG_PRINT(...) fprintf(stdout, __VA_ARGS__)
+#else
+ #define DBG_PRINT(...)
+#endif
+
+static jmethodID windowCreatedID = NULL;
+
+/**
+ * Display
+ */
+
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLDisplay_DispatchMessages
+ (JNIEnv *env, jobject obj)
+{
+ // FIXME: n/a
+ (void) env;
+ (void) obj;
+}
+
+JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLDisplay_CreateDisplay
+ (JNIEnv *env, jobject obj, jint width, jint height)
+{
+ (void) env;
+ (void) obj;
+ EGLDisplay dpy = EGLUtil_CreateDisplay( (GLuint) width, (GLuint) height );
+ if(NULL==dpy) {
+ fprintf(stderr, "[CreateDisplay] failed: NULL\n");
+ } else {
+ DBG_PRINT( "[CreateDisplay] ok: %p, %ux%u\n", dpy, width, height);
+ }
+ return (jlong) (intptr_t) dpy;
+}
+
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLDisplay_DestroyDisplay
+ (JNIEnv *env, jobject obj, jlong display)
+{
+ EGLDisplay dpy = (EGLDisplay)(intptr_t)display;
+ (void) env;
+ (void) obj;
+ EGLUtil_DestroyDisplay(dpy);
+}
+
+/**
+ * Window
+ */
+
+JNIEXPORT jboolean JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_initIDs
+ (JNIEnv *env, jclass clazz)
+{
+ windowCreatedID = (*env)->GetMethodID(env, clazz, "windowCreated", "(III)V");
+ if (windowCreatedID == NULL) {
+ DBG_PRINT( "initIDs failed\n" );
+ return JNI_FALSE;
+ }
+ DBG_PRINT( "initIDs ok\n" );
+ return JNI_TRUE;
+}
+
+JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_CreateWindow
+ (JNIEnv *env, jobject obj, jlong display, jboolean chromaKey, jint width, jint height)
+{
+ EGLDisplay dpy = (EGLDisplay)(intptr_t)display;
+ EGLSurface window = 0;
+ GLuint uiWidth=(GLuint)width, uiHeight=(GLuint)height;
+
+ if(dpy==NULL) {
+ fprintf(stderr, "[RealizeWindow] invalid display connection..\n");
+ return 0;
+ }
+
+ window = EGLUtil_CreateWindow( dpy, chromaKey, &uiWidth, &uiHeight );
+ // EGLUtil_DestroyWindow( dpy, window );
+
+ if(NULL==window) {
+ fprintf(stderr, "[RealizeWindow.Create] failed: NULL\n");
+ return 0;
+ }
+ EGLint cfgID=0;
+ if(EGL_FALSE==eglQuerySurface(dpy, window, EGL_CONFIG_ID, &cfgID)) {
+ fprintf(stderr, "[RealizeWindow.ConfigID] failed: window %p\n", window);
+ EGLUtil_DestroyWindow(dpy, window);
+ return 0;
+ }
+ (*env)->CallVoidMethod(env, obj, windowCreatedID, (jint) cfgID, (jint)uiWidth, (jint)uiHeight);
+ DBG_PRINT( "[RealizeWindow.Create] ok: %p, cfgid %d, %ux%u\n", window, cfgID, uiWidth, uiHeight);
+
+ // release and destroy already made context ..
+ EGLContext ctx = eglGetCurrentContext();
+ eglMakeCurrent(dpy,
+ EGL_NO_SURFACE,
+ EGL_NO_SURFACE,
+ EGL_NO_CONTEXT);
+ eglDestroyContext(dpy, ctx);
+
+ return (jlong) (intptr_t) window;
+}
+
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_CloseWindow
+ (JNIEnv *env, jobject obj, jlong display, jlong window)
+{
+ EGLDisplay dpy = (EGLDisplay)(intptr_t)display;
+ EGLSurface surf = (EGLSurface) (intptr_t) window;
+ EGLUtil_DestroyWindow(dpy, surf);
+
+ DBG_PRINT( "[CloseWindow]\n");
+}
+
diff --git a/src/newt/native/KDWindow.c b/src/newt/native/KDWindow.c
index 8e57237b3..6c7aa7731 100755
--- a/src/newt/native/KDWindow.c
+++ b/src/newt/native/KDWindow.c
@@ -103,7 +103,7 @@ static jmethodID sendKeyEventID = NULL;
* Display
*/
-JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDDisplay_DispatchMessages
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_kd_KDDisplay_DispatchMessages
(JNIEnv *env, jobject obj)
{
const KDEvent * evt;
@@ -200,7 +200,7 @@ JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDDisplay_DispatchMessages
* Window
*/
-JNIEXPORT jboolean JNICALL Java_com_sun_javafx_newt_kd_KDWindow_initIDs
+JNIEXPORT jboolean JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_initIDs
(JNIEnv *env, jclass clazz)
{
#ifdef VERBOSE_ON
@@ -228,7 +228,7 @@ JNIEXPORT jboolean JNICALL Java_com_sun_javafx_newt_kd_KDWindow_initIDs
return JNI_TRUE;
}
-JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_kd_KDWindow_CreateWindow
+JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_CreateWindow
(JNIEnv *env, jobject obj, jlong display, jintArray jAttrs)
{
jint * attrs = NULL;
@@ -270,7 +270,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_kd_KDWindow_CreateWindow
return (jlong) (intptr_t) window;
}
-JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_kd_KDWindow_RealizeWindow
+JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_RealizeWindow
(JNIEnv *env, jobject obj, jlong window)
{
KDWindow *w = (KDWindow*) (intptr_t) window;
@@ -285,7 +285,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_kd_KDWindow_RealizeWindow
return (jlong) (intptr_t) nativeWindow;
}
-JNIEXPORT jint JNICALL Java_com_sun_javafx_newt_kd_KDWindow_CloseWindow
+JNIEXPORT jint JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_CloseWindow
(JNIEnv *env, jobject obj, jlong window, jlong juserData)
{
KDWindow *w = (KDWindow*) (intptr_t) window;
@@ -299,11 +299,11 @@ JNIEXPORT jint JNICALL Java_com_sun_javafx_newt_kd_KDWindow_CloseWindow
}
/*
- * Class: com_sun_javafx_newt_kd_KDWindow
+ * Class: com_sun_javafx_newt_opengl_kd_KDWindow
* Method: setVisible0
* Signature: (JJZ)V
*/
-JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDWindow_setVisible0
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_setVisible0
(JNIEnv *env, jobject obj, jlong window, jboolean visible)
{
KDWindow *w = (KDWindow*) (intptr_t) window;
@@ -312,7 +312,7 @@ JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDWindow_setVisible0
DBG_PRINT( "[setVisible] v=%d\n", visible);
}
-JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDWindow_setFullScreen0
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_setFullScreen0
(JNIEnv *env, jobject obj, jlong window, jboolean fullscreen)
{
KDWindow *w = (KDWindow*) (intptr_t) window;
@@ -323,7 +323,7 @@ JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDWindow_setFullScreen0
(void)res;
}
-JNIEXPORT void JNICALL Java_com_sun_javafx_newt_kd_KDWindow_setSize0
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_kd_KDWindow_setSize0
(JNIEnv *env, jobject obj, jlong window, jint width, jint height)
{
KDWindow *w = (KDWindow*) (intptr_t) window;
--
cgit v1.2.3
From d73af059e836943fa37b9f7aab93154f530763d9 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Mon, 27 Jul 2009 20:36:50 -0700
Subject: Cleanup ..
---
make/build-newt.xml | 6 ------
1 file changed, 6 deletions(-)
(limited to 'make')
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 95869546f..48c11f6dd 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -432,12 +432,6 @@
-
-
-
-
-
-
--
cgit v1.2.3
From b6d75cac68340878b20d35b23c8449c97ad9d819 Mon Sep 17 00:00:00 2001
From: Morris Meyer
Date: Tue, 28 Jul 2009 17:34:20 -0400
Subject: EGL changes for device
---
make/build-newt.xml | 1 +
.../classes/com/sun/opengl/impl/GLDrawableImpl.java | 19 ++++++++++++++++++-
.../com/sun/opengl/impl/egl/EGLDrawableFactory.java | 6 +++++-
.../sun/opengl/impl/egl/EGLDynamicLookupHelper.java | 14 ++++++++++----
.../opengl/impl/egl/EGLES1DynamicLookupHelper.java | 2 ++
src/jogl/classes/javax/media/opengl/GLProfile.java | 6 +++---
.../com/sun/nativewindow/impl/NWReflection.java | 11 +++++++++--
.../javax/media/nativewindow/NativeWindowFactory.java | 5 +++++
src/newt/native/BroadcomEGL.c | 4 ++--
9 files changed, 55 insertions(+), 13 deletions(-)
(limited to 'make')
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 48c11f6dd..1ed039a57 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -371,6 +371,7 @@
+
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
index c381f68f5..e71cf33a0 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
@@ -52,7 +52,24 @@ public abstract class GLDrawableImpl implements GLDrawable {
this.factory = factory;
this.component = comp;
this.realized = realized;
- this.requestedCapabilities = (GLCapabilities)component.getGraphicsConfiguration().getNativeGraphicsConfiguration().getRequestedCapabilities(); // a copy ..
+
+ AbstractGraphicsConfiguration agc = component.getGraphicsConfiguration();
+ if (agc == null) {
+ System.out.println("GLDrawableImpl no AbstractGraphicsConfiguration");
+ System.out.println(component.getClass().getName());
+ return;
+ }
+ AbstractGraphicsConfiguration ngc = agc.getNativeGraphicsConfiguration();
+ if (ngc == null) {
+ System.out.println("GLDrawableImpl no native AbstractGraphicsConfiguration");
+ return;
+ }
+ Capabilities caps = ngc.getRequestedCapabilities();
+ if (caps == null) {
+ System.out.println("GLDrawableImpl no native Capabilities");
+ return;
+ }
+ this.requestedCapabilities = (GLCapabilities)caps; // a copy ..
}
/**
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java
index 396580c1d..e2ee65d27 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java
@@ -45,15 +45,19 @@ import com.sun.gluegen.runtime.NativeLibrary;
public class EGLDrawableFactory extends GLDrawableFactoryImpl {
static {
+ try {
// Register our GraphicsConfigurationFactory implementations
// The act of constructing them causes them to be registered
new EGLGraphicsConfigurationFactory();
// Check for other underlying stuff ..
- if(NativeWindowFactory.TYPE_X11.equals(NativeWindowFactory.getNativeWindowType(false))) {
+ /* if(NativeWindowFactory.TYPE_X11.equals(NativeWindowFactory.getNativeWindowType(false))) {
try {
NWReflection.createInstance("com.sun.opengl.impl.x11.glx.X11GLXGraphicsConfigurationFactory");
} catch (Throwable t) {}
+ } */
+ } catch (Throwable th) {
+ th.printStackTrace();
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java
index 8bed0eb35..99f163ca1 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java
@@ -50,7 +50,7 @@ import com.sun.gluegen.runtime.DynamicLookupHelper;
* Currently two implementations exist, one for ES1 and one for ES2.
*/
public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper {
- protected static final boolean DEBUG = com.sun.opengl.impl.Debug.debug("EGL");
+ protected static final boolean DEBUG = true; /* com.sun.opengl.impl.Debug.debug("EGL"); */
private static final EGLDynamicLookupHelper eglES1DynamicLookupHelper;
private static final EGLDynamicLookupHelper eglES2DynamicLookupHelper;
@@ -136,9 +136,13 @@ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper {
private NativeLibrary loadFirstAvailable(List/**/ libNames, ClassLoader loader) {
for (Iterator iter = libNames.iterator(); iter.hasNext(); ) {
- NativeLibrary lib = NativeLibrary.open((String) iter.next(), loader, false /*global*/);
+ String libname = (String) iter.next();
+ NativeLibrary lib = NativeLibrary.open(libname, loader, false /*global*/);
if (lib != null) {
+ System.out.println("found: " + libname);
return lib;
+ } else {
+ System.out.println("looked for: " + libname);
}
}
return null;
@@ -164,9 +168,11 @@ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper {
// EGL libraries ..
lib = loadFirstAvailable(eglLibNames, loader);
if (lib == null) {
- throw new GLException("Unable to dynamically load EGL library for profile ES" + esProfile);
+ // throw new GLException("Unable to dynamically load EGL library for profile ES" + esProfile);
+ System.out.println("Unable to dynamically load EGL library for profile ES" + esProfile);
+ } else {
+ glesLibraries.add(lib);
}
- glesLibraries.add(lib);
}
if (esProfile==2) {
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java
index 7e60e25c0..68630344a 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java
@@ -58,6 +58,8 @@ public class EGLES1DynamicLookupHelper extends EGLDynamicLookupHelper {
protected List/**/ getGLESLibNames() {
List/**/ glesLibNames = new ArrayList();
+ glesLibNames.add("nexus");
+
glesLibNames.add("GLES_CM");
glesLibNames.add("GLES_CL");
glesLibNames.add("GLESv1_CM");
diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java
index ead5f6396..83a9b0098 100644
--- a/src/jogl/classes/javax/media/opengl/GLProfile.java
+++ b/src/jogl/classes/javax/media/opengl/GLProfile.java
@@ -54,7 +54,7 @@ import com.sun.nativewindow.impl.jvm.JVMUtil;
* or more specialized versions using the other static GetProfile methods.
*/
public class GLProfile implements Cloneable {
- public static final boolean DEBUG = Debug.debug("GLProfile");
+ public static final boolean DEBUG = true; /* Debug.debug("GLProfile"); */
//
// Public (user-visible) profiles
@@ -736,8 +736,8 @@ public class GLProfile implements Cloneable {
}
}
mappedProfiles = _mappedProfiles; // final ..
- if(null==defaultGLProfile) {
- throw new GLException("No profile available: "+list2String(GL_PROFILE_LIST_ALL));
+ if (null==defaultGLProfile) {
+ System.out.println("No profile available: "+list2String(GL_PROFILE_LIST_ALL));
}
}
diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java b/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java
index b13cf4317..d054c205b 100644
--- a/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java
+++ b/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java
@@ -40,7 +40,7 @@ import java.lang.reflect.*;
import javax.media.nativewindow.*;
public final class NWReflection {
- public static final boolean DEBUG = Debug.debug("NWReflection");
+ public static final boolean DEBUG = true; /* Debug.debug("NWReflection"); */
public static final boolean isClassAvailable(String clazzName) {
try {
@@ -69,7 +69,11 @@ public final class NWReflection {
try {
factory = factoryClass.getDeclaredConstructor( cstrArgTypes );
} catch(NoSuchMethodException nsme) {
- throw new NativeWindowException("Constructor: '" + clazzName + "("+cstrArgTypes+")' not found");
+ nsme.printStackTrace();
+ throw new NativeWindowException("Constructor: '" + clazzName + "("+cstrArgTypes+")' not found");
+ } catch (Throwable th) {
+ th.printStackTrace();
+ throw new NativeWindowException(th);
}
return factory;
} catch (Throwable e) {
@@ -91,6 +95,9 @@ public final class NWReflection {
factory = getConstructor(clazzName, cstrArgTypes);
return factory.newInstance( cstrArgs ) ;
} catch (Exception e) {
+ if (DEBUG) {
+ e.printStackTrace();
+ }
throw new NativeWindowException(e);
}
}
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
index cbd485649..d4684c783 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
@@ -48,6 +48,9 @@ import com.sun.nativewindow.impl.jvm.JVMUtil;
public abstract class NativeWindowFactory {
protected static final boolean DEBUG = Debug.debug("NativeWindow");
+ /** Broadcom EGL type */
+ public static final String TYPE_BROADCOM_EGL = "BroadcomEGL";
+
/** OpenKODE/EGL type */
public static final String TYPE_EGL = "EGL";
@@ -82,6 +85,8 @@ public abstract class NativeWindowFactory {
private static String _getNativeWindowingType(String osNameLowerCase) {
if (osNameLowerCase.startsWith("kd")) {
return TYPE_EGL;
+ } else if (osNameLowerCase.startsWith(TYPE_BROADCOM_EGL.toLowerCase())) {
+ return TYPE_BROADCOM_EGL;
} else if (osNameLowerCase.startsWith("wind")) {
return TYPE_WINDOWS;
} else if (osNameLowerCase.startsWith("mac os x") ||
diff --git a/src/newt/native/BroadcomEGL.c b/src/newt/native/BroadcomEGL.c
index 8afa71a47..55ca5f155 100755
--- a/src/newt/native/BroadcomEGL.c
+++ b/src/newt/native/BroadcomEGL.c
@@ -85,7 +85,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLDisplay_Cr
{
(void) env;
(void) obj;
- EGLDisplay dpy = EGLUtil_CreateDisplay( (GLuint) width, (GLuint) height );
+ EGLDisplay dpy = EGLUtil_CreateDisplayByNative( (GLuint) width, (GLuint) height );
if(NULL==dpy) {
fprintf(stderr, "[CreateDisplay] failed: NULL\n");
} else {
@@ -131,7 +131,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_Cre
return 0;
}
- window = EGLUtil_CreateWindow( dpy, chromaKey, &uiWidth, &uiHeight );
+ window = EGLUtil_CreateWindowByNative( dpy, chromaKey, &uiWidth, &uiHeight );
// EGLUtil_DestroyWindow( dpy, window );
if(NULL==window) {
--
cgit v1.2.3
From 4b5e1a0f826597d8cdcf81865194ee8d67511b70 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Tue, 28 Jul 2009 19:03:32 -0700
Subject: Cleanup ..
---
make/build-jogl.xml | 24 ++++-------------
make/build-nativewindow.xml | 31 +++++++---------------
make/build-newt.xml | 28 ++++++-------------
make/make.jogl.all.linux-x86.sh | 2 +-
.../com/sun/opengl/impl/GLDrawableImpl.java | 19 +------------
.../sun/opengl/impl/egl/EGLDrawableFactory.java | 6 +----
.../opengl/impl/egl/EGLDynamicLookupHelper.java | 14 +++-------
src/jogl/classes/javax/media/opengl/GLProfile.java | 6 ++---
.../com/sun/nativewindow/impl/NWReflection.java | 11 ++------
.../javafx/newt/opengl/broadcom/BCEGLWindow.java | 3 +++
src/newt/native/BroadcomEGL.c | 2 +-
11 files changed, 38 insertions(+), 108 deletions(-)
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index fda65c5b2..6a065a8e4 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -51,8 +51,8 @@
-
- Some environment defs affecting compilation
- - setup.noAWT is set iff:
- !isWindows && !isOSX && !noX11
+ - setup.nodesktop is set iff:
+ !isWindows && !isOSX && !isX11
- Internal settings, may not be necessary to set them manually,
since all JAR archives are orthogonal.
@@ -77,7 +77,7 @@
-->
-
+
@@ -86,25 +86,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
@@ -1769,7 +1755,7 @@
includes="${java.part.util.fixedfunc.shaders}"/>
-
+
-
+
@@ -77,21 +77,13 @@
-
-
-
-
-
-
-
-
-
+
+
-
@@ -108,17 +100,12 @@
-
-
-
-
-
+
@@ -842,13 +829,13 @@
-
+
-
+
@@ -865,7 +852,7 @@
-
+
diff --git a/make/build-newt.xml b/make/build-newt.xml
index 1ed039a57..be9547684 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -50,8 +50,8 @@
setup.noAWT
setup.noOpenGL
- - setup.noAWT is set iff:
- !isWindows && !isOSX && !noX11
+ - setup.nodesktop is set iff:
+ !isWindows && !isOSX && !isX11
-->
@@ -73,28 +73,16 @@
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -110,7 +98,6 @@
-
@@ -764,10 +751,11 @@
-
+
+ includes="com/sun/javafx/newt/**"
+ excludes="${java.excludes.cdcfp}" />
diff --git a/make/make.jogl.all.linux-x86.sh b/make/make.jogl.all.linux-x86.sh
index 8842cbc0c..0f764b360 100644
--- a/make/make.jogl.all.linux-x86.sh
+++ b/make/make.jogl.all.linux-x86.sh
@@ -13,13 +13,13 @@ fi
# -DisUnix=true \
# -DisLinux=true \
# -DisLinuxX86=true \
+# -DisX11=true \
ant \
-Dbuild.noarchives=true \
-Djogl.cg=1 -Dx11.cg.lib=../../lib-linux-x86 \
-Drootrel.build=build-x86 \
-Dos.arch=x86 \
- -DisX11=true \
-DuseKD=true \
-DuseOpenMAX=true \
$* 2>&1 | tee make.jogl.all.linux-x86.log
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
index e71cf33a0..c381f68f5 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
@@ -52,24 +52,7 @@ public abstract class GLDrawableImpl implements GLDrawable {
this.factory = factory;
this.component = comp;
this.realized = realized;
-
- AbstractGraphicsConfiguration agc = component.getGraphicsConfiguration();
- if (agc == null) {
- System.out.println("GLDrawableImpl no AbstractGraphicsConfiguration");
- System.out.println(component.getClass().getName());
- return;
- }
- AbstractGraphicsConfiguration ngc = agc.getNativeGraphicsConfiguration();
- if (ngc == null) {
- System.out.println("GLDrawableImpl no native AbstractGraphicsConfiguration");
- return;
- }
- Capabilities caps = ngc.getRequestedCapabilities();
- if (caps == null) {
- System.out.println("GLDrawableImpl no native Capabilities");
- return;
- }
- this.requestedCapabilities = (GLCapabilities)caps; // a copy ..
+ this.requestedCapabilities = (GLCapabilities)component.getGraphicsConfiguration().getNativeGraphicsConfiguration().getRequestedCapabilities(); // a copy ..
}
/**
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java
index e2ee65d27..396580c1d 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java
@@ -45,19 +45,15 @@ import com.sun.gluegen.runtime.NativeLibrary;
public class EGLDrawableFactory extends GLDrawableFactoryImpl {
static {
- try {
// Register our GraphicsConfigurationFactory implementations
// The act of constructing them causes them to be registered
new EGLGraphicsConfigurationFactory();
// Check for other underlying stuff ..
- /* if(NativeWindowFactory.TYPE_X11.equals(NativeWindowFactory.getNativeWindowType(false))) {
+ if(NativeWindowFactory.TYPE_X11.equals(NativeWindowFactory.getNativeWindowType(false))) {
try {
NWReflection.createInstance("com.sun.opengl.impl.x11.glx.X11GLXGraphicsConfigurationFactory");
} catch (Throwable t) {}
- } */
- } catch (Throwable th) {
- th.printStackTrace();
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java
index 99f163ca1..8bed0eb35 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java
@@ -50,7 +50,7 @@ import com.sun.gluegen.runtime.DynamicLookupHelper;
* Currently two implementations exist, one for ES1 and one for ES2.
*/
public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper {
- protected static final boolean DEBUG = true; /* com.sun.opengl.impl.Debug.debug("EGL"); */
+ protected static final boolean DEBUG = com.sun.opengl.impl.Debug.debug("EGL");
private static final EGLDynamicLookupHelper eglES1DynamicLookupHelper;
private static final EGLDynamicLookupHelper eglES2DynamicLookupHelper;
@@ -136,13 +136,9 @@ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper {
private NativeLibrary loadFirstAvailable(List/**/ libNames, ClassLoader loader) {
for (Iterator iter = libNames.iterator(); iter.hasNext(); ) {
- String libname = (String) iter.next();
- NativeLibrary lib = NativeLibrary.open(libname, loader, false /*global*/);
+ NativeLibrary lib = NativeLibrary.open((String) iter.next(), loader, false /*global*/);
if (lib != null) {
- System.out.println("found: " + libname);
return lib;
- } else {
- System.out.println("looked for: " + libname);
}
}
return null;
@@ -168,11 +164,9 @@ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper {
// EGL libraries ..
lib = loadFirstAvailable(eglLibNames, loader);
if (lib == null) {
- // throw new GLException("Unable to dynamically load EGL library for profile ES" + esProfile);
- System.out.println("Unable to dynamically load EGL library for profile ES" + esProfile);
- } else {
- glesLibraries.add(lib);
+ throw new GLException("Unable to dynamically load EGL library for profile ES" + esProfile);
}
+ glesLibraries.add(lib);
}
if (esProfile==2) {
diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java
index 83a9b0098..ead5f6396 100644
--- a/src/jogl/classes/javax/media/opengl/GLProfile.java
+++ b/src/jogl/classes/javax/media/opengl/GLProfile.java
@@ -54,7 +54,7 @@ import com.sun.nativewindow.impl.jvm.JVMUtil;
* or more specialized versions using the other static GetProfile methods.
*/
public class GLProfile implements Cloneable {
- public static final boolean DEBUG = true; /* Debug.debug("GLProfile"); */
+ public static final boolean DEBUG = Debug.debug("GLProfile");
//
// Public (user-visible) profiles
@@ -736,8 +736,8 @@ public class GLProfile implements Cloneable {
}
}
mappedProfiles = _mappedProfiles; // final ..
- if (null==defaultGLProfile) {
- System.out.println("No profile available: "+list2String(GL_PROFILE_LIST_ALL));
+ if(null==defaultGLProfile) {
+ throw new GLException("No profile available: "+list2String(GL_PROFILE_LIST_ALL));
}
}
diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java b/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java
index d054c205b..b13cf4317 100644
--- a/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java
+++ b/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java
@@ -40,7 +40,7 @@ import java.lang.reflect.*;
import javax.media.nativewindow.*;
public final class NWReflection {
- public static final boolean DEBUG = true; /* Debug.debug("NWReflection"); */
+ public static final boolean DEBUG = Debug.debug("NWReflection");
public static final boolean isClassAvailable(String clazzName) {
try {
@@ -69,11 +69,7 @@ public final class NWReflection {
try {
factory = factoryClass.getDeclaredConstructor( cstrArgTypes );
} catch(NoSuchMethodException nsme) {
- nsme.printStackTrace();
- throw new NativeWindowException("Constructor: '" + clazzName + "("+cstrArgTypes+")' not found");
- } catch (Throwable th) {
- th.printStackTrace();
- throw new NativeWindowException(th);
+ throw new NativeWindowException("Constructor: '" + clazzName + "("+cstrArgTypes+")' not found");
}
return factory;
} catch (Throwable e) {
@@ -95,9 +91,6 @@ public final class NWReflection {
factory = getConstructor(clazzName, cstrArgTypes);
return factory.newInstance( cstrArgs ) ;
} catch (Exception e) {
- if (DEBUG) {
- e.printStackTrace();
- }
throw new NativeWindowException(e);
}
}
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
index 9b790bd1f..29b92bc8f 100755
--- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
@@ -124,6 +124,9 @@ public class BCEGLWindow extends Window {
if (config == null) {
throw new NativeWindowException("Error creating EGLGraphicsConfiguration from id: "+cfgID+", "+this);
}
+ if(DEBUG_IMPLEMENTATION) {
+ System.out.println("BCEGLWindow.windowCreated: 0x"+Integer.toHexString(cfgID)+", "+width+"x"+height+", "+config);
+ }
}
private long windowHandleClose;
diff --git a/src/newt/native/BroadcomEGL.c b/src/newt/native/BroadcomEGL.c
index 55ca5f155..716f7d9ee 100755
--- a/src/newt/native/BroadcomEGL.c
+++ b/src/newt/native/BroadcomEGL.c
@@ -58,7 +58,7 @@ EGLSurface EGLUtil_CreateWindow( EGLDisplay eglDisplay, /* bool */ GLuint bChrom
void EGLUtil_DestroyWindow( EGLDisplay eglDisplay, EGLSurface eglSurface );
void EGLUtil_SwapWindow( EGLDisplay eglDisplay, EGLSurface eglSurface );
-#define VERBOSE_ON 1
+// #define VERBOSE_ON 1
#ifdef VERBOSE_ON
#define DBG_PRINT(...) fprintf(stdout, __VA_ARGS__)
--
cgit v1.2.3
From 6db7512b4dc3c97e31937e3bd226b2b33cc53268 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Tue, 28 Jul 2009 19:14:57 -0700
Subject: NativeWindow: noNativeAWT if nodesktop
---
make/build-nativewindow.xml | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
(limited to 'make')
diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml
index 7dae934e4..8a903eb0c 100644
--- a/make/build-nativewindow.xml
+++ b/make/build-nativewindow.xml
@@ -76,6 +76,13 @@
+
+
+
+
+
+
+
@@ -85,6 +92,7 @@
+
@@ -709,7 +717,7 @@
-
+
-
-
+
+
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java
index 68630344a..7e60e25c0 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java
@@ -58,8 +58,6 @@ public class EGLES1DynamicLookupHelper extends EGLDynamicLookupHelper {
protected List/**/ getGLESLibNames() {
List/**/ glesLibNames = new ArrayList();
- glesLibNames.add("nexus");
-
glesLibNames.add("GLES_CM");
glesLibNames.add("GLES_CL");
glesLibNames.add("GLESv1_CM");
diff --git a/src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java b/src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java
index 6316e750f..d96c56f6e 100644
--- a/src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java
+++ b/src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java
@@ -53,8 +53,7 @@ public class NativeLibLoader extends NativeLibLoaderBase {
public static void loadNEWT() {
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
- String[] preload = { "nativewindow" };
- loadLibrary("newt", preload, true);
+ loadLibrary("newt", null, true);
return null;
}
});
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
index 29b92bc8f..c8436b928 100755
--- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
@@ -56,6 +56,7 @@ public class BCEGLWindow extends Window {
if (config == null) {
throw new NativeWindowException("Error choosing GraphicsConfiguration creating window: "+this);
}
+ setSize(getScreen().getWidth(), getScreen().getHeight());
}
protected void closeNative() {
@@ -82,6 +83,10 @@ public class BCEGLWindow extends Window {
// n/a in BroadcomEGL
System.err.println("setSize n/a in BroadcomEGL with realized window");
} else {
+ if(DEBUG_IMPLEMENTATION) {
+ Exception e = new Exception("BCEGLWindow.setSize() "+this.width+"x"+this.height+" -> "+width+"x"+height);
+ e.printStackTrace();
+ }
this.width = width;
this.height = height;
}
@@ -108,6 +113,9 @@ public class BCEGLWindow extends Window {
private long realizeWindow(boolean chromaKey, int width, int height) {
+ if(DEBUG_IMPLEMENTATION) {
+ System.out.println("BCEGLWindow.realizeWindow() with: chroma "+chromaKey+", "+width+"x"+height+", "+config);
+ }
long handle = CreateWindow(getDisplayHandle(), chromaKey, width, height);
if (0 == handle) {
throw new NativeWindowException("Error native Window Handle is null");
@@ -125,7 +133,7 @@ public class BCEGLWindow extends Window {
throw new NativeWindowException("Error creating EGLGraphicsConfiguration from id: "+cfgID+", "+this);
}
if(DEBUG_IMPLEMENTATION) {
- System.out.println("BCEGLWindow.windowCreated: 0x"+Integer.toHexString(cfgID)+", "+width+"x"+height+", "+config);
+ System.out.println("BCEGLWindow.windowCreated(): 0x"+Integer.toHexString(cfgID)+", "+width+"x"+height+", "+config);
}
}
--
cgit v1.2.3
From b5ce9cce6223810c6df7b66cf1a51318309fdc90 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Wed, 29 Jul 2009 06:27:46 -0700
Subject: Fixed GL* documentation. Moved common GL functions to GLBase. Moved
glAllocateMemoryNV to GL2GL3 only. Add GL2GL3 interface. Fix some GL2
signatures. BroadcomEGL disable custom setSize().
---
make/build-jogl.xml | 38 +++-
make/config/jogl/eglext.cfg | 2 +-
make/config/jogl/gl-common.cfg | 204 ++++++++-------------
make/config/jogl/gl-es1.cfg | 12 +-
make/config/jogl/gl-es2.cfg | 6 +-
make/config/jogl/gl-gl2-set.cfg | 13 ++
make/config/jogl/gl-gl2.cfg | 17 +-
make/config/jogl/gl-gl3.cfg | 9 +-
make/config/jogl/gl-if-gl.cfg | 2 +-
make/config/jogl/gl-if-gl2_es1.cfg | 10 +-
make/config/jogl/gl-if-gl2_es2.cfg | 4 +-
make/config/jogl/gl-if-gl2_gl3.cfg | 39 ++++
make/config/jogl/gl-impl-CustomJavaCode-gl2.java | 8 +
.../jogl/gl-impl-CustomJavaCode-gl2es12.java | 16 +-
make/config/jogl/gl-impl-CustomJavaCode-gl3.java | 8 +
make/config/jogl/gl-impl-CustomJavaCode-gles1.java | 16 +-
make/config/jogl/gl-impl-CustomJavaCode-gles2.java | 16 +-
make/config/jogl/glxext.cfg | 2 +-
make/doc/jogl/spec-overview.html | 13 +-
make/lsGL2toGL3_commons.sh | 4 +-
make/lsGL2toGL3_unique.sh | 16 ++
make/stub_includes/opengl/GL/glext.h | 8 +-
src/jogl/classes/javax/media/opengl/GLBase.java | 148 ++++++++++++++-
src/jogl/classes/javax/media/opengl/GLProfile.java | 14 +-
.../classes/javax/media/opengl/awt/GLJPanel.java | 30 +--
.../javafx/newt/opengl/broadcom/BCEGLWindow.java | 6 +-
26 files changed, 435 insertions(+), 226 deletions(-)
create mode 100644 make/config/jogl/gl-gl2-set.cfg
create mode 100644 make/config/jogl/gl-if-gl2_gl3.cfg
create mode 100644 make/lsGL2toGL3_unique.sh
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index 6a065a8e4..0f9a230a2 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -143,7 +143,7 @@
value="com/sun/opengl/impl/**/gl2/**"/>
+ value="javax/media/opengl/TraceGL2.* javax/media/opengl/DebugGL2.* javax/media/opengl/TraceGL2GL3.* javax/media/opengl/DebugGL2GL3.*"/>
@@ -637,6 +637,25 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -697,7 +716,7 @@
-
+
@@ -1797,17 +1821,17 @@
+ excludes="${java.part.gl2.dbg}, ${java.part.gl3.dbg}, ${java.part.glugl2}"/>
+ excludes="${java.part.gl2.dbg}, ${java.part.gl3.dbg}, ${java.part.glugl2}"/>
+ excludes="${java.part.gl2.dbg}, ${java.part.gl3.dbg}, ${java.part.glugl2}"/>
The basic interface to OpenGL, providing access to core
-ClassJavadoc GL * functionality up through the OpenGL 2.0 specification as well as
-ClassJavadoc GL * all vendor extensions.
-ClassJavadoc GL *
-ClassJavadoc GL * While the APIs for vendor extensions are unconditionally
-ClassJavadoc GL * exposed, the underlying functions may not be present. The method
-ClassJavadoc GL * {@link #isFunctionAvailable} should be used to query the
-ClassJavadoc GL * availability of any non-core function before it is used for the
-ClassJavadoc GL * first time; for example,
-ClassJavadoc GL * gl.isFunctionAvailable("glProgramStringARB")
. On
-ClassJavadoc GL * certain platforms (Windows in particular), the most "core"
-ClassJavadoc GL * functionality is only OpenGL 1.1, so in theory any routines first
-ClassJavadoc GL * exposed in OpenGL 1.2, 1.3, and 1.4, 1.5, or 2.0 as well as vendor
-ClassJavadoc GL * extensions should all be queried. Calling an unavailable function
-ClassJavadoc GL * will cause a {@link GLException} to be raised.
-ClassJavadoc GL *
-ClassJavadoc GL * {@link #isExtensionAvailable} may also be used to determine whether
-ClassJavadoc GL * a specific extension is available before calling the routines or
-ClassJavadoc GL * using the functionality it exposes: for example,
-ClassJavadoc GL * gl.isExtensionAvailable("GL_ARB_vertex_program");
.
-ClassJavadoc GL * However, in this case it is up to the end user to know which
-ClassJavadoc GL * routines or functionality are associated with which OpenGL
-ClassJavadoc GL * extensions. It may also be used to test for the availability of a
-ClassJavadoc GL * particular version of OpenGL: for example,
-ClassJavadoc GL * gl.isExtensionAvailable("GL_VERSION_1_5");
.
-ClassJavadoc GL *
-ClassJavadoc GL * Exceptions to the window system extension naming rules:
-ClassJavadoc GL *
-ClassJavadoc GL *
-ClassJavadoc GL *
-ClassJavadoc GL * - The memory allocators for the NVidia vertex_array_range (VAR)
-ClassJavadoc GL * extension, in particular
wglAllocateMemoryNV
/
-ClassJavadoc GL * glXAllocateMemoryNV
and associated routines. {@link
-ClassJavadoc GL * #glAllocateMemoryNV} has been provided for window system-independent
-ClassJavadoc GL * access to VAR. {@link #isFunctionAvailable} will translate an argument
-ClassJavadoc GL * of "glAllocateMemoryNV" or "glFreeMemoryNV" into the appropriate
-ClassJavadoc GL * window system-specific name.
-ClassJavadoc GL *
-ClassJavadoc GL * - WGL_ARB_pbuffer, WGL_ARB_pixel_format, and other
-ClassJavadoc GL * platform-specific pbuffer functionality; the availability of
-ClassJavadoc GL * pbuffers can be queried on Windows, X11 and Mac OS X platforms by
-ClassJavadoc GL * querying {@link #isExtensionAvailable} with an argument of
-ClassJavadoc GL * "GL_ARB_pbuffer" or "GL_ARB_pixel_format".
-ClassJavadoc GL *
-ClassJavadoc GL *
-ClassJavadoc GL *
+ClassJavadoc GL *
Common interface containing the subset of all profiles, GL3, GL2, GLES1 and GLES2.
+ClassJavadoc GL * This interface reflects common data types, texture and framebuffer functionality.
ClassJavadoc GL */
+ClassJavadoc GL2ES1 /**
+ClassJavadoc GL2ES1 *
+ClassJavadoc GL2ES1 * Interface containing the common subset of GL2 and GLES1.
+ClassJavadoc GL2ES1 * This interface reflects only the fixed functionality of OpenGL
+ClassJavadoc GL2ES1 *
+ClassJavadoc GL2ES1 */
+
+ClassJavadoc GL2ES2 /**
+ClassJavadoc GL2ES2 *
+ClassJavadoc GL2ES2 * Interface containing the common subset of GL3, GL2 and GLES2.
+ClassJavadoc GL2ES2 * This interface reflects only the programmable shader functionality of desktop and embedded OpenGL
+ClassJavadoc GL2ES2 *
+ClassJavadoc GL2ES2 */
+
+ClassJavadoc GL2GL3 /**
+ClassJavadoc GL2GL3 *
+ClassJavadoc GL2GL3 * Interface containing the common subset of GL3 and GL2.
+ClassJavadoc GL2GL3 * This interface reflects only the programmable shader functionality of desktop OpenGL
+ClassJavadoc GL2GL3 *
+ClassJavadoc GL2GL3 */
+
+ClassJavadoc GL2 /**
+ClassJavadoc GL2 *
+ClassJavadoc GL2 * This interface contains all core desktop OpenGL methods through
+ClassJavadoc GL2 * version 3.0, inclusive, as well as most of it's extensions defined at the
+ClassJavadoc GL2 * time of this specification. Early OpenGL extensions whose functionality
+ClassJavadoc GL2 * was incorporated into core OpenGL by version 2.0, inclusive, are specifically
+ClassJavadoc GL2 * excluded.
+ClassJavadoc GL2 *
+ClassJavadoc GL2 */
+
+ClassJavadoc GL3 /**
+ClassJavadoc GL3 *
+ClassJavadoc GL3 * This interface contains all core desktop OpenGL methods starting from 3.1,
+ClassJavadoc GL3 * inclusive - forward compatible only, as well as most of it's extensions defined at the
+ClassJavadoc GL3 * time of this specification.
+ClassJavadoc GL3 *
+ClassJavadoc GL3 */
+
+ClassJavadoc GLES1 /**
+ClassJavadoc GLES1 *
+ClassJavadoc GLES1 * This interface contains all core embedded OpenGL methods of ES 1.x, with x >= 0,
+ClassJavadoc GLES1 * inclusive, as well as most of it's extensions defined at the
+ClassJavadoc GLES1 * time of this specification.
+ClassJavadoc GLES1 *
+ClassJavadoc GLES1 */
+
+ClassJavadoc GLES2 /**
+ClassJavadoc GLES2 *
+ClassJavadoc GLES2 * This interface contains all core embedded OpenGL methods of ES 2.x, with x >= 0,
+ClassJavadoc GLES2 * inclusive, as well as most of it's extensions defined at the
+ClassJavadoc GLES2 * time of this specification.
+ClassJavadoc GLES2 *
+ClassJavadoc GLES2 */
+
+# Javadoc for the EGL class
+ClassJavadoc EGL /**
+ClassJavadoc EGL * Provides access to the embedded-specific OpenGL vendor extensions.
+ClassJavadoc EGL * See {@link GLBase} for more information.
+ClassJavadoc EGL */
+
# Javadoc for the WGL class
ClassJavadoc WGL /**
ClassJavadoc WGL * Provides access to the Windows-specific OpenGL vendor extensions.
-ClassJavadoc WGL * See {@link GL} for more information.
+ClassJavadoc WGL * See {@link GLBase} for more information.
ClassJavadoc WGL */
# Javadoc for the GLX class
ClassJavadoc GLX /**
ClassJavadoc GLX * Provides access to the X11-specific OpenGL vendor extensions.
-ClassJavadoc GLX * See {@link GL} for more information.
+ClassJavadoc GLX * See {@link GLBase} for more information.
ClassJavadoc GLX */
# Javadoc for the CGL class
ClassJavadoc CGL /**
ClassJavadoc CGL * Provides access to the MacOSX-specific OpenGL vendor extensions.
-ClassJavadoc CGL * See {@link GL} for more information.
+ClassJavadoc CGL * See {@link GLBase} for more information.
ClassJavadoc CGL */
# Javadoc for the XVisualInfo class
@@ -556,86 +573,9 @@ ClassJavadoc XVisualInfo */
# Custom code for querying extensions and exposing
# wglAllocateMemoryNV/glXAllocateMemoryNV
-CustomJavaCode GL /**
-CustomJavaCode GL * Returns true if the specified OpenGL core- or extension-function can be
-CustomJavaCode GL * used successfully through this GL instance given the current host (OpenGL
-CustomJavaCode GL * client) and display (OpenGL server) configuration.
-CustomJavaCode GL * By "successfully" we mean that the function is both callable
-CustomJavaCode GL * on the machine running the program and available on the current
-CustomJavaCode GL * display.
-CustomJavaCode GL *
-CustomJavaCode GL * In order to call a function successfully, the function must be both
-CustomJavaCode GL * callable on the machine running the program and available on
-CustomJavaCode GL * the display device that is rendering the output (note: on non-networked,
-CustomJavaCode GL * single-display machines these two conditions are identical; on networked and/or
-CustomJavaCode GL * multi-display machines this becomes more complicated). These conditions are
-CustomJavaCode GL * met if the function is either part of the core OpenGL version supported by
-CustomJavaCode GL * both the host and display, or it is an OpenGL extension function that both
-CustomJavaCode GL * the host and display support.
-CustomJavaCode GL *
-CustomJavaCode GL * A GL function is callable if it is successfully linked at runtime,
-CustomJavaCode GL * hence the GLContext must be made current at least once.
-CustomJavaCode GL *
-CustomJavaCode GL * @param glFunctionName the name of the OpenGL function (e.g., use
-CustomJavaCode GL * "glBindRenderbufferEXT" or "glBindRenderbuffer" to check if {@link
-CustomJavaCode GL * #glBindRenderbuffer(int,int)} is available).
-CustomJavaCode GL */
-CustomJavaCode GL public boolean isFunctionAvailable(String glFunctionName);
-
-CustomJavaCode GL /**
-CustomJavaCode GL * Returns true if the specified OpenGL extension can be
-CustomJavaCode GL * used successfully through this GL instance given the current host (OpenGL
-CustomJavaCode GL * client) and display (OpenGL server) configuration.
-CustomJavaCode GL *
-CustomJavaCode GL * @param glExtensionName the name of the OpenGL extension (e.g.,
-CustomJavaCode GL * "GL_ARB_vertex_program").
-CustomJavaCode GL */
-CustomJavaCode GL public boolean isExtensionAvailable(String glExtensionName);
-
-CustomJavaCode GL /**
-CustomJavaCode GL * Provides platform-independent access to the wglAllocateMemoryNV
/
-CustomJavaCode GL * glXAllocateMemoryNV
extension.
-CustomJavaCode GL */
-CustomJavaCode GL public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3);
-
-CustomJavaCode GL /** Provides a platform-independent way to specify the minimum swap
-CustomJavaCode GL interval for buffer swaps. An argument of 0 disables
-CustomJavaCode GL sync-to-vertical-refresh completely, while an argument of 1
-CustomJavaCode GL causes the application to wait until the next vertical refresh
-CustomJavaCode GL until swapping buffers. The default, which is platform-specific,
-CustomJavaCode GL is usually either 0 or 1. This function is not guaranteed to
-CustomJavaCode GL have an effect, and in particular only affects heavyweight
-CustomJavaCode GL onscreen components. */
-CustomJavaCode GL public void setSwapInterval(int interval);
-
-CustomJavaCode GL /**
-CustomJavaCode GL * Returns an object through which platform-specific OpenGL extensions
-CustomJavaCode GL * (WGL, GLX, etc.) may be accessed. The data type of the returned
-CustomJavaCode GL * object and its associated capabilities are undefined. Most
-CustomJavaCode GL * applications will never need to call this method. It is highly
-CustomJavaCode GL * recommended that any applications which do call this method perform
-CustomJavaCode GL * all accesses on the returned object reflectively to guard
-CustomJavaCode GL * themselves against changes to the implementation.
-CustomJavaCode GL */
-CustomJavaCode GL public Object getPlatformGLExtensions();
-
-CustomJavaCode GL /**
-CustomJavaCode GL * Returns an object providing access to the specified OpenGL
-CustomJavaCode GL * extension. This is intended to provide a mechanism for vendors who
-CustomJavaCode GL * which to provide access to new OpenGL extensions without changing
-CustomJavaCode GL * the public API of the core package. For example, a user may request
-CustomJavaCode GL * access to extension "GL_VENDOR_foo" and receive back an object
-CustomJavaCode GL * which implements a vendor-specified interface which can call the
-CustomJavaCode GL * OpenGL extension functions corresponding to that extension. It is
-CustomJavaCode GL * up to the vendor to specify both the extension name and Java API
-CustomJavaCode GL * for accessing it, including which class or interface contains the
-CustomJavaCode GL * functions.
-CustomJavaCode GL *
-CustomJavaCode GL *
-CustomJavaCode GL *
-CustomJavaCode GL * Note: it is the intent to add new extensions as quickly as possible
-CustomJavaCode GL * to the core GL API. Therefore it is unlikely that most vendors will
-CustomJavaCode GL * use this extension mechanism, but it is being provided for
-CustomJavaCode GL * completeness.
-CustomJavaCode GL */
-CustomJavaCode GL public Object getExtension(String extensionName);
+CustomJavaCode GL2GL3 /**
+CustomJavaCode GL2GL3 * Provides platform-independent access to the wglAllocateMemoryNV
/
+CustomJavaCode GL2GL3 * glXAllocateMemoryNV
extension.
+CustomJavaCode GL2GL3 */
+CustomJavaCode GL2GL3 public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3);
+
diff --git a/make/config/jogl/gl-es1.cfg b/make/config/jogl/gl-es1.cfg
index 02aae2860..35ea7f0ce 100755
--- a/make/config/jogl/gl-es1.cfg
+++ b/make/config/jogl/gl-es1.cfg
@@ -2,12 +2,12 @@
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/es1
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java
# There are a few routines we don't handle yet
Ignore glGetBufferPointervOES
diff --git a/make/config/jogl/gl-es2.cfg b/make/config/jogl/gl-es2.cfg
index 244f1944f..6a81c9376 100755
--- a/make/config/jogl/gl-es2.cfg
+++ b/make/config/jogl/gl-es2.cfg
@@ -2,9 +2,9 @@
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/es2
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
Package javax.media.opengl
Style InterfaceAndImpl
diff --git a/make/config/jogl/gl-gl2-set.cfg b/make/config/jogl/gl-gl2-set.cfg
new file mode 100644
index 000000000..bce9cc731
--- /dev/null
+++ b/make/config/jogl/gl-gl2-set.cfg
@@ -0,0 +1,13 @@
+# This .cfg file is used to generate the GL interface and implementing class.
+JavaOutputDir ../../build-temp/gluegen-set
+
+Package javax.media.opengl
+Style InterfaceOnly
+JavaClass GL2Set
+Include gl-common-gl2.cfg
+Include gl-common-extensions.cfg
+Include gl-desktop.cfg
+
+EmitProcAddressTable false
+ProcAddressTableClassName DontGenerateProcAddressTableStuff
+GetProcAddressTableExpr DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-gl2.cfg
index 8dfe76758..55f5b9781 100644
--- a/make/config/jogl/gl-gl2.cfg
+++ b/make/config/jogl/gl-gl2.cfg
@@ -2,13 +2,14 @@
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/gl2
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.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
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java
Package javax.media.opengl
Style InterfaceAndImpl
@@ -17,12 +18,14 @@ Extends GL2 GLBase
Extends GL2 GL
Extends GL2 GL2ES1
Extends GL2 GL2ES2
+Extends GL2 GL2GL3
ImplPackage com.sun.opengl.impl.gl2
ImplJavaClass GL2Impl
Implements GL2Impl GLBase
Implements GL2Impl GL
Implements GL2Impl GL2ES1
Implements GL2Impl GL2ES2
+Implements GL2Impl GL2GL3
Include gl-common-gl2.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
diff --git a/make/config/jogl/gl-gl3.cfg b/make/config/jogl/gl-gl3.cfg
index 2b521e30a..c5354cba4 100644
--- a/make/config/jogl/gl-gl3.cfg
+++ b/make/config/jogl/gl-gl3.cfg
@@ -2,9 +2,10 @@
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/gl3
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
+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
@@ -12,11 +13,13 @@ JavaClass GL3
Extends GL3 GLBase
Extends GL3 GL
Extends GL3 GL2ES2
+Extends GL3 GL2GL3
ImplPackage com.sun.opengl.impl.gl3
ImplJavaClass GL3Impl
Implements GL3Impl GLBase
Implements GL3Impl GL
Implements GL3Impl GL2ES2
+Implements GL3Impl GL2GL3
Include gl-common-gl2.cfg
Include gl-common-extensions.cfg
Include gl3-desktop.cfg
diff --git a/make/config/jogl/gl-if-gl.cfg b/make/config/jogl/gl-if-gl.cfg
index 46e11fdd4..1bba846e7 100755
--- a/make/config/jogl/gl-if-gl.cfg
+++ b/make/config/jogl/gl-if-gl.cfg
@@ -4,7 +4,7 @@ Style InterfaceOnly
JavaClass GL
Extends GL GLBase
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
HierarchicalNativeOutput false
Include gl-common.cfg
diff --git a/make/config/jogl/gl-if-gl2_es1.cfg b/make/config/jogl/gl-if-gl2_es1.cfg
index d09ebcb30..6fe6b4b90 100755
--- a/make/config/jogl/gl-if-gl2_es1.cfg
+++ b/make/config/jogl/gl-if-gl2_es1.cfg
@@ -8,11 +8,11 @@ Extends GL2ES1 GLMatrixFunc
Extends GL2ES1 GLPointerFunc
Extends GL2ES1 GLLightingFunc
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java
HierarchicalNativeOutput false
Include gl-common.cfg
diff --git a/make/config/jogl/gl-if-gl2_es2.cfg b/make/config/jogl/gl-if-gl2_es2.cfg
index 5345c3ba1..63f96d906 100755
--- a/make/config/jogl/gl-if-gl2_es2.cfg
+++ b/make/config/jogl/gl-if-gl2_es2.cfg
@@ -5,8 +5,8 @@ JavaClass GL2ES2
Extends GL2ES2 GLBase
Extends GL2ES2 GL
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java
-ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
diff --git a/make/config/jogl/gl-if-gl2_gl3.cfg b/make/config/jogl/gl-if-gl2_gl3.cfg
new file mode 100644
index 000000000..0afe5d5b5
--- /dev/null
+++ b/make/config/jogl/gl-if-gl2_gl3.cfg
@@ -0,0 +1,39 @@
+# This .cfg file is used to generate the GL interface and implementing class.
+Package javax.media.opengl
+Style InterfaceOnly
+JavaClass GL2GL3
+Extends GL2GL3 GLBase
+Extends GL2GL3 GL
+Extends GL2GL3 GL2ES2
+
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
+ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
+
+ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL2Set.java
+
+HierarchicalNativeOutput false
+Include gl-common.cfg
+Include gl-common-extensions.cfg
+
+JavaOutputDir gensrc/classes
+NativeOutputDir gensrc/native/jogl
+
+#
+# Same name but different signature ..
+#
+# No collisions found .. good!
+
+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 GL3/gl3.h
+GLHeader GL3/gl3ext.h
+
+# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
+TagNativeBinding true
+
+Import java.io.PrintStream
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
index b3410040b..5aec51fc7 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
@@ -53,6 +53,10 @@ public final boolean isGL2ES2() {
return true;
}
+public final boolean isGL2GL3() {
+ return true;
+}
+
public final boolean hasGLSL() {
return true;
}
@@ -85,6 +89,10 @@ public final GL2ES2 getGL2ES2() throws GLException {
return this;
}
+public final GL2GL3 getGL2GL3() throws GLException {
+ return this;
+}
+
public boolean isFunctionAvailable(String glFunctionName) {
return _context.isFunctionAvailable(glFunctionName);
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
index d7b3de789..cb4cab175 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
@@ -56,6 +56,10 @@ public final boolean isGL2ES2() {
return isGL2ES2;
}
+public final boolean isGL2GL3() {
+ return false;
+}
+
public final boolean hasGLSL() {
return isGL2ES2;
}
@@ -94,6 +98,10 @@ public final GL2ES2 getGL2ES2() throws GLException {
throw new GLException("Not a GL2ES2 implementation");
}
+public final GL2GL3 getGL2GL3() throws GLException {
+ throw new GLException("Not a GL2GL3 implementation");
+}
+
public boolean isFunctionAvailable(String glFunctionName) {
return _context.isFunctionAvailable(glFunctionName);
}
@@ -115,14 +123,6 @@ public GLContext getContext() {
private GLContextImpl _context;
-/**
- * Provides platform-independent access to the wglAllocateMemoryNV /
- * glXAllocateMemoryNV extension.
- */
-public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) {
- return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3);
-}
-
public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java
index aa1ef6575..a15964bcc 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java
@@ -53,6 +53,10 @@ public final boolean isGL2ES2() {
return true;
}
+public final boolean isGL2GL3() {
+ return true;
+}
+
public final boolean hasGLSL() {
return true;
}
@@ -85,6 +89,10 @@ public final GL2ES2 getGL2ES2() throws GLException {
return this;
}
+public final GL2GL3 getGL2GL3() throws GLException {
+ return this;
+}
+
public boolean isFunctionAvailable(String glFunctionName) {
return _context.isFunctionAvailable(glFunctionName);
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
index d349f8018..5141376df 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
@@ -36,6 +36,10 @@ public final boolean isGL2ES2() {
return false;
}
+public final boolean isGL2GL3() {
+ return false;
+}
+
public final boolean hasGLSL() {
return false;
}
@@ -68,6 +72,10 @@ public final GL2ES2 getGL2ES2() throws GLException {
throw new GLException("Not a GL2ES2 implementation");
}
+public final GL2GL3 getGL2GL3() throws GLException {
+ throw new GLException("Not a GL2GL3 implementation");
+}
+
public boolean isFunctionAvailable(String glFunctionName) {
return _context.isFunctionAvailable(glFunctionName);
}
@@ -89,14 +97,6 @@ public GLContext getContext() {
private GLContextImpl _context;
-/**
- * Provides platform-independent access to the wglAllocateMemoryNV /
- * glXAllocateMemoryNV extension.
- */
-public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) {
- return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3);
-}
-
public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
index 28edd7a63..b53715ae0 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
@@ -40,6 +40,10 @@ public final boolean isGL2ES2() {
return true;
}
+public final boolean isGL2GL3() {
+ return false;
+}
+
public final boolean hasGLSL() {
return true;
}
@@ -72,6 +76,10 @@ public final GL2ES2 getGL2ES2() throws GLException {
return this;
}
+public final GL2GL3 getGL2GL3() throws GLException {
+ throw new GLException("Not a GL2GL3 implementation");
+}
+
public boolean isFunctionAvailable(String glFunctionName) {
return _context.isFunctionAvailable(glFunctionName);
}
@@ -93,14 +101,6 @@ public GLContext getContext() {
private GLContextImpl _context;
-/**
- * Provides platform-independent access to the wglAllocateMemoryNV /
- * glXAllocateMemoryNV extension.
- */
-public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) {
- return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3);
-}
-
public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
diff --git a/make/config/jogl/glxext.cfg b/make/config/jogl/glxext.cfg
index 9688a9436..ea4b6fe47 100755
--- a/make/config/jogl/glxext.cfg
+++ b/make/config/jogl/glxext.cfg
@@ -9,7 +9,7 @@ JavaClass GLXExt
ImplPackage com.sun.opengl.impl.x11.glx
ImplJavaClass GLXExtImpl
-ExtendedInterfaceSymbols ../build-temp/gensrc/classes/com/sun/opengl/impl/x11/glx/GLX.java
+ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/sun/opengl/impl/x11/glx/GLX.java
Include gl-common-gl2.cfg
Include gl-desktop.cfg
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index 11074e601..4ee902719 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -11,7 +11,7 @@
This specification, an optional set of packages, describes the Java(TM)
bindings to the native OpenGL(R) 3D graphics library profiles:
- - Desktop OpenGL 1.x, 2.y and 3.0, with x >= 5 and y >= 0
+ - Desktop OpenGL 1.x, 2.y and 3.0, with x >= 3 and y >= 0
- Desktop OpenGL 3.x, with x >= 1
- Embedded OpenGL ES 1.x, with x >= 0
- Embedded OpenGL ES 2.x, with x >= 0
@@ -60,7 +60,7 @@ excluded.
- {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
This interface contains all core desktop OpenGL methods starting from 3.1,
-inclusive, as well as most of it's extensions defined at the
+inclusive - forward compatible only, as well as most of it's extensions defined at the
time of this specification.
Future extensions will be added with a maintenance update
@@ -101,7 +101,12 @@ time of this specification.
- {@link javax.media.opengl.GL2ES2 javax.media.opengl.GL2ES2} interface
Interface containing the common subset of GL3, GL2 and GLES2.
- This interface reflects only the programmable shader functionality of OpenGL
+ This interface reflects only the programmable shader functionality of desktop and embedded OpenGL
+
+ - {@link javax.media.opengl.GL2GL3 javax.media.opengl.GL2GL3} interface
+
+ Interface containing the common subset of GL3 and GL2.
+ This interface reflects only the programmable shader functionality of desktop OpenGL
@@ -500,7 +505,7 @@ http://www.khronos.org/registry/gles/
Proposed Final Draft Review, February/March 2006
1.0.0 Final Release, September 2006
1.1.0 Maintenance Release, April 2007
- 1.2.0 Maintenance Release, June 2009
+ 2.0.0 Maintenance Release, July 2009
diff --git a/make/lsGL2toGL3_commons.sh b/make/lsGL2toGL3_commons.sh
index cccfa734c..7f2a276de 100644
--- a/make/lsGL2toGL3_commons.sh
+++ b/make/lsGL2toGL3_commons.sh
@@ -10,7 +10,7 @@ fi
idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
echo GL2 to GL3 enums
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java | uniq -d | grep GL_ | awk ' { print $5 } '
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -d | grep GL_ | awk ' { print $5 } '
echo GL2 to GL3 functions
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java | uniq -d | grep "public [a-z0-9_]* gl"
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -d | grep "public [a-z0-9_]* gl"
diff --git a/make/lsGL2toGL3_unique.sh b/make/lsGL2toGL3_unique.sh
new file mode 100644
index 000000000..20d821332
--- /dev/null
+++ b/make/lsGL2toGL3_unique.sh
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+BUILDDIR=$1
+shift
+if [ -z "$BUILDDIR" ] ; then
+ echo "usage $0 "
+ exit 1
+fi
+
+idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
+
+echo GL2 to GL3 enums
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -u | grep GL_ | awk ' { print $5 } '
+
+echo GL2 to GL3 functions
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -u | grep "public [a-z0-9_]* gl"
diff --git a/make/stub_includes/opengl/GL/glext.h b/make/stub_includes/opengl/GL/glext.h
index e6c6fab40..1016638dd 100644
--- a/make/stub_includes/opengl/GL/glext.h
+++ b/make/stub_includes/opengl/GL/glext.h
@@ -4475,7 +4475,7 @@ GLAPI void APIENTRY glEndTransformFeedback (void);
GLAPI void APIENTRY glBindBufferRange (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
GLAPI void APIENTRY glBindBufferBase (GLenum, GLuint, GLuint);
GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint, GLsizei, const GLchar **, GLenum);
-GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLint *);
+GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
GLAPI void APIENTRY glClampColor (GLenum, GLenum);
GLAPI void APIENTRY glBeginConditionalRender (GLuint, GLenum);
GLAPI void APIENTRY glEndConditionalRender (void);
@@ -4534,7 +4534,7 @@ typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
-typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLint *location);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void);
@@ -5255,10 +5255,10 @@ typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divi
#ifndef GL_ARB_map_buffer_range
#define GL_ARB_map_buffer_range 1
#ifdef GL_GLEXT_PROTOTYPES
-GLAPI void APIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield);
+GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield);
GLAPI void APIENTRY glFlushMappedBufferRange (GLenum, GLintptr, GLsizeiptr);
#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
#endif
diff --git a/src/jogl/classes/javax/media/opengl/GLBase.java b/src/jogl/classes/javax/media/opengl/GLBase.java
index efd2eedd1..7b59344cc 100644
--- a/src/jogl/classes/javax/media/opengl/GLBase.java
+++ b/src/jogl/classes/javax/media/opengl/GLBase.java
@@ -7,9 +7,53 @@ package javax.media.opengl;
import java.nio.*;
/**
- * The base interface from which all GL profiles derive, providing
- * checked conversion down to concrete profiles, and access to the
- * OpenGL context associated with the GL.
+ * The base interface from which all GL profiles derive, providing
+ * checked conversion down to concrete profiles, access to the
+ * OpenGL context associated with the GL and extension/function
+ * availability queries as described below.
+ *
+ * While the APIs for vendor extensions are unconditionally
+ * exposed, the underlying functions may not be present. The method
+ * {@link #isFunctionAvailable} should be used to query the
+ * availability of any non-core function before it is used for the
+ * first time; for example,
+ * gl.isFunctionAvailable("glProgramStringARB")
. On
+ * certain platforms (Windows in particular), the most "core"
+ * functionality is only OpenGL 1.1, so in theory any routines first
+ * exposed in OpenGL 1.2, 1.3, and 1.4, 1.5, or 2.0 as well as vendor
+ * extensions should all be queried. Calling an unavailable function
+ * will cause a {@link GLException} to be raised.
+ *
+ * {@link #isExtensionAvailable} may also be used to determine whether
+ * a specific extension is available before calling the routines or
+ * using the functionality it exposes: for example,
+ * gl.isExtensionAvailable("GL_ARB_vertex_program");
.
+ * However, in this case it is up to the end user to know which
+ * routines or functionality are associated with which OpenGL
+ * extensions. It may also be used to test for the availability of a
+ * particular version of OpenGL: for example,
+ * gl.isExtensionAvailable("GL_VERSION_1_5");
.
+ *
+ * Exceptions to the window system extension naming rules:
+ *
+ *
+ *
+ * - The memory allocators for the NVidia vertex_array_range (VAR)
+ * extension, in particular
wglAllocateMemoryNV
/
+ * glXAllocateMemoryNV
and associated routines. {@link
+ * #glAllocateMemoryNV} has been provided for window system-independent
+ * access to VAR. {@link #isFunctionAvailable} will translate an argument
+ * of "glAllocateMemoryNV" or "glFreeMemoryNV" into the appropriate
+ * window system-specific name.
+ *
+ * - WGL_ARB_pbuffer, WGL_ARB_pixel_format, and other
+ * platform-specific pbuffer functionality; the availability of
+ * pbuffers can be queried on Windows, X11 and Mac OS X platforms by
+ * querying {@link #isExtensionAvailable} with an argument of
+ * "GL_ARB_pbuffer" or "GL_ARB_pixel_format".
+ *
+ *
+ *
*/
public interface GLBase {
@@ -63,6 +107,12 @@ public interface GLBase {
*/
public boolean isGL2ES2();
+ /**
+ * Indicates whether this GL object conforms to the GL2GL3 compatible profile.
+ * @return whether this GL object conforms to the GL2GL3 profile
+ */
+ public boolean isGL2GL3();
+
/** Indicates whether this GL object supports GLSL. */
public boolean hasGLSL();
@@ -116,14 +166,100 @@ public interface GLBase {
public GL2ES2 getGL2ES2() throws GLException;
/**
- * Returns the GLContext with which this GL object is associated.
- * @return the GLContext with which this GL object is associated
+ * Casts this object to the GL2GL3 interface.
+ * @return this object cast to the GL2GL3 interface
+ * @throws GLException if this GLObject is not a GL2GL3 implementation
*/
- public GLContext getContext();
+ public GL2GL3 getGL2GL3() throws GLException;
/**
* Returns the GLProfile with which this GL object is associated.
* @return the GLProfile with which this GL object is associated
*/
public GLProfile getGLProfile();
+
+ /**
+ * Returns the GLContext with which this GL object is associated.
+ * @return the GLContext with which this GL object is associated
+ */
+ public GLContext getContext();
+
+ /**
+ * Returns true if the specified OpenGL core- or extension-function can be
+ * used successfully through this GL instance given the current host (OpenGL
+ * client) and display (OpenGL server) configuration.
+ * By "successfully" we mean that the function is both callable
+ * on the machine running the program and available on the current
+ * display.
+ *
+ * In order to call a function successfully, the function must be both
+ * callable on the machine running the program and available on
+ * the display device that is rendering the output (note: on non-networked,
+ * single-display machines these two conditions are identical; on networked and/or
+ * multi-display machines this becomes more complicated). These conditions are
+ * met if the function is either part of the core OpenGL version supported by
+ * both the host and display, or it is an OpenGL extension function that both
+ * the host and display support.
+ *
+ * A GL function is callable if it is successfully linked at runtime,
+ * hence the GLContext must be made current at least once.
+ *
+ * @param glFunctionName the name of the OpenGL function (e.g., use
+ * "glBindRenderbufferEXT" or "glBindRenderbuffer" to check if {@link
+ * #glBindRenderbuffer(int,int)} is available).
+ */
+ public boolean isFunctionAvailable(String glFunctionName);
+
+ /**
+ * Returns true if the specified OpenGL extension can be
+ * used successfully through this GL instance given the current host (OpenGL
+ * client) and display (OpenGL server) configuration.
+ *
+ * @param glExtensionName the name of the OpenGL extension (e.g.,
+ * "GL_ARB_vertex_program").
+ */
+ public boolean isExtensionAvailable(String glExtensionName);
+
+ /** Provides a platform-independent way to specify the minimum swap
+ interval for buffer swaps. An argument of 0 disables
+ sync-to-vertical-refresh completely, while an argument of 1
+ causes the application to wait until the next vertical refresh
+ until swapping buffers. The default, which is platform-specific,
+ is usually either 0 or 1. This function is not guaranteed to
+ have an effect, and in particular only affects heavyweight
+ onscreen components. */
+ public void setSwapInterval(int interval);
+
+ /**
+ * Returns an object through which platform-specific OpenGL extensions
+ * (EGL, GLX, WGL, etc.) may be accessed. The data type of the returned
+ * object and its associated capabilities are undefined. Most
+ * applications will never need to call this method. It is highly
+ * recommended that any applications which do call this method perform
+ * all accesses on the returned object reflectively to guard
+ * themselves against changes to the implementation.
+ */
+ public Object getPlatformGLExtensions();
+
+ /**
+ * Returns an object providing access to the specified OpenGL
+ * extension. This is intended to provide a mechanism for vendors who
+ * wish to provide access to new OpenGL extensions without changing
+ * the public API of the core package. For example, a user may request
+ * access to extension "GL_VENDOR_foo" and receive back an object
+ * which implements a vendor-specified interface which can call the
+ * OpenGL extension functions corresponding to that extension. It is
+ * up to the vendor to specify both the extension name and Java API
+ * for accessing it, including which class or interface contains the
+ * functions.
+ *
+ *
+ *
+ * Note: it is the intent to add new extensions as quickly as possible
+ * to the core GL API. Therefore it is unlikely that most vendors will
+ * use this extension mechanism, but it is being provided for
+ * completeness.
+ */
+ public Object getExtension(String extensionName);
}
+
diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java
index 6dab57469..8b23bed04 100644
--- a/src/jogl/classes/javax/media/opengl/GLProfile.java
+++ b/src/jogl/classes/javax/media/opengl/GLProfile.java
@@ -78,10 +78,13 @@ public class GLProfile implements Cloneable {
/** The intersection of the desktop GL3, GL2 and embedded ES2 profile */
public static final String GL2ES2 = "GL2ES2";
+ /** The intersection of the desktop GL3 and GL2 profile */
+ public static final String GL2GL3 = "GL2GL3";
+
/**
- * All GL Profiles in the order of default detection: GL2, GL2ES2, GL2ES1, GLES2, GLES1, GL3
+ * All GL Profiles in the order of default detection: GL2, GL2ES2, GL2ES1, GLES2, GLES1, GL2GL3, GL3
*/
- public static final String[] GL_PROFILE_LIST_ALL = new String[] { GL2, GL2ES2, GL2ES1, GLES2, GLES1, GL3 };
+ public static final String[] GL_PROFILE_LIST_ALL = new String[] { GL2, GL2ES2, GL2ES1, GLES2, GLES1, GL2GL3, GL3 };
/**
* All GL2ES2 Profiles in the order of default detection: GL2ES2, GL2, GLES2, GL3
@@ -273,6 +276,11 @@ public class GLProfile implements Cloneable {
return GL2ES2.equals(profile) || isGL2() || isGL3() || isGLES2() ;
}
+ /** Indicates whether this profile is capable os GL2GL3. */
+ public final boolean isGL2GL3() {
+ return GL2GL3.equals(profile) || isGL2() || isGL3() ;
+ }
+
/** Indicates whether this profile uses the native OpenGL ES1 implementations. */
public final boolean usesNativeGLES1() {
return GLES1.equals(profileImpl) || GL2ES1.equals(profileImpl) ;
@@ -781,6 +789,8 @@ public class GLProfile implements Cloneable {
return GL3;
} else if(GL2.equals(profile) && hasGL2Impl) {
return GL2;
+ } else if(GL2GL3.equals(profile) && hasGL2Impl) {
+ return GL2;
} else if(GLES2.equals(profile) && hasGLES2Impl) {
return GLES2;
} else if(GLES1.equals(profile) && hasGLES1Impl) {
diff --git a/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java b/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java
index dd2a487e7..7b942b358 100644
--- a/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java
+++ b/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java
@@ -1322,16 +1322,16 @@ public class GLJPanel extends JPanel implements AWTGLAutoDrawable {
" with width " + width[0] + ", height " + height[0]);
}
- gl.glBindRenderbuffer(GL2.GL_RENDERBUFFER, frameBufferDepthBuffer[0]);
+ gl.glBindRenderbuffer(GL.GL_RENDERBUFFER, frameBufferDepthBuffer[0]);
// FIXME: may need a loop here like in Java2D
- gl.glRenderbufferStorage(GL2.GL_RENDERBUFFER, GL2.GL_DEPTH_COMPONENT24, width[0], height[0]);
+ gl.glRenderbufferStorage(GL.GL_RENDERBUFFER, GL2GL3.GL_DEPTH_COMPONENT24, width[0], height[0]);
gl.glBindRenderbuffer(GL2.GL_RENDERBUFFER, 0);
createNewDepthBuffer = false;
}
gl.glBindTexture(fboTextureTarget, 0);
- gl.glBindFramebuffer(GL2.GL_FRAMEBUFFER, frameBuffer[0]);
+ gl.glBindFramebuffer(GL.GL_FRAMEBUFFER, frameBuffer[0]);
if (fbObjectWorkarounds) {
// Hook up the color and depth buffer attachment points for this framebuffer
@@ -1435,29 +1435,29 @@ public class GLJPanel extends JPanel implements AWTGLAutoDrawable {
j2dContext.makeCurrent();
GL gl = j2dContext.getGL();
- if ((getGLInteger(gl, GL2.GL_RED_BITS) < offscreenCaps.getRedBits()) ||
- (getGLInteger(gl, GL2.GL_GREEN_BITS) < offscreenCaps.getGreenBits()) ||
- (getGLInteger(gl, GL2.GL_BLUE_BITS) < offscreenCaps.getBlueBits()) ||
- // (getGLInteger(gl, GL2.GL_ALPHA_BITS) < offscreenCaps.getAlphaBits()) ||
+ if ((getGLInteger(gl, GL.GL_RED_BITS) < offscreenCaps.getRedBits()) ||
+ (getGLInteger(gl, GL.GL_GREEN_BITS) < offscreenCaps.getGreenBits()) ||
+ (getGLInteger(gl, GL.GL_BLUE_BITS) < offscreenCaps.getBlueBits()) ||
+ // (getGLInteger(gl, GL.GL_ALPHA_BITS) < offscreenCaps.getAlphaBits()) ||
(getGLInteger(gl, GL2.GL_ACCUM_RED_BITS) < offscreenCaps.getAccumRedBits()) ||
(getGLInteger(gl, GL2.GL_ACCUM_GREEN_BITS) < offscreenCaps.getAccumGreenBits()) ||
(getGLInteger(gl, GL2.GL_ACCUM_BLUE_BITS) < offscreenCaps.getAccumBlueBits()) ||
(getGLInteger(gl, GL2.GL_ACCUM_ALPHA_BITS) < offscreenCaps.getAccumAlphaBits()) ||
// (getGLInteger(gl, GL2.GL_DEPTH_BITS) < offscreenCaps.getDepthBits()) ||
- (getGLInteger(gl, GL2.GL_STENCIL_BITS) < offscreenCaps.getStencilBits())) {
+ (getGLInteger(gl, GL.GL_STENCIL_BITS) < offscreenCaps.getStencilBits())) {
if (DEBUG) {
System.err.println("GLJPanel: Falling back to pbuffer-based support because Java2D context insufficient");
System.err.println(" Available Required");
- System.err.println("GL_RED_BITS " + getGLInteger(gl, GL2.GL_RED_BITS) + " " + offscreenCaps.getRedBits());
- System.err.println("GL_GREEN_BITS " + getGLInteger(gl, GL2.GL_GREEN_BITS) + " " + offscreenCaps.getGreenBits());
- System.err.println("GL_BLUE_BITS " + getGLInteger(gl, GL2.GL_BLUE_BITS) + " " + offscreenCaps.getBlueBits());
- System.err.println("GL_ALPHA_BITS " + getGLInteger(gl, GL2.GL_ALPHA_BITS) + " " + offscreenCaps.getAlphaBits());
+ System.err.println("GL_RED_BITS " + getGLInteger(gl, GL.GL_RED_BITS) + " " + offscreenCaps.getRedBits());
+ System.err.println("GL_GREEN_BITS " + getGLInteger(gl, GL.GL_GREEN_BITS) + " " + offscreenCaps.getGreenBits());
+ System.err.println("GL_BLUE_BITS " + getGLInteger(gl, GL.GL_BLUE_BITS) + " " + offscreenCaps.getBlueBits());
+ System.err.println("GL_ALPHA_BITS " + getGLInteger(gl, GL.GL_ALPHA_BITS) + " " + offscreenCaps.getAlphaBits());
System.err.println("GL_ACCUM_RED_BITS " + getGLInteger(gl, GL2.GL_ACCUM_RED_BITS) + " " + offscreenCaps.getAccumRedBits());
System.err.println("GL_ACCUM_GREEN_BITS " + getGLInteger(gl, GL2.GL_ACCUM_GREEN_BITS) + " " + offscreenCaps.getAccumGreenBits());
System.err.println("GL_ACCUM_BLUE_BITS " + getGLInteger(gl, GL2.GL_ACCUM_BLUE_BITS) + " " + offscreenCaps.getAccumBlueBits());
System.err.println("GL_ACCUM_ALPHA_BITS " + getGLInteger(gl, GL2.GL_ACCUM_ALPHA_BITS) + " " + offscreenCaps.getAccumAlphaBits());
- System.err.println("GL_DEPTH_BITS " + getGLInteger(gl, GL2.GL_DEPTH_BITS) + " " + offscreenCaps.getDepthBits());
- System.err.println("GL_STENCIL_BITS " + getGLInteger(gl, GL2.GL_STENCIL_BITS) + " " + offscreenCaps.getStencilBits());
+ System.err.println("GL_DEPTH_BITS " + getGLInteger(gl, GL.GL_DEPTH_BITS) + " " + offscreenCaps.getDepthBits());
+ System.err.println("GL_STENCIL_BITS " + getGLInteger(gl, GL.GL_STENCIL_BITS) + " " + offscreenCaps.getStencilBits());
}
isInitialized = false;
backend = null;
@@ -1587,7 +1587,7 @@ public class GLJPanel extends JPanel implements AWTGLAutoDrawable {
if (!checkedGLVendor) {
checkedGLVendor = true;
- String vendor = gl.glGetString(GL2.GL_VENDOR);
+ String vendor = gl.glGetString(GL.GL_VENDOR);
if ((vendor != null) &&
vendor.startsWith("ATI")) {
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
index c8436b928..10e70baa0 100755
--- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
@@ -56,7 +56,7 @@ public class BCEGLWindow extends Window {
if (config == null) {
throw new NativeWindowException("Error choosing GraphicsConfiguration creating window: "+this);
}
- setSize(getScreen().getWidth(), getScreen().getHeight());
+ setSizeImpl(getScreen().getWidth(), getScreen().getHeight());
}
protected void closeNative() {
@@ -79,6 +79,10 @@ public class BCEGLWindow extends Window {
}
public void setSize(int width, int height) {
+ System.err.println("setSize "+width+"x"+height+" n/a in BroadcomEGL");
+ }
+
+ void setSizeImpl(int width, int height) {
if(0!=windowHandle) {
// n/a in BroadcomEGL
System.err.println("setSize n/a in BroadcomEGL with realized window");
--
cgit v1.2.3
From fdd78c172dfb76ba868359b359e344eaaf08d6f8 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Wed, 29 Jul 2009 06:47:31 -0700
Subject: Remove redundant getGLProfile() from GL interface
---
make/config/jogl/gl-if-CustomJavaCode-gl.java | 2 --
1 file changed, 2 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl.java b/make/config/jogl/gl-if-CustomJavaCode-gl.java
index 28d24c072..c5ce8d9a6 100644
--- a/make/config/jogl/gl-if-CustomJavaCode-gl.java
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl.java
@@ -1,6 +1,4 @@
- public GLProfile getGLProfile();
-
public void glClearDepth( double depth );
public void glDepthRange(double zNear, double zFar);
--
cgit v1.2.3
From 8883fa885e68cd21e8b8cd3343db0580913aebdf Mon Sep 17 00:00:00 2001
From: sg215889
Date: Wed, 29 Jul 2009 09:49:33 -0700
Subject: Fix: doxygen-all-pub.cfg; Add NativeWindow: surfaceSwap() and
surfaceUpdated(); BroadcomEGL: Use custom surfaceSwap(); GLDrawableImpl's:
Utilize NativeWindow's surfaceSwap() and surfaceUpdated(); Fix common enum of
GL2ES1 and GL2GL3, merge them in GL
---
doc/TODO.txt | 11 ----
doxygen/doxygen-all-pub.cfg | 2 +-
make/config/jogl/gl-if-CustomJavaCode-gl.java | 37 +++++++++++++
make/lsGL23toGL2ES1_commons.sh | 18 +++++++
.../com/sun/opengl/impl/GLDrawableImpl.java | 9 ++++
.../sun/opengl/impl/egl/EGLOnscreenDrawable.java | 2 +-
.../sun/opengl/impl/egl/EGLPbufferDrawable.java | 1 +
.../impl/macosx/cgl/MacOSXOnscreenCGLContext.java | 2 +-
.../impl/macosx/cgl/MacOSXOnscreenCGLDrawable.java | 2 +-
.../impl/macosx/cgl/MacOSXPbufferCGLDrawable.java | 2 +-
.../windows/wgl/WindowsOffscreenWGLDrawable.java | 2 +-
.../windows/wgl/WindowsPbufferWGLDrawable.java | 2 +-
.../impl/windows/wgl/WindowsWGLDrawable.java | 63 +++++++++++-----------
.../sun/opengl/impl/x11/glx/X11GLXDrawable.java | 31 +++++------
.../impl/x11/glx/X11OffscreenGLXDrawable.java | 2 +-
.../opengl/impl/x11/glx/X11PbufferGLXDrawable.java | 2 +-
.../com/sun/nativewindow/impl/NullWindow.java | 6 +++
.../com/sun/nativewindow/impl/jawt/JAWTWindow.java | 6 +++
.../javax/media/nativewindow/NativeWindow.java | 18 +++++++
src/newt/classes/com/sun/javafx/newt/Window.java | 6 +++
.../com/sun/javafx/newt/opengl/GLWindow.java | 13 +++++
.../javafx/newt/opengl/broadcom/BCEGLWindow.java | 13 ++++-
src/newt/native/BroadcomEGL.c | 17 ++++--
23 files changed, 191 insertions(+), 76 deletions(-)
create mode 100644 make/lsGL23toGL2ES1_commons.sh
(limited to 'make')
diff --git a/doc/TODO.txt b/doc/TODO.txt
index 1fbb12616..8aa9e96ed 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -4,17 +4,6 @@ Random, somewhat old to-do list:
- Non-const array types must be properly released with JNI_COMMIT in
order to see side effects if the array was copied.
-- Figure out how to implement GLEventListener.displayChanged(bool,bool).
- I believe we need additional support in J2SE before this will be possible
- to detect and implement. The basic problem is that we need to find a way
- to determine when a GLCanvas has moved to a different
- display device, so we can re-load the GL function addresses using
- wgl/glXGetProcAddress. See comments at top of GLCanvas.java. Also need a
- way to determine with the display mode (e.g., bit depth) of the GLDrawable
- has changed. Once both of these problems are solved, we'll need to hook it
- into GLEventListener.displayChanged() and also be sure to reset the
- GLDrawable's glProcAddress table as appropriate.
-
- Think about e.g. protected access for Impl classes
- Fix glProgramStringARB and glGetProgramString{NV,ARB} so that they
diff --git a/doxygen/doxygen-all-pub.cfg b/doxygen/doxygen-all-pub.cfg
index cd8dfb6a0..8bf4685cb 100644
--- a/doxygen/doxygen-all-pub.cfg
+++ b/doxygen/doxygen-all-pub.cfg
@@ -460,7 +460,7 @@ WARN_LOGFILE =
# with spaces.
INPUT = ../src/jogl/classes/javax
-INPUT += ../build/jogl/gensrc/classes/javax
+INPUT += ../build-x86_64/jogl/gensrc/classes/javax
INPUT += ../src/jogl/classes/com/sun/opengl/util
INPUT += ../src/newt/classes/com/sun/javafx/newt
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl.java b/make/config/jogl/gl-if-CustomJavaCode-gl.java
index c5ce8d9a6..2bdc4e47c 100644
--- a/make/config/jogl/gl-if-CustomJavaCode-gl.java
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl.java
@@ -1,4 +1,41 @@
+ /**
+ * The following enumeration are common in GL2ES1 and GL2GL3
+ */
+ public static final int GL_AND = 0x1501;
+ public static final int GL_AND_INVERTED = 0x1504;
+ public static final int GL_AND_REVERSE = 0x1502;
+ public static final int GL_BLEND_DST = 0x0BE0;
+ public static final int GL_BLEND_SRC = 0x0BE1;
+ public static final int GL_BUFFER_ACCESS = 0x88BB;
+ public static final int GL_CLEAR = 0x1500;
+ public static final int GL_COLOR_LOGIC_OP = 0x0BF2;
+ public static final int GL_COPY = 0x1503;
+ public static final int GL_COPY_INVERTED = 0x150C;
+ public static final int GL_DEPTH_COMPONENT24 = 0x81A6;
+ public static final int GL_DEPTH_COMPONENT32 = 0x81A7;
+ public static final int GL_EQUIV = 0x1509;
+ public static final int GL_LINE_SMOOTH = 0x0B20;
+ public static final int GL_LINE_SMOOTH_HINT = 0x0C52;
+ public static final int GL_LOGIC_OP_MODE = 0x0BF0;
+ public static final int GL_MULTISAMPLE = 0x809D;
+ public static final int GL_NAND = 0x150E;
+ public static final int GL_NOOP = 0x1505;
+ public static final int GL_NOR = 0x1508;
+ public static final int GL_OR = 0x1507;
+ public static final int GL_OR_INVERTED = 0x150D;
+ public static final int GL_OR_REVERSE = 0x150B;
+ public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
+ public static final int GL_POINT_SIZE = 0x0B11;
+ public static final int GL_SAMPLE_ALPHA_TO_ONE = 0x809F;
+ public static final int GL_SET = 0x150F;
+ public static final int GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
+ public static final int GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12;
+ public static final int GL_STENCIL_INDEX1 = 0x8D46;
+ public static final int GL_STENCIL_INDEX4 = 0x8D47;
+ public static final int GL_WRITE_ONLY = 0x88B9;
+ public static final int GL_XOR = 0x1506;
+
public void glClearDepth( double depth );
public void glDepthRange(double zNear, double zFar);
diff --git a/make/lsGL23toGL2ES1_commons.sh b/make/lsGL23toGL2ES1_commons.sh
new file mode 100644
index 000000000..b91edb794
--- /dev/null
+++ b/make/lsGL23toGL2ES1_commons.sh
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+BUILDDIR=$1
+shift
+if [ -z "$BUILDDIR" ] ; then
+ echo "usage $0 "
+ exit 1
+fi
+
+idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
+
+echo GL2GL3 to GL2ES1 enums
+# sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep GL_ | awk ' { print $5 } '
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep GL_
+
+echo GL2GL3 to GL2ES1 functions
+# sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep "public [a-z0-9_]* gl"
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep "public [a-z0-9_]* gl"
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
index c381f68f5..15ccc0f96 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
@@ -71,8 +71,17 @@ public abstract class GLDrawableImpl implements GLDrawable {
}
public void swapBuffers() throws GLException {
+ GLCapabilities caps = (GLCapabilities)component.getGraphicsConfiguration().getNativeGraphicsConfiguration().getChosenCapabilities();
+ if (caps.getDoubleBuffered()) {
+ if(!component.surfaceSwap()) {
+ swapBuffersImpl();
+ }
+ }
+ component.surfaceUpdated();
}
+ protected abstract void swapBuffersImpl();
+
public static String toHexString(long hex) {
return GLContextImpl.toHexString(hex);
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java
index c7c2bcab2..36117f059 100644
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java
@@ -64,7 +64,7 @@ public class EGLOnscreenDrawable extends EGLDrawable {
return surf;
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
boolean didLock = false;
try {
if ( !isSurfaceLocked() ) {
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java
index bcf3294c1..a792762a4 100644
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java
@@ -118,5 +118,6 @@ public class EGLPbufferDrawable extends EGLDrawable {
return new EGLPbufferContext(this, shareWith);
}
+ protected void swapBuffersImpl() { }
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLContext.java
index f87cc150b..4a3e0a8eb 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLContext.java
@@ -102,7 +102,7 @@ public class MacOSXOnscreenCGLContext extends MacOSXCGLContext {
}
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffers() {
if (!CGL.flushBuffer(nsContext)) {
throw new GLException("Error swapping buffers");
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLDrawable.java
index 98687b5ef..56951ae10 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLDrawable.java
@@ -78,7 +78,7 @@ public class MacOSXOnscreenCGLDrawable extends MacOSXCGLDrawable {
return component.getHeight();
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
for (Iterator iter = createdContexts.iterator(); iter.hasNext(); ) {
WeakReference ref = (WeakReference) iter.next();
MacOSXOnscreenCGLContext ctx = (MacOSXOnscreenCGLContext) ref.get();
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
index 54101331d..0d031ffff 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
@@ -87,7 +87,7 @@ public class MacOSXPbufferCGLDrawable extends MacOSXCGLDrawable {
return pBuffer;
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
// FIXME: do we need to do anything if the pbuffer is double-buffered?
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOffscreenWGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOffscreenWGLDrawable.java
index ecd4e1685..71d82e784 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOffscreenWGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOffscreenWGLDrawable.java
@@ -127,7 +127,7 @@ public class WindowsOffscreenWGLDrawable extends WindowsWGLDrawable {
}
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java
index 6a03406f9..f54e8f1a0 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java
@@ -107,7 +107,7 @@ public class WindowsPbufferWGLDrawable extends WindowsWGLDrawable {
return floatMode;
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
}
private void createPbuffer(long parentHdc, WGLExt wglExt) {
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawable.java
index 3017d258b..01e259665 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawable.java
@@ -82,44 +82,41 @@ public abstract class WindowsWGLDrawable extends GLDrawableImpl {
}
}
- public void swapBuffers() throws GLException {
- GLCapabilities caps = (GLCapabilities)getNativeWindow().getGraphicsConfiguration().getNativeGraphicsConfiguration().getChosenCapabilities();
- if (caps.getDoubleBuffered()) {
- boolean didLock = false;
+ protected void swapBuffersImpl() {
+ boolean didLock = false;
- try {
- if ( !isSurfaceLocked() ) {
- // Usually the surface shall be locked within [makeCurrent .. swap .. release]
- if (lockSurface() == NativeWindow.LOCK_SURFACE_NOT_READY) {
- return;
- }
- didLock = true;
+ try {
+ if ( !isSurfaceLocked() ) {
+ // Usually the surface shall be locked within [makeCurrent .. swap .. release]
+ if (lockSurface() == NativeWindow.LOCK_SURFACE_NOT_READY) {
+ return;
}
+ didLock = true;
+ }
- long startTime = 0;
- if (PROFILING) {
- startTime = System.currentTimeMillis();
- }
+ long startTime = 0;
+ if (PROFILING) {
+ startTime = System.currentTimeMillis();
+ }
- if (!WGL.SwapBuffers(getNativeWindow().getSurfaceHandle()) && (WGL.GetLastError() != 0)) {
- throw new GLException("Error swapping buffers");
- }
+ if (!WGL.SwapBuffers(getNativeWindow().getSurfaceHandle()) && (WGL.GetLastError() != 0)) {
+ throw new GLException("Error swapping buffers");
+ }
- if (PROFILING) {
- long endTime = System.currentTimeMillis();
- profilingSwapBuffersTime += (endTime - startTime);
- int ticks = PROFILING_TICKS;
- if (++profilingSwapBuffersTicks == ticks) {
- System.err.println("SwapBuffers calls: " + profilingSwapBuffersTime + " ms / " + ticks + " calls (" +
- ((float) profilingSwapBuffersTime / (float) ticks) + " ms/call)");
- profilingSwapBuffersTime = 0;
- profilingSwapBuffersTicks = 0;
- }
- }
- } finally {
- if (didLock) {
- unlockSurface();
- }
+ if (PROFILING) {
+ long endTime = System.currentTimeMillis();
+ profilingSwapBuffersTime += (endTime - startTime);
+ int ticks = PROFILING_TICKS;
+ if (++profilingSwapBuffersTicks == ticks) {
+ System.err.println("SwapBuffers calls: " + profilingSwapBuffersTime + " ms / " + ticks + " calls (" +
+ ((float) profilingSwapBuffersTime / (float) ticks) + " ms/call)");
+ profilingSwapBuffersTime = 0;
+ profilingSwapBuffersTicks = 0;
+ }
+ }
+ } finally {
+ if (didLock) {
+ unlockSurface();
}
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawable.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawable.java
index 738714ecb..1abc36c58 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawable.java
@@ -76,26 +76,23 @@ public abstract class X11GLXDrawable extends GLDrawableImpl {
}
}
- public void swapBuffers() throws GLException {
- GLCapabilities caps = (GLCapabilities)getNativeWindow().getGraphicsConfiguration().getNativeGraphicsConfiguration().getChosenCapabilities();
- if (caps.getDoubleBuffered()) {
- boolean didLock = false;
- try {
- if ( !isSurfaceLocked() ) {
- // Usually the surface shall be locked within [makeCurrent .. swap .. release]
- if (lockSurface() == NativeWindow.LOCK_SURFACE_NOT_READY) {
- return;
- }
- didLock=true;
+ protected void swapBuffersImpl() {
+ boolean didLock = false;
+ try {
+ if ( !isSurfaceLocked() ) {
+ // Usually the surface shall be locked within [makeCurrent .. swap .. release]
+ if (lockSurface() == NativeWindow.LOCK_SURFACE_NOT_READY) {
+ return;
}
+ didLock=true;
+ }
- GLX.glXSwapBuffers(component.getDisplayHandle(), component.getSurfaceHandle());
+ GLX.glXSwapBuffers(component.getDisplayHandle(), component.getSurfaceHandle());
- } finally {
- if(didLock) {
- unlockSurface();
- }
- }
+ } finally {
+ if(didLock) {
+ unlockSurface();
+ }
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OffscreenGLXDrawable.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OffscreenGLXDrawable.java
index 51938df5f..768f6b8e8 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OffscreenGLXDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OffscreenGLXDrawable.java
@@ -133,6 +133,6 @@ public class X11OffscreenGLXDrawable extends X11GLXDrawable {
getFactoryImpl().unlockToolkit();
}
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java
index eecd92a53..bee24fa47 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java
@@ -148,6 +148,6 @@ public class X11PbufferGLXDrawable extends X11GLXDrawable {
return GLPbuffer.NV_FLOAT;
}
- public void swapBuffers() throws GLException {
+ protected void swapBuffersImpl() {
}
}
diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java b/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java
index c7d2acec0..48a04a3c9 100644
--- a/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java
+++ b/src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java
@@ -88,6 +88,12 @@ public class NullWindow implements NativeWindow {
return lockedStack;
}
+ public boolean surfaceSwap() {
+ return false;
+ }
+
+ public void surfaceUpdated() { }
+
public long getDisplayHandle() {
return displayHandle;
}
diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java b/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java
index a4a529c54..5ad2804c1 100644
--- a/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java
+++ b/src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java
@@ -115,6 +115,12 @@ public abstract class JAWTWindow implements NativeWindow {
return lockedStack;
}
+ public boolean surfaceSwap() {
+ return false;
+ }
+
+ public void surfaceUpdated() { }
+
public long getDisplayHandle() {
return config.getScreen().getDevice().getHandle();
}
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindow.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindow.java
index 2a9782c12..6a588538d 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindow.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindow.java
@@ -111,6 +111,24 @@ public interface NativeWindow {
*/
public Exception getLockedStack();
+ /**
+ * Provide a mechanism to utilize custom (pre-) swap surface
+ * code. This method is called before the render toolkit (e.g. JOGL)
+ * swaps the buffer/surface. The implementation may itself apply the swapping,
+ * in which case true shall be returned.
+ *
+ * @return true if this method completed swapping the surface,
+ * otherwise false, in which case eg the GLDrawable
+ * implementation has to swap the code.
+ */
+ public boolean surfaceSwap();
+
+ /**
+ * Method invoked after the render toolkit (e.g. JOGL)
+ * swapped/changed the buffer/surface.
+ */
+ public void surfaceUpdated();
+
/**
* render all native window information invalid,
* as if the native window was destroyed
diff --git a/src/newt/classes/com/sun/javafx/newt/Window.java b/src/newt/classes/com/sun/javafx/newt/Window.java
index a1168d12d..e2903bd62 100755
--- a/src/newt/classes/com/sun/javafx/newt/Window.java
+++ b/src/newt/classes/com/sun/javafx/newt/Window.java
@@ -269,6 +269,12 @@ public abstract class Window implements NativeWindow
y=0;
}
+ public boolean surfaceSwap() {
+ return false;
+ }
+
+ public void surfaceUpdated() {}
+
protected void clearEventMask() {
eventMask=0;
}
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java b/src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java
index 8ecfe6216..7a7ff0859 100644
--- a/src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java
@@ -654,6 +654,19 @@ public class GLWindow extends Window implements GLAutoDrawable {
return null;
}
+ public boolean surfaceSwap() {
+ if(null!=drawable) return drawable.getNativeWindow().surfaceSwap();
+ return super.surfaceSwap();
+ }
+
+ public void surfaceUpdated() {
+ if(null!=drawable) {
+ drawable.getNativeWindow().surfaceUpdated();
+ } else {
+ super.surfaceUpdated();
+ }
+ }
+
public long getWindowHandle() {
if(null!=drawable) return drawable.getNativeWindow().getWindowHandle();
return super.getWindowHandle();
diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
index 10e70baa0..ddee07c49 100755
--- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
+++ b/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/BCEGLWindow.java
@@ -85,10 +85,10 @@ public class BCEGLWindow extends Window {
void setSizeImpl(int width, int height) {
if(0!=windowHandle) {
// n/a in BroadcomEGL
- System.err.println("setSize n/a in BroadcomEGL with realized window");
+ System.err.println("BCEGLWindow.setSizeImpl n/a in BroadcomEGL with realized window");
} else {
if(DEBUG_IMPLEMENTATION) {
- Exception e = new Exception("BCEGLWindow.setSize() "+this.width+"x"+this.height+" -> "+width+"x"+height);
+ Exception e = new Exception("BCEGLWindow.setSizeImpl() "+this.width+"x"+this.height+" -> "+width+"x"+height);
e.printStackTrace();
}
this.width = width;
@@ -107,6 +107,14 @@ public class BCEGLWindow extends Window {
return false;
}
+ public boolean surfaceSwap() {
+ if ( 0!=windowHandle ) {
+ SwapWindow(getDisplayHandle(), windowHandle);
+ return true;
+ }
+ return false;
+ }
+
//----------------------------------------------------------------------
// Internals only
//
@@ -114,6 +122,7 @@ public class BCEGLWindow extends Window {
protected static native boolean initIDs();
private native long CreateWindow(long eglDisplayHandle, boolean chromaKey, int width, int height);
private native void CloseWindow(long eglDisplayHandle, long eglWindowHandle);
+ private native void SwapWindow(long eglDisplayHandle, long eglWindowHandle);
private long realizeWindow(boolean chromaKey, int width, int height) {
diff --git a/src/newt/native/BroadcomEGL.c b/src/newt/native/BroadcomEGL.c
index 716f7d9ee..764fa9b16 100755
--- a/src/newt/native/BroadcomEGL.c
+++ b/src/newt/native/BroadcomEGL.c
@@ -51,10 +51,10 @@
typedef unsigned int GLuint;
-EGLDisplay EGLUtil_CreateDisplay( GLuint uiWidth, GLuint uiHeight );
+EGLDisplay EGLUtil_CreateDisplayByNative( GLuint uiWidth, GLuint uiHeight );
void EGLUtil_DestroyDisplay( EGLDisplay eglDisplay );
-EGLSurface EGLUtil_CreateWindow( EGLDisplay eglDisplay, /* bool */ GLuint bChromakey, GLuint *puiWidth, GLuint *puiHeight );
+EGLSurface EGLUtil_CreateWindowByNative( EGLDisplay eglDisplay, /* bool */ GLuint bChromakey, GLuint *puiWidth, GLuint *puiHeight );
void EGLUtil_DestroyWindow( EGLDisplay eglDisplay, EGLSurface eglSurface );
void EGLUtil_SwapWindow( EGLDisplay eglDisplay, EGLSurface eglSurface );
@@ -132,7 +132,6 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_Cre
}
window = EGLUtil_CreateWindowByNative( dpy, chromaKey, &uiWidth, &uiHeight );
- // EGLUtil_DestroyWindow( dpy, window );
if(NULL==window) {
fprintf(stderr, "[RealizeWindow.Create] failed: NULL\n");
@@ -161,10 +160,20 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_Cre
JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_CloseWindow
(JNIEnv *env, jobject obj, jlong display, jlong window)
{
- EGLDisplay dpy = (EGLDisplay)(intptr_t)display;
+ EGLDisplay dpy = (EGLDisplay) (intptr_t) display;
EGLSurface surf = (EGLSurface) (intptr_t) window;
EGLUtil_DestroyWindow(dpy, surf);
DBG_PRINT( "[CloseWindow]\n");
}
+JNIEXPORT void JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_SwapWindow
+ (JNIEnv *env, jobject obj, jlong display, jlong window)
+{
+ EGLDisplay dpy = (EGLDisplay) (intptr_t) display;
+ EGLSurface surf = (EGLSurface) (intptr_t) window;
+ EGLUtil_SwapWindow( dpy, surf );
+
+ DBG_PRINT( "[SwapWindow]\n");
+}
+
--
cgit v1.2.3
From 16535530bf15f9f4d6cdd3ff38132c2487f96e05 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Thu, 30 Jul 2009 05:20:43 -0700
Subject: Cleanup: Remove NativeWindowFactory.TYPE_BROADCOM_EGL
---
make/make.jogl.all.linux-x86.sh | 1 +
.../classes/javax/media/nativewindow/NativeWindowFactory.java | 5 -----
2 files changed, 1 insertion(+), 5 deletions(-)
(limited to 'make')
diff --git a/make/make.jogl.all.linux-x86.sh b/make/make.jogl.all.linux-x86.sh
index 0f764b360..081d8328b 100644
--- a/make/make.jogl.all.linux-x86.sh
+++ b/make/make.jogl.all.linux-x86.sh
@@ -14,6 +14,7 @@ fi
# -DisLinux=true \
# -DisLinuxX86=true \
# -DisX11=true \
+# -Djogl.cg=1 -Dx11.cg.lib=../../lib-linux-x86 \
ant \
-Dbuild.noarchives=true \
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
index d4684c783..cbd485649 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
@@ -48,9 +48,6 @@ import com.sun.nativewindow.impl.jvm.JVMUtil;
public abstract class NativeWindowFactory {
protected static final boolean DEBUG = Debug.debug("NativeWindow");
- /** Broadcom EGL type */
- public static final String TYPE_BROADCOM_EGL = "BroadcomEGL";
-
/** OpenKODE/EGL type */
public static final String TYPE_EGL = "EGL";
@@ -85,8 +82,6 @@ public abstract class NativeWindowFactory {
private static String _getNativeWindowingType(String osNameLowerCase) {
if (osNameLowerCase.startsWith("kd")) {
return TYPE_EGL;
- } else if (osNameLowerCase.startsWith(TYPE_BROADCOM_EGL.toLowerCase())) {
- return TYPE_BROADCOM_EGL;
} else if (osNameLowerCase.startsWith("wind")) {
return TYPE_WINDOWS;
} else if (osNameLowerCase.startsWith("mac os x") ||
--
cgit v1.2.3
From 5fd59e3b39c4b9a956d47722cc6d52268576fed0 Mon Sep 17 00:00:00 2001
From: sg215889
Date: Thu, 30 Jul 2009 06:27:29 -0700
Subject: Fix GL comments
---
make/config/jogl/gl-if-CustomJavaCode-gl.java | 36 ++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl.java b/make/config/jogl/gl-if-CustomJavaCode-gl.java
index 2bdc4e47c..20657ef9f 100644
--- a/make/config/jogl/gl-if-CustomJavaCode-gl.java
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl.java
@@ -1,39 +1,69 @@
- /**
- * The following enumeration are common in GL2ES1 and GL2GL3
- */
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_AND = 0x1501;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_AND_INVERTED = 0x1504;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_AND_REVERSE = 0x1502;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_BLEND_DST = 0x0BE0;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_BLEND_SRC = 0x0BE1;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_BUFFER_ACCESS = 0x88BB;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_CLEAR = 0x1500;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_COLOR_LOGIC_OP = 0x0BF2;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_COPY = 0x1503;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_COPY_INVERTED = 0x150C;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_DEPTH_COMPONENT24 = 0x81A6;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_DEPTH_COMPONENT32 = 0x81A7;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_EQUIV = 0x1509;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_LINE_SMOOTH = 0x0B20;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_LINE_SMOOTH_HINT = 0x0C52;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_LOGIC_OP_MODE = 0x0BF0;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_MULTISAMPLE = 0x809D;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_NAND = 0x150E;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_NOOP = 0x1505;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_NOR = 0x1508;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_OR = 0x1507;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_OR_INVERTED = 0x150D;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_OR_REVERSE = 0x150B;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_POINT_SIZE = 0x0B11;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_SAMPLE_ALPHA_TO_ONE = 0x809F;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_SET = 0x150F;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_STENCIL_INDEX1 = 0x8D46;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_STENCIL_INDEX4 = 0x8D47;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_WRITE_ONLY = 0x88B9;
+ /** Common in ES1, GL2 and GL3 */
public static final int GL_XOR = 0x1506;
public void glClearDepth( double depth );
--
cgit v1.2.3
From 9a4619d5ab1c0441dfb273d057e288b4bf4c6dbc Mon Sep 17 00:00:00 2001
From: sg215889
Date: Thu, 30 Jul 2009 22:09:24 -0700
Subject: Fix SwapInterval (return value, check ctx current, egl), add
getSwapInterval.
---
make/config/jogl/gl-impl-CustomJavaCode-gl2.java | 4 ++++
.../jogl/gl-impl-CustomJavaCode-gl2es12.java | 4 ++++
make/config/jogl/gl-impl-CustomJavaCode-gl3.java | 4 ++++
make/config/jogl/gl-impl-CustomJavaCode-gles1.java | 4 ++++
make/config/jogl/gl-impl-CustomJavaCode-gles2.java | 4 ++++
.../classes/com/sun/opengl/impl/GLContextImpl.java | 20 +++++++++++++----
.../com/sun/opengl/impl/egl/EGLContext.java | 6 ++++++
.../opengl/impl/macosx/cgl/MacOSXCGLContext.java | 3 ++-
.../impl/macosx/cgl/MacOSXPbufferCGLContext.java | 13 ++++++++++-
.../macosx/cgl/awt/MacOSXJava2DCGLContext.java | 4 ----
.../opengl/impl/windows/wgl/WindowsWGLContext.java | 25 ++++------------------
.../com/sun/opengl/impl/x11/glx/X11GLXContext.java | 8 +++----
src/jogl/classes/javax/media/opengl/GLBase.java | 17 ++++++++++++++-
13 files changed, 80 insertions(+), 36 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
index 5aec51fc7..061830cb4 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
@@ -126,6 +126,10 @@ public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
+public int getSwapInterval() {
+ return _context.getSwapInterval();
+}
+
public Object getPlatformGLExtensions() {
return _context.getPlatformGLExtensions();
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
index cb4cab175..3dfcf5908 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java
@@ -127,6 +127,10 @@ public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
+public int getSwapInterval() {
+ return _context.getSwapInterval();
+}
+
public Object getPlatformGLExtensions() {
return _context.getPlatformGLExtensions();
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java
index a15964bcc..9123f35c8 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl3.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl3.java
@@ -126,6 +126,10 @@ public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
+public int getSwapInterval() {
+ return _context.getSwapInterval();
+}
+
public Object getPlatformGLExtensions() {
return _context.getPlatformGLExtensions();
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
index 5141376df..65236676a 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
@@ -101,6 +101,10 @@ public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
+public int getSwapInterval() {
+ return _context.getSwapInterval();
+}
+
public Object getPlatformGLExtensions() {
return _context.getPlatformGLExtensions();
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
index b53715ae0..2f69905a9 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
@@ -105,6 +105,10 @@ public void setSwapInterval(int interval) {
_context.setSwapInterval(interval);
}
+public int getSwapInterval() {
+ return _context.getSwapInterval();
+}
+
public Object getPlatformGLExtensions() {
return _context.getPlatformGLExtensions();
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
index c60cccec6..fa7e1ade7 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
@@ -284,11 +284,23 @@ public abstract class GLContextImpl extends GLContext {
public abstract ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3);
- /*
- * Sets the swap interval for onscreen OpenGL contexts. Has no
- * effect for offscreen contexts.
- */
public void setSwapInterval(final int interval) {
+ GLContext current = getCurrent();
+ if (current != this) {
+ throw new GLException("This context is not current. Current context: "+current+
+ ", this context "+this);
+ }
+ setSwapIntervalImpl(interval);
+ }
+
+ protected int currentSwapInterval = -1; // default: not set yet ..
+
+ public int getSwapInterval() {
+ return currentSwapInterval;
+ }
+
+ protected void setSwapIntervalImpl(final int interval) {
+ // nop per default ..
}
/** Maps the given "platform-independent" function name to a real function
diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java
index 45fe0fcd3..1a75f03a9 100755
--- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java
@@ -261,6 +261,12 @@ public abstract class EGLContext extends GLContextImpl {
}
}
+ protected void setSwapIntervalImpl(int interval) {
+ if (EGL.eglSwapInterval(drawable.getDisplay(), interval)) {
+ currentSwapInterval = interval ;
+ }
+ }
+
public abstract void bindPbufferToTexture();
public abstract void releasePbufferFromTexture();
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java
index b424e9516..f60dd1645 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java
@@ -337,11 +337,12 @@ public abstract class MacOSXCGLContext extends GLContextImpl
return "";
}
- public void setSwapInterval(int interval) {
+ protected void setSwapIntervalImpl(int interval) {
if (nsContext == 0) {
throw new GLException("OpenGL context not current");
}
CGL.setSwapInterval(nsContext, interval);
+ currentSwapInterval = interval ;
}
public ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) {
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
index d702150d3..4ea3519bf 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
@@ -121,11 +121,12 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext {
}
}
- public void setSwapInterval(int interval) {
+ protected void setSwapIntervalImpl(int interval) {
if (nsContext == 0) {
throw new GLException("OpenGL context not current");
}
impl.setSwapInterval(nsContext, interval);
+ currentSwapInterval = impl.getSwapInterval() ;
}
public int getFloatingPointMode() {
@@ -210,6 +211,7 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext {
public boolean makeCurrent(long ctx);
public boolean release(long ctx);
public void setSwapInterval(long ctx, int interval);
+ public int getSwapInterval();
}
// NSOpenGLContext-based implementation
@@ -241,8 +243,14 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext {
return CGL.clearCurrentContext(ctx);
}
+ private int currentSwapInterval = 0 ;
+
public void setSwapInterval(long ctx, int interval) {
CGL.setSwapInterval(ctx, interval);
+ currentSwapInterval = interval ;
+ }
+ public int getSwapInterval() {
+ return currentSwapInterval;
}
}
@@ -344,5 +352,8 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext {
public void setSwapInterval(long ctx, int interval) {
// For now not supported (not really relevant for off-screen contexts anyway)
}
+ public int getSwapInterval() {
+ return 0;
+ }
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java
index 4423f8da5..22b0ffe55 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java
@@ -144,10 +144,6 @@ public class MacOSXJava2DCGLContext extends MacOSXCGLContext implements Java2DGL
}
}
- public void setSwapInterval(int interval) {
- // Not supported in this context implementation
- }
-
public void setOpenGLMode(int mode) {
if (mode != MacOSXCGLDrawable.CGL_MODE)
throw new GLException("OpenGL mode switching not supported for Java2D GLContexts");
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
index 1bc3acada..92a563445 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
@@ -332,29 +332,12 @@ public class WindowsWGLContext extends GLContextImpl {
}
}
- public boolean isFunctionAvailable(String glFunctionName)
- {
- boolean available = super.isFunctionAvailable(glFunctionName);
-
- // Sanity check for implementations that use proc addresses for run-time
- // linking: if the function IS available, then make sure there's a proc
- // address for it if it's an extension or not part of the OpenGL 1.1 core
- // (post GL 1.1 functions are run-time linked on windows).
- /* FIXME:
- assert(!available ||
- (getGLProcAddressTable().getAddressFor(mapToRealGLFunctionName(glFunctionName)) != 0 ||
- FunctionAvailabilityCache.isPartOfGLCore("1.1", mapToRealGLFunctionName(glFunctionName)))
- ); */
-
- return available;
- }
-
- public void setSwapInterval(int interval) {
- // FIXME: make the context current first? Currently assumes that
- // will not be necessary. Make the caller do this?
+ protected void setSwapIntervalImpl(int interval) {
WGLExt wglExt = getWGLExt();
if (wglExt.isExtensionAvailable("WGL_EXT_swap_control")) {
- wglExt.wglSwapIntervalEXT(interval);
+ if ( wglExt.wglSwapIntervalEXT(interval) ) {
+ currentSwapInterval = interval ;
+ }
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
index 57abcf588..718d55aa0 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
@@ -396,11 +396,9 @@ public abstract class X11GLXContext extends GLContextImpl {
private int hasSwapIntervalSGI = 0;
- public void setSwapInterval(int interval) {
+ protected void setSwapIntervalImpl(int interval) {
getDrawableImpl().getFactoryImpl().lockToolkit();
try {
- // FIXME: make the context current first? Currently assumes that
- // will not be necessary. Make the caller do this?
GLXExt glXExt = getGLXExt();
if(0==hasSwapIntervalSGI) {
try {
@@ -409,7 +407,9 @@ public abstract class X11GLXContext extends GLContextImpl {
}
if (hasSwapIntervalSGI>0) {
try {
- glXExt.glXSwapIntervalSGI(interval);
+ if( 0 == glXExt.glXSwapIntervalSGI(interval) ) {
+ currentSwapInterval = interval;
+ }
} catch (Throwable t) { hasSwapIntervalSGI=-1; }
}
} finally {
diff --git a/src/jogl/classes/javax/media/opengl/GLBase.java b/src/jogl/classes/javax/media/opengl/GLBase.java
index 7b59344cc..92498077b 100644
--- a/src/jogl/classes/javax/media/opengl/GLBase.java
+++ b/src/jogl/classes/javax/media/opengl/GLBase.java
@@ -227,9 +227,24 @@ public interface GLBase {
until swapping buffers. The default, which is platform-specific,
is usually either 0 or 1. This function is not guaranteed to
have an effect, and in particular only affects heavyweight
- onscreen components. */
+ onscreen components.
+
+ @see #getSwapInterval
+ @throws GLException if this context is not the current
+ */
public void setSwapInterval(int interval);
+ /** Provides a platform-independent way to get the swap
+ interval set by {@link #setSwapInterval}.
+
+ If the interval is not set by {@link #setSwapInterval} yet,
+ -1 is returned, indicating that the platforms default
+ is being used.
+
+ @see #setSwapInterval
+ */
+ public int getSwapInterval();
+
/**
* Returns an object through which platform-specific OpenGL extensions
* (EGL, GLX, WGL, etc.) may be accessed. The data type of the returned
--
cgit v1.2.3
From 786b056afb90311a8c06a57fc24f242f8df713e1 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Fri, 31 Jul 2009 11:52:46 -0700
Subject: Gluegen: - Fix array element type name and const qualifier
JOGL:
- GL3: Set ArgumentIsString for GL3.1 methods
- JAR file creation: Add 'filesonly' option
- GLU: Static check of available impl., better fallback for GL2 without GLUgl2.
- WGL: (Performance + Java2D/GL FBO works again)
- Refactor WGL_ARB_pixel_format's HDC -> GLCapabilities: HDC2Caps
- Revert change where we always create a dummy drawable/context
for WGL selection (HDC2Caps).
In case of no multisampling, use PFD2Caps only.
- Update config using HDC2Caps (WGL_ARB_pixel_format)
after context creation, if not done already
-> updateCapabilitiesByWGL().
- profile.jogl: Add debug jars
---
etc/profile.jogl | 14 +-
make/build-jogl.xml | 80 +++++------
make/build-nativewindow.xml | 18 +--
make/build-newt.xml | 34 ++---
make/config/jogl/gl-common.cfg | 32 +++--
make/config/jogl/glu-CustomJavaCode-base.java | 43 +++---
make/make.jogl.all.win32.bat | 2 +-
.../com/sun/opengl/impl/GLDrawableImpl.java | 6 +-
.../windows/wgl/WindowsExternalWGLContext.java | 7 +-
.../windows/wgl/WindowsExternalWGLDrawable.java | 4 +-
.../windows/wgl/WindowsPbufferWGLDrawable.java | 4 +-
.../opengl/impl/windows/wgl/WindowsWGLContext.java | 5 +
.../wgl/WindowsWGLGraphicsConfiguration.java | 149 +++++++++++++++++++--
.../WindowsWGLGraphicsConfigurationFactory.java | 112 ++++------------
.../com/sun/javafx/newt/windows/WindowsWindow.java | 7 +-
15 files changed, 306 insertions(+), 211 deletions(-)
(limited to 'make')
diff --git a/etc/profile.jogl b/etc/profile.jogl
index c1daef85d..24cac910f 100755
--- a/etc/profile.jogl
+++ b/etc/profile.jogl
@@ -30,25 +30,25 @@ JOGL_AWT="jogl.awt.jar jogl.util.awt.jar newt.awt.jar nativewindow.awt.jar"
JOGL_CORE="nativewindow.core.jar nativewindow.x11.jar jogl.core.jar newt.core.jar newt.$OSS.jar newt.ogl.jar jogl.util.jar"
-JOGL_JAR_ALL="$JOGL_CORE jogl.gles1.jar jogl.gles1.dbg.jar jogl.gles2.jar jogl.gles2.dbg.jar jogl.egl.jar jogl.gl2es12.$OSS.jar jogl.gl2es12.dbg.jar jogl.gl2.$OSS.jar jogl.gl2.dbg.jar jogl.util.gl2.jar jogl.glu.tess.jar jogl.glu.mipmap.jar jogl.glu.gl2.jar jogl.util.gl2.jar jogl.util.fixedfuncemu.jar $JOGL_AWT jogl.cg.jar"
+JOGL_JAR_ALL="$JOGL_CORE jogl.gles1.jar jogl.gles1.dbg.jar jogl.gles2.jar jogl.gles2.dbg.jar jogl.egl.jar jogl.gl2es12.$OSS.jar jogl.gl2.$OSS.jar jogl.gl2.dbg.jar jogl.util.gl2.jar jogl.glu.tess.jar jogl.glu.mipmap.jar jogl.glu.gl2.jar jogl.util.gl2.jar jogl.util.fixedfuncemu.jar $JOGL_AWT jogl.cg.jar"
JOGL_LIB_ALL="libjogl_gl2.so libjogl_es1.so libjogl_es2.so libnewt.so libjogl_awt.so"
-JOGL_JAR_ES1_MIN="$JOGL_CORE jogl.gles1.jar jogl.egl.jar"
+JOGL_JAR_ES1_MIN="$JOGL_CORE jogl.gles1.jar jogl.gles1.dbg.jar jogl.egl.jar"
JOGL_JAR_ES1_MAX="$JOGL_CORE jogl.gles1.jar jogl.gles1.dbg.jar jogl.egl.jar jogl.glu.tess.jar jogl.glu.mipmap.jar $JOGL_AWT"
JOGL_LIB_ES1_MIN="libjogl_es1.so libnewt.so"
JOGL_LIB_ES1_MAX="libjogl_es1.so libnewt.so libjogl_awt.so libnativewindow_x11.so libnativewindow_awt.so"
-JOGL_JAR_ES2_MIN="$JOGL_CORE jogl.gles2.jar jogl.egl.jar jogl.util.fixedfuncemu.jar"
-JOGL_JAR_ES2_MAX="$JOGL_CORE jogl.gles2.jar jogl.egl.jar jogl.util.fixedfuncemu.jar jogl.glu.tess.jar $JOGL_AWT"
+JOGL_JAR_ES2_MIN="$JOGL_CORE jogl.gles2.jar jogl.gles2.dbg.jar jogl.egl.jar jogl.util.fixedfuncemu.jar"
+JOGL_JAR_ES2_MAX="$JOGL_CORE jogl.gles2.jar jogl.gles2.dbg.jar jogl.egl.jar jogl.util.fixedfuncemu.jar jogl.glu.tess.jar $JOGL_AWT"
JOGL_LIB_ES2_MIN="libjogl_es2.so libnewt.so"
JOGL_LIB_ES2_MAX="libjogl_es2.so libnewt.so libjogl_awt.so libnativewindow_x11.so libnativewindow_awt.so"
-JOGL_JAR_GL2ES12_MIN="$JOGL_CORE jogl.gl2es12.$OSS.jar jogl.util.fixedfuncemu.jar"
-JOGL_JAR_GL2ES12_MAX="$JOGL_CORE jogl.gl2es12.$OSS.jar jogl.util.fixedfuncemu.jar jogl.gl2es12.dbg.jar jogl.glu.tess.jar jogl.glu.mipmap.jar $JOGL_AWT"
+JOGL_JAR_GL2ES12_MIN="$JOGL_CORE jogl.gl2es12.$OSS.jar jogl.gles1.dbg.jar jogl.gles2.dbg.jar jogl.util.fixedfuncemu.jar"
+JOGL_JAR_GL2ES12_MAX="$JOGL_CORE jogl.gl2es12.$OSS.jar jogl.gles1.dbg.jar jogl.gles2.dbg.jar jogl.util.fixedfuncemu.jar jogl.gl2es12.dbg.jar jogl.glu.tess.jar jogl.glu.mipmap.jar $JOGL_AWT"
JOGL_LIB_GL2ES12_MIN="libjogl_gl2es12.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
JOGL_LIB_GL2ES12_MAX="libjogl_gl2es12.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
-JOGL_JAR_GL2_MIN="$JOGL_CORE jogl.gl2.$OSS.jar"
+JOGL_JAR_GL2_MIN="$JOGL_CORE jogl.gl2.$OSS.jar jogl.gl2.dbg.jar"
JOGL_JAR_GL2_MAX="$JOGL_CORE jogl.gl2.$OSS.jar jogl.gl2.dbg.jar jogl.glu.tess.jar jogl.glu.mipmap.jar jogl.glu.gl2.jar jogl.util.gl2.jar $JOGL_AWT jogl.cg.jar"
JOGL_LIB_GL2_MIN="libjogl_gl2.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
JOGL_LIB_GL2_MAX="libjogl_gl2.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index 0f9a230a2..08f0d6ef2 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -1591,12 +1591,12 @@
-
+
-
+
@@ -1660,24 +1660,24 @@
-
+
-
+
-
+
-
+
@@ -1685,43 +1685,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1729,44 +1729,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1780,7 +1780,7 @@
-
+
@@ -1791,25 +1791,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1849,29 +1849,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -830,7 +830,7 @@
-
+
@@ -838,20 +838,20 @@
-
+
-
+
-
+
@@ -861,7 +861,7 @@
-
+
@@ -871,7 +871,7 @@
-
+
@@ -880,7 +880,7 @@
-
+
diff --git a/make/build-newt.xml b/make/build-newt.xml
index acf78f09a..079d2e154 100644
--- a/make/build-newt.xml
+++ b/make/build-newt.xml
@@ -623,12 +623,12 @@
-
+
-
+
@@ -686,73 +686,73 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -760,7 +760,7 @@
-
+
@@ -768,7 +768,7 @@
-
+
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 19e0eb8e4..a26c6a6b3 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -289,6 +289,14 @@ ReturnValueCapacity glXAllocateMemoryNV {0}
# Pass arguments to ARB_vertex_program, ARB_fragment_program,
# ARB_shader_objects, NV_vertex_program, NV_fragment_program, and
# ARB_vertex_shader as Strings
+ArgumentIsString glBindAttribLocation 2
+ArgumentIsString glBindAttribLocationARB 2
+ArgumentIsString glGetAttribLocation 1
+ArgumentIsString glGetAttribLocationARB 1
+ArgumentIsString glGetProgramNamedParameterfvNV 2
+ArgumentIsString glGetProgramNamedParameterdvNV 2
+ArgumentIsString glGetUniformLocation 1
+ArgumentIsString glGetUniformLocationARB 1
ArgumentIsString glLoadProgramNV 3
ArgumentIsString glProgramString 3
ArgumentIsString glProgramStringARB 3
@@ -296,16 +304,24 @@ ArgumentIsString glProgramNamedParameter4fNV 2
ArgumentIsString glProgramNamedParameter4dNV 2
ArgumentIsString glProgramNamedParameter4fvNV 2
ArgumentIsString glProgramNamedParameter4dvNV 2
-ArgumentIsString glGetProgramNamedParameterfvNV 2
-ArgumentIsString glGetProgramNamedParameterdvNV 2
ArgumentIsString glShaderSource 2
ArgumentIsString glShaderSourceARB 2
-ArgumentIsString glGetUniformLocation 1
-ArgumentIsString glGetUniformLocationARB 1
-ArgumentIsString glBindAttribLocation 2
-ArgumentIsString glBindAttribLocationARB 2
-ArgumentIsString glGetAttribLocation 1
-ArgumentIsString glGetAttribLocationARB 1
+
+ArgumentIsString glBindFragDataLocation 2
+ArgumentIsString glGetFragDataLocation 1
+ArgumentIsString glGetUniformIndices 2
+ArgumentIsString glGetUniformBlockIndex 1
+ArgumentIsString glTransformFeedbackVaryings 2
+
+# String output values:
+# ArgumentIsString glGetActiveAttrib 6
+# ArgumentIsString glGetActiveUniformBlockName 4
+# ArgumentIsString glGetActiveUniformName 4
+# ArgumentIsString glGetActiveUniform 6
+# ArgumentIsString glGetProgramInfoLog 3
+# ArgumentIsString glGetShaderInfoLog 3
+# ArgumentIsString glGetShaderSource 3
+# ArgumentIsString glGetTransformFeedbackVarying 6
#
# Directives for Vertex Buffer Object and Pixel Buffer Object checking
diff --git a/make/config/jogl/glu-CustomJavaCode-base.java b/make/config/jogl/glu-CustomJavaCode-base.java
index 6949cfb68..78c067606 100755
--- a/make/config/jogl/glu-CustomJavaCode-base.java
+++ b/make/config/jogl/glu-CustomJavaCode-base.java
@@ -76,8 +76,19 @@ public boolean isFunctionAvailable(String gluFunctionName)
// Utility routines
//
-private static Class gl2Class;
-private static Class gl2es1Class;
+private static final Class gl2Class;
+private static final Class gl2es1Class;
+
+static {
+ Class _gl2Class=null;
+ Class _gl2es1Class=null;
+ try {
+ _gl2Class = Class.forName("javax.media.opengl.glu.gl2.GLUgl2");
+ _gl2es1Class = Class.forName("javax.media.opengl.glu.gl2es1.GLUgl2es1");
+ } catch (Throwable t) {}
+ gl2Class = _gl2Class;
+ gl2es1Class = _gl2es1Class;
+}
/**
* Instantiates a GLU implementation object in respect to the given GL profile
@@ -94,32 +105,20 @@ public static final GLU createGLU() throws GLException {
public static final GLU createGLU(GL gl) throws GLException {
try {
Class c = null;
- if(gl.isGL2()) {
- if (gl2Class == null) {
- gl2Class = Class.forName("javax.media.opengl.glu.gl2.GLUgl2");
- }
+ if(gl.isGL2() && null!=gl2Class) {
c = gl2Class;
- } else if (gl.isGL2ES1()) {
- if (gl2es1Class == null) {
- gl2es1Class = Class.forName("javax.media.opengl.glu.gl2es1.GLUgl2es1");
- }
+ } else if(gl.isGL2ES1() && null!=gl2es1Class) {
c = gl2es1Class;
+ /** There is no specialized ES 2 GLU at this time
+ } else if(gl.isGL2ES2() && null!=gl2es2Class) {
+ c = gl2es2Class; */
+ } else {
+ c = GLU.class;
}
- if (c != null) {
- return (GLU) c.newInstance();
- }
+ return (GLU) c.newInstance();
} catch (Exception e) {
throw new GLException(e);
}
- // There is no specialized ES 2 GLU at this time
- /*
- try {
- if(GLProfile.GL2ES12.equals(profile) || GLProfile.GL2.equals(profile) || GLProfile.GLES2.equals(profile)) {
- return (GLU) NWReflection.createInstance("javax.media.opengl.glu.gl2es2.GLUgl2es2");
- }
- } catch (GLException e) { e.printStackTrace(); }
- */
- return new GLU();
}
public GLU()
diff --git a/make/make.jogl.all.win32.bat b/make/make.jogl.all.win32.bat
index f4a52fa75..9ab77b051 100644
--- a/make/make.jogl.all.win32.bat
+++ b/make/make.jogl.all.win32.bat
@@ -9,4 +9,4 @@ REM -DuseOpenMAX=true
REM -DuseKD=true
REM -Djogl.cg=1 -D-Dwindows.cg.lib=C:\Cg-2.2
-ant -Drootrel.build=build-win32 -Djogl.cg=1 -Dwindows.cg.lib=C:\Cg-2.2\lib > make.jogl.all.win32.log 2>&1
+ant -Dbuild.noarchives=true -Dc.compiler.debug=true -Drootrel.build=build-win32 -Djogl.cg=1 -Dwindows.cg.lib=C:\Cg-2.2\lib > make.jogl.all.win32.log 2>&1
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
index 15ccc0f96..81fc0b78b 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java
@@ -140,10 +140,10 @@ public abstract class GLDrawableImpl implements GLDrawable {
public String toString() {
return getClass().getName()+"[realized "+getRealized()+
- ",\n\trequested "+getRequestedGLCapabilities()+
- ",\n\tchosen "+getChosenGLCapabilities()+
+ ",\n\tfactory "+getFactory()+
",\n\twindow "+getNativeWindow()+
- ",\n\tfactory "+getFactory()+"]";
+ ",\n\trequested "+getRequestedGLCapabilities()+
+ ",\n\tchosen "+getChosenGLCapabilities()+"]";
}
protected GLDrawableFactory factory;
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLContext.java
index b9fc80156..31e65fc8c 100755
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLContext.java
@@ -51,7 +51,7 @@ public class WindowsExternalWGLContext extends WindowsWGLContext {
private boolean created = true;
private GLContext lastContext;
- private WindowsExternalWGLContext(Drawable drawable, long hglrc) {
+ private WindowsExternalWGLContext(Drawable drawable, long hglrc, WindowsWGLGraphicsConfiguration cfg) {
super(drawable, null);
this.hglrc = hglrc;
if (DEBUG) {
@@ -59,6 +59,7 @@ public class WindowsExternalWGLContext extends WindowsWGLContext {
}
GLContextShareSet.contextCreated(this);
setGLFunctionAvailability(false);
+ cfg.updateCapabilitiesByWGL(this);
}
protected static WindowsExternalWGLContext create(GLDrawableFactory factory, GLProfile glp) {
@@ -76,12 +77,12 @@ public class WindowsExternalWGLContext extends WindowsWGLContext {
}
AbstractGraphicsScreen aScreen = DefaultGraphicsScreen.createDefault();
- WindowsWGLGraphicsConfiguration cfg = WindowsWGLGraphicsConfiguration.create(glp, aScreen, hdc, pfdID, true, true);
+ WindowsWGLGraphicsConfiguration cfg = WindowsWGLGraphicsConfiguration.create(hdc, pfdID, glp, aScreen, true, true);
NullWindow nw = new NullWindow(cfg);
nw.setSurfaceHandle(hdc);
- return new WindowsExternalWGLContext(new Drawable(factory, nw), hglrc);
+ return new WindowsExternalWGLContext(new Drawable(factory, nw), hglrc, cfg);
}
public int makeCurrent() throws GLException {
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLDrawable.java
index 706675893..9b87afc38 100755
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLDrawable.java
@@ -61,12 +61,12 @@ public class WindowsExternalWGLDrawable extends WindowsWGLDrawable {
}
AbstractGraphicsScreen aScreen = DefaultGraphicsScreen.createDefault();
- WindowsWGLGraphicsConfiguration cfg = WindowsWGLGraphicsConfiguration.create(glp, aScreen, hdc, pfdID, true, true);
+ WindowsWGLGraphicsConfiguration cfg = WindowsWGLGraphicsConfiguration.create(hdc, pfdID, glp, aScreen, true, true);
NullWindow nw = new NullWindow(cfg);
nw.setSurfaceHandle(hdc);
- // cfg.updateGraphicsConfiguration(factory, nw);
+ cfg.updateGraphicsConfiguration(factory, nw);
return new WindowsExternalWGLDrawable(factory, nw);
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java
index f54e8f1a0..79dda9049 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java
@@ -295,7 +295,7 @@ public class WindowsPbufferWGLDrawable extends WindowsWGLDrawable {
if(newCaps.isOnscreen()) {
throw new GLException("Error: Selected Onscreen Caps for PBuffer: "+newCaps);
}
- config.setCapsPFD(newCaps, pfd, pformats[whichFormat]);
+ config.setCapsPFD(newCaps, pfd, pformats[whichFormat], true);
} else {
PIXELFORMATDESCRIPTOR pfd = WindowsWGLGraphicsConfiguration.createPixelFormatDescriptor();
if (WGL.DescribePixelFormat(parentHdc, pformats[whichFormat], pfd.size(), pfd) == 0) {
@@ -305,7 +305,7 @@ public class WindowsPbufferWGLDrawable extends WindowsWGLDrawable {
if(newCaps.isOnscreen()) {
throw new GLException("Error: Selected Onscreen Caps for PBuffer: "+newCaps);
}
- config.setCapsPFD(newCaps, pfd, pformats[whichFormat]);
+ config.setCapsPFD(newCaps, pfd, pformats[whichFormat], false);
}
}
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
index 92a563445..578279586 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
@@ -264,6 +264,11 @@ public class WindowsWGLContext extends GLContextImpl {
if (created) {
setGLFunctionAvailability(false);
+
+ WindowsWGLGraphicsConfiguration config =
+ (WindowsWGLGraphicsConfiguration)drawable.getNativeWindow().getGraphicsConfiguration().getNativeGraphicsConfiguration();
+ config.updateCapabilitiesByWGL(this);
+
return CONTEXT_CURRENT_NEW;
}
return CONTEXT_CURRENT;
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfiguration.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfiguration.java
index 1a8d45465..844e72841 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfiguration.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfiguration.java
@@ -49,6 +49,7 @@ public class WindowsWGLGraphicsConfiguration extends DefaultGraphicsConfiguratio
private int pixelfmtID;
private boolean isChosen = false;
private GLCapabilitiesChooser chooser;
+ private boolean choosenByWGLPixelFormat=false;
public WindowsWGLGraphicsConfiguration(AbstractGraphicsScreen screen, GLCapabilities capsChosen, GLCapabilities capsRequested,
PIXELFORMATDESCRIPTOR pixelfmt, int pixelfmtID, GLCapabilitiesChooser chooser) {
@@ -58,17 +59,26 @@ public class WindowsWGLGraphicsConfiguration extends DefaultGraphicsConfiguratio
this.pixelfmtID = pixelfmtID;
}
- public static WindowsWGLGraphicsConfiguration create(GLProfile glp, AbstractGraphicsScreen screen, long hdc, int pfdID, boolean onscreen, boolean usePBuffer) {
- PIXELFORMATDESCRIPTOR pfd = createPixelFormatDescriptor();
- if (WGL.DescribePixelFormat(hdc, pfdID, pfd.size(), pfd) == 0) {
- throw new GLException("Unable to describe pixel format " + pfdID);
+ public static WindowsWGLGraphicsConfiguration create(long hdc, int pfdID,
+ GLProfile glp, AbstractGraphicsScreen screen, boolean onscreen, boolean usePBuffer)
+ {
+ if(pfdID<=0) {
+ throw new GLException("Invalid pixelformat id "+pfdID);
}
if(null==glp) {
glp = GLProfile.getDefault();
}
+ PIXELFORMATDESCRIPTOR pfd = createPixelFormatDescriptor();
+ if (WGL.DescribePixelFormat(hdc, pfdID, pfd.size(), pfd) == 0) {
+ throw new GLException("Unable to describe pixel format " + pfdID);
+ }
+
GLCapabilities caps = PFD2GLCapabilities(glp, pfd, onscreen, usePBuffer);
+ if(null==caps) {
+ throw new GLException("Couldn't choose Capabilities by: HDC 0x"+Long.toHexString(hdc)+", pfdID "+pfdID);
+ }
WindowsWGLGraphicsConfiguration cfg = new WindowsWGLGraphicsConfiguration(screen, caps, caps, pfd, pfdID, new DefaultGLCapabilitiesChooser());
- cfg.setCapsPFD(caps, pfd, pfdID);
+ cfg.setCapsPFD(caps, pfd, pfdID, false);
return cfg;
}
@@ -77,15 +87,40 @@ public class WindowsWGLGraphicsConfiguration extends DefaultGraphicsConfiguratio
return super.clone();
}
+ /** Update config - before having a valid context */
protected void updateGraphicsConfiguration(GLDrawableFactory factory, NativeWindow nativeWindow) {
WindowsWGLGraphicsConfigurationFactory.updateGraphicsConfiguration(chooser, factory, nativeWindow);
}
- protected void setCapsPFD(GLCapabilities caps, PIXELFORMATDESCRIPTOR pfd, int pfdID) {
- // FIXME: setScreen ( .. )
+
+ /** Update config - after having a valid and current context */
+ protected void updateCapabilitiesByWGL(GLContextImpl context) {
+ if(choosenByWGLPixelFormat) return; // already done ..
+
+ GLCapabilities capabilities = (GLCapabilities) getRequestedCapabilities();
+ boolean onscreen = capabilities.isOnscreen();
+ boolean usePBuffer = capabilities.isPBuffer();
+ GLProfile glp = capabilities.getGLProfile();
+
+ WGLExt wglExt = (WGLExt) context.getPlatformGLExtensions();
+ GLDrawable drawable = context.getGLDrawable();
+ NativeWindow nativeWindow = drawable.getNativeWindow();
+ long hdc = nativeWindow.getSurfaceHandle();
+
+ GLCapabilities[] caps = HDC2GLCapabilities(wglExt, hdc, getPixelFormatID(), glp, true, onscreen, usePBuffer);
+ if(null!=caps && null!=caps[0]) {
+ setCapsPFD(caps[0], getPixelFormat(), getPixelFormatID(), true);
+ }
+ }
+
+ protected void setCapsPFD(GLCapabilities caps, PIXELFORMATDESCRIPTOR pfd, int pfdID, boolean choosenByWGLPixelFormat) {
this.pixelfmt = pfd;
this.pixelfmtID = pfdID;
setChosenCapabilities(caps);
- isChosen=true;
+ this.isChosen=true;
+ this.choosenByWGLPixelFormat=choosenByWGLPixelFormat;
+ if (DEBUG) {
+ System.err.println("*** setCapsPFD: WGL-Choosen "+choosenByWGLPixelFormat+", pfdID "+pfdID+", "+caps);
+ }
}
public boolean getCapabilitiesChosen() {
@@ -94,6 +129,102 @@ public class WindowsWGLGraphicsConfiguration extends DefaultGraphicsConfiguratio
public PIXELFORMATDESCRIPTOR getPixelFormat() { return pixelfmt; }
public int getPixelFormatID() { return pixelfmtID; }
+ public boolean isChoosenByWGL() { return choosenByWGLPixelFormat; }
+
+ private static int haveWGLChoosePixelFormatARB = -1;
+ private static int haveWGLARBMultisample = -1;
+
+ public static GLCapabilities[] HDC2GLCapabilities(WGLExt wglExt, long hdc, int pfdIDOnly,
+ GLProfile glp, boolean relaxed, boolean onscreen, boolean usePBuffer) {
+
+ if(haveWGLChoosePixelFormatARB<0) {
+ haveWGLChoosePixelFormatARB = wglExt.isExtensionAvailable("WGL_ARB_pixel_format")?1:0;
+ }
+ if(haveWGLARBMultisample<0) {
+ haveWGLARBMultisample = wglExt.isExtensionAvailable("WGL_ARB_multisample")?1:0;
+ }
+ if (0==haveWGLChoosePixelFormatARB) {
+ return null;
+ }
+
+ // Produce a list of GLCapabilities to give to the
+ // GLCapabilitiesChooser.
+ // Use wglGetPixelFormatAttribivARB instead of
+ // DescribePixelFormat to get higher-precision information
+ // about the pixel format (should make the GLCapabilities
+ // more precise as well...i.e., remove the
+ // "HardwareAccelerated" bit, which is basically
+ // meaningless, and put in whether it can render to a
+ // window, to a pbuffer, or to a pixmap)
+ GLCapabilities[] availableCaps = null;
+ int numFormats = 0;
+ int niattribs = 0;
+ int[] iattributes = new int [2*MAX_ATTRIBS];
+ int[] iresults = new int [2*MAX_ATTRIBS];
+
+ iattributes[0] = WGLExt.WGL_NUMBER_PIXEL_FORMATS_ARB;
+ if (wglExt.wglGetPixelFormatAttribivARB(hdc, 0, 0, 1, iattributes, 0, iresults, 0)) {
+ numFormats = iresults[0];
+
+ if (DEBUG) {
+ System.err.println("wglGetPixelFormatAttribivARB reported WGL_NUMBER_PIXEL_FORMATS = " + numFormats);
+ }
+
+ if(pfdIDOnly>0 && pfdIDOnly>numFormats) {
+ throw new GLException("Invalid pixelformat ID " + pfdIDOnly + " (should be between 1 and " + numFormats + ")");
+ }
+
+ // Should we be filtering out the pixel formats which aren't
+ // applicable, as we are doing here?
+ // We don't have enough information in the GLCapabilities to
+ // represent those that aren't...
+ iattributes[niattribs++] = WGLExt.WGL_DRAW_TO_WINDOW_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_ACCELERATION_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_SUPPORT_OPENGL_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_DEPTH_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_STENCIL_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_DOUBLE_BUFFER_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_STEREO_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_PIXEL_TYPE_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_RED_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_GREEN_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_BLUE_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_ALPHA_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_ACCUM_RED_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_ACCUM_GREEN_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_ACCUM_BLUE_BITS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_ACCUM_ALPHA_BITS_ARB;
+ if (1==haveWGLARBMultisample) {
+ iattributes[niattribs++] = WGLExt.WGL_SAMPLE_BUFFERS_ARB;
+ iattributes[niattribs++] = WGLExt.WGL_SAMPLES_ARB;
+ }
+
+ if(pfdIDOnly>0) {
+ availableCaps = new GLCapabilities[1];
+ if (!wglExt.wglGetPixelFormatAttribivARB(hdc, pfdIDOnly, 0, niattribs, iattributes, 0, iresults, 0)) {
+ throw new GLException("Error getting pixel format attributes for pixel format " + pfdIDOnly + " of device context");
+ }
+ availableCaps[0] = AttribList2GLCapabilities(glp, iattributes, niattribs, iresults,
+ relaxed, onscreen, usePBuffer);
+ } else {
+ availableCaps = new GLCapabilities[numFormats];
+ for (int i = 0; i < numFormats; i++) {
+ if (!wglExt.wglGetPixelFormatAttribivARB(hdc, i+1, 0, niattribs, iattributes, 0, iresults, 0)) {
+ throw new GLException("Error getting pixel format attributes for pixel format " + (i + 1) + " of device context");
+ }
+ availableCaps[i] = AttribList2GLCapabilities(glp, iattributes, niattribs, iresults,
+ relaxed, onscreen, usePBuffer);
+ }
+ }
+ } else {
+ long lastErr = WGL.GetLastError();
+ // Intel Extreme graphics fails with a zero error code
+ if (lastErr != 0) {
+ throw new GLException("Unable to enumerate pixel formats of window using wglGetPixelFormatAttribivARB: error code " + WGL.GetLastError());
+ }
+ }
+ return availableCaps;
+ }
public static boolean GLCapabilities2AttribList(GLCapabilities caps,
int[] iattributes,
@@ -498,7 +629,7 @@ public class WindowsWGLGraphicsConfiguration extends DefaultGraphicsConfiguratio
}
public String toString() {
- return "WindowsWGLGraphicsConfiguration["+getScreen()+", pfdID " + pixelfmtID +
+ return "WindowsWGLGraphicsConfiguration["+getScreen()+", pfdID " + pixelfmtID + ", wglChoosen "+choosenByWGLPixelFormat+
",\n\trequested " + getRequestedCapabilities() +
",\n\tchosen " + getChosenCapabilities() +
"]";
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java
index f5974dc61..98ad83313 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java
@@ -99,6 +99,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
throw new IllegalArgumentException("This NativeWindowFactory accepts only GLCapabilitiesChooser objects");
}
+ boolean choosenBywGLPixelFormat = false;
WindowsWGLGraphicsConfiguration config = (WindowsWGLGraphicsConfiguration) nativeWindow.getGraphicsConfiguration().getNativeGraphicsConfiguration();
GLCapabilities capabilities = (GLCapabilities) config.getRequestedCapabilities();
boolean onscreen = capabilities.isOnscreen();
@@ -113,7 +114,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
}
PIXELFORMATDESCRIPTOR pfd = null;
- int pixelFormat = -1;
+ int pixelFormat = -1; // 1-based pixel format
boolean pixelFormatSet = false;
GLCapabilities chosenCaps = null;
@@ -125,7 +126,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
// - or the Java2D/OpenGL pipeline's configuration
if (DEBUG) {
System.err.println("!!!! NOTE: pixel format already chosen for HDC: 0x" + Long.toHexString(hdc)+
- ", pixelformat "+WGL.GetPixelFormat(hdc));
+ ", pixelformat "+pixelFormat);
}
pixelFormatSet = true;
}
@@ -138,27 +139,25 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
WindowsWGLDrawable dummyDrawable = null;
GLContextImpl dummyContext = null;
WGLExt dummyWGLExt = null;
- dummyDrawable = new WindowsDummyWGLDrawable(factory);
- dummyContext = (GLContextImpl) dummyDrawable.createContext(null);
- if (dummyContext != null) {
- dummyContext.makeCurrent();
- dummyWGLExt = (WGLExt) dummyContext.getPlatformGLExtensions();
- }
- int recommendedPixelFormat = pixelFormat - 1;
+ if (capabilities.getSampleBuffers()) {
+ dummyDrawable = new WindowsDummyWGLDrawable(factory);
+ dummyContext = (GLContextImpl) dummyDrawable.createContext(null);
+ if (dummyContext != null) {
+ dummyContext.makeCurrent();
+ dummyWGLExt = (WGLExt) dummyContext.getPlatformGLExtensions();
+ }
+ }
+ int recommendedPixelFormat = pixelFormat; // 1-based pixel format
boolean haveWGLChoosePixelFormatARB = false;
- boolean haveWGLARBMultisample = false;
boolean gotAvailableCaps = false;
if (dummyWGLExt != null) {
try {
haveWGLChoosePixelFormatARB = dummyWGLExt.isExtensionAvailable("WGL_ARB_pixel_format");
if (haveWGLChoosePixelFormatARB) {
- haveWGLARBMultisample = dummyWGLExt.isExtensionAvailable("WGL_ARB_multisample");
-
- int[] iattributes = new int [2*WindowsWGLGraphicsConfiguration.MAX_ATTRIBS];
- int[] iresults = new int [2*WindowsWGLGraphicsConfiguration.MAX_ATTRIBS];
- float[] fattributes = new float[1];
-
if(pixelFormat<=0) {
+ int[] iattributes = new int [2*WindowsWGLGraphicsConfiguration.MAX_ATTRIBS];
+ float[] fattributes = new float[1];
+
if(WindowsWGLGraphicsConfiguration.GLCapabilities2AttribList(capabilities,
iattributes,
dummyWGLExt,
@@ -174,8 +173,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
numFormatsTmp, 0)) {
numFormats = numFormatsTmp[0];
if (recommendedPixelFormat<=0 && numFormats > 0) {
- // Remove one-basing of pixel format (added on later)
- recommendedPixelFormat = pformats[0] - 1;
+ recommendedPixelFormat = pformats[0];
if (DEBUG) {
System.err.println(getThreadName() + ": Used wglChoosePixelFormatARB to recommend pixel format " + recommendedPixelFormat);
}
@@ -187,7 +185,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
}
}
if (DEBUG) {
- if (recommendedPixelFormat < 0) {
+ if (recommendedPixelFormat <= 0) {
System.err.print(getThreadName() + ": wglChoosePixelFormatARB didn't recommend a pixel format");
if (capabilities.getSampleBuffers()) {
System.err.print(" for multisampled GLCapabilities");
@@ -198,65 +196,9 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
}
}
- // Produce a list of GLCapabilities to give to the
- // GLCapabilitiesChooser.
- // Use wglGetPixelFormatAttribivARB instead of
- // DescribePixelFormat to get higher-precision information
- // about the pixel format (should make the GLCapabilities
- // more precise as well...i.e., remove the
- // "HardwareAccelerated" bit, which is basically
- // meaningless, and put in whether it can render to a
- // window, to a pbuffer, or to a pixmap)
- int niattribs = 0;
- iattributes[0] = WGLExt.WGL_NUMBER_PIXEL_FORMATS_ARB;
- if (dummyWGLExt.wglGetPixelFormatAttribivARB(hdc, 0, 0, 1, iattributes, 0, iresults, 0)) {
- numFormats = iresults[0];
-
- if (DEBUG) {
- System.err.println("wglGetPixelFormatAttribivARB reported WGL_NUMBER_PIXEL_FORMATS = " + numFormats);
- }
-
- // Should we be filtering out the pixel formats which aren't
- // applicable, as we are doing here?
- // We don't have enough information in the GLCapabilities to
- // represent those that aren't...
- iattributes[niattribs++] = WGLExt.WGL_DRAW_TO_WINDOW_ARB;
- iattributes[niattribs++] = WGLExt.WGL_ACCELERATION_ARB;
- iattributes[niattribs++] = WGLExt.WGL_SUPPORT_OPENGL_ARB;
- iattributes[niattribs++] = WGLExt.WGL_DEPTH_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_STENCIL_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_DOUBLE_BUFFER_ARB;
- iattributes[niattribs++] = WGLExt.WGL_STEREO_ARB;
- iattributes[niattribs++] = WGLExt.WGL_PIXEL_TYPE_ARB;
- iattributes[niattribs++] = WGLExt.WGL_RED_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_GREEN_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_BLUE_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_ALPHA_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_ACCUM_RED_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_ACCUM_GREEN_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_ACCUM_BLUE_BITS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_ACCUM_ALPHA_BITS_ARB;
- if (haveWGLARBMultisample) {
- iattributes[niattribs++] = WGLExt.WGL_SAMPLE_BUFFERS_ARB;
- iattributes[niattribs++] = WGLExt.WGL_SAMPLES_ARB;
- }
-
- availableCaps = new GLCapabilities[numFormats];
- for (int i = 0; i < numFormats; i++) {
- if (!dummyWGLExt.wglGetPixelFormatAttribivARB(hdc, i+1, 0, niattribs, iattributes, 0, iresults, 0)) {
- throw new GLException("Error getting pixel format attributes for pixel format " + (i + 1) + " of device context");
- }
- availableCaps[i] = WindowsWGLGraphicsConfiguration.AttribList2GLCapabilities(glProfile, iattributes, niattribs, iresults,
- pixelFormatSet, onscreen, usePBuffer);
- }
- gotAvailableCaps = true;
- } else {
- long lastErr = WGL.GetLastError();
- // Intel Extreme graphics fails with a zero error code
- if (lastErr != 0) {
- throw new GLException("Unable to enumerate pixel formats of window using wglGetPixelFormatAttribivARB: error code " + WGL.GetLastError());
- }
- }
+ availableCaps = WindowsWGLGraphicsConfiguration.HDC2GLCapabilities(dummyWGLExt, hdc, -1, glProfile, pixelFormatSet, onscreen, usePBuffer);
+ gotAvailableCaps = null!=availableCaps ;
+ choosenBywGLPixelFormat = gotAvailableCaps ;
}
} finally {
dummyContext.release();
@@ -265,7 +207,6 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
}
}
- // Fallback path for older cards, in particular Intel Extreme motherboard graphics
if (!gotAvailableCaps) {
if (DEBUG) {
if (!capabilities.getSampleBuffers()) {
@@ -279,8 +220,6 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
if (DEBUG) {
System.err.println(getThreadName() + ": Recommended pixel format = " + recommendedPixelFormat);
}
- // Remove one-basing of pixel format (added on later)
- recommendedPixelFormat -= 1;
numFormats = WGL.DescribePixelFormat(hdc, 1, 0, null);
if (numFormats == 0) {
@@ -305,19 +244,18 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
if(null!=chooser) {
// Supply information to chooser
try {
- pixelFormat = chooser.chooseCapabilities(capabilities, availableCaps, recommendedPixelFormat);
+ pixelFormat = chooser.chooseCapabilities(capabilities, availableCaps, recommendedPixelFormat) + 1;
} catch (NativeWindowException e) {
throw new GLException(e);
}
} else {
pixelFormat = recommendedPixelFormat;
}
- if ((pixelFormat < 0) || (pixelFormat >= numFormats)) {
+ if ((pixelFormat <= 0) || (pixelFormat > numFormats)) {
throw new GLException("Invalid result " + pixelFormat +
- " from GLCapabilitiesChooser (should be between 0 and " +
- (numFormats - 1) + ")");
+ " from GLCapabilitiesChooser (should be between 1 and " +
+ numFormats + ")");
}
- pixelFormat += 1; // one-base the index
}
chosenCaps = availableCaps[pixelFormat-1];
if (DEBUG) {
@@ -355,7 +293,7 @@ public class WindowsWGLGraphicsConfigurationFactory extends GraphicsConfiguratio
} else {
capabilities = WindowsWGLGraphicsConfiguration.PFD2GLCapabilities(glProfile, pfd, onscreen, usePBuffer);
}
- config.setCapsPFD(capabilities, pfd, pixelFormat);
+ config.setCapsPFD(capabilities, pfd, pixelFormat, choosenBywGLPixelFormat);
}
protected static String getThreadName() {
diff --git a/src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java b/src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java
index a173baff0..18dc7dae3 100755
--- a/src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java
+++ b/src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java
@@ -59,7 +59,7 @@ public class WindowsWindow extends Window {
hmon = MonitorFromWindow(windowHandle);
if(DEBUG_IMPLEMENTATION || DEBUG_WINDOW_EVENT) {
Exception e = new Exception("!!! Window new surface handle "+Thread.currentThread().getName()+
- ",HDC 0x"+Long.toHexString(hdc)+", HMON 0x"+Long.toHexString(hmon));
+ ", HWND 0x"+Long.toHexString(windowHandle)+", HDC 0x"+Long.toHexString(hdc)+", HMON 0x"+Long.toHexString(hmon));
e.printStackTrace();
}
}
@@ -105,6 +105,11 @@ public class WindowsWindow extends Window {
throw new NativeWindowException("Error creating window");
}
windowHandleClose = windowHandle;
+ if(DEBUG_IMPLEMENTATION || DEBUG_WINDOW_EVENT) {
+ Exception e = new Exception("!!! Window new window handle "+Thread.currentThread().getName()+
+ ", HWND 0x"+Long.toHexString(windowHandle));
+ e.printStackTrace();
+ }
}
protected void closeNative() {
--
cgit v1.2.3
From 1394a508ab1191e4c200e68342a1b612ba7ff4cc Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Fri, 31 Jul 2009 20:13:46 -0700
Subject: JOGL: - GL2ES12: - Fix calling convention, broke on
Windows. - Remove GL_APIENTRY on gl2/gl3 header: This was a bug.
- Using proper GL2's APIENTRY
- jogl.all.jar: Add missing shader code ..
---
make/build-jogl.xml | 2 +-
make/config/jogl/gl-gl2es12.cfg | 4 ++++
make/config/jogl/gl-headers.cfg | 4 ----
make/config/jogl/gl3-headers.cfg | 4 ----
4 files changed, 5 insertions(+), 9 deletions(-)
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index 08f0d6ef2..e5bb1ab38 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -1776,7 +1776,7 @@
+ includes="${java.part.util.fixedfuncemu.shadercode}"/>
diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg
index c233ef4fd..27fa138d4 100644
--- a/make/config/jogl/gl-gl2es12.cfg
+++ b/make/config/jogl/gl-gl2es12.cfg
@@ -32,6 +32,10 @@ ForceProcAddressGen glMapBuffer
# 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
+
EmitProcAddressTable true
ProcAddressTableClassName GL2ES12ProcAddressTable
GetProcAddressTableExpr ((GL2ES12ProcAddressTable)_context.getGLProcAddressTable())
diff --git a/make/config/jogl/gl-headers.cfg b/make/config/jogl/gl-headers.cfg
index 1cc5bf05b..5a648b582 100755
--- a/make/config/jogl/gl-headers.cfg
+++ b/make/config/jogl/gl-headers.cfg
@@ -35,7 +35,3 @@ CustomCCode #include
CustomCCode #include
CustomCCode #include
CustomCCode #endif
-CustomCCode /* Provide GLES #define for locally generated function pointer typedefs */
-CustomCCode #ifndef GL_APIENTRY
-CustomCCode #define GL_APIENTRY GLAPIENTRY
-CustomCCode #endif
diff --git a/make/config/jogl/gl3-headers.cfg b/make/config/jogl/gl3-headers.cfg
index 282a91ec5..8af9157cf 100755
--- a/make/config/jogl/gl3-headers.cfg
+++ b/make/config/jogl/gl3-headers.cfg
@@ -23,7 +23,3 @@ CustomCCode #include
CustomCCode #include
CustomCCode #include
CustomCCode #endif
-CustomCCode /* Provide GLES #define for locally generated function pointer typedefs */
-CustomCCode #ifndef GL_APIENTRY
-CustomCCode #define GL_APIENTRY GLAPIENTRY
-CustomCCode #endif
--
cgit v1.2.3
From 4e0a5af0b359b98b26ea3e961d023c658650be6c Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Sat, 1 Aug 2009 05:37:29 -0700
Subject: GL3 Related:
- Fix glGetStringi's return type to String
- Fix ExtensionAvailabilityCache:
GL3's glGetStringi for GL_EXTENSIONS
Ensure to add GL_VERSION_2_0 in case version >= 3.0
Ensure to not exceed version 3.0 for non GL3.1 context.
In case of GL 3.1, do not include GL_VERSIONS below 3.0,
since this is a forward compatible context.
- Add Prologue to glGetString, where the ExtensionCache is being
used for GL_EXTENSIONS - if already initialized.
This feature adds backward compatibility for GL3 context on GL_EXTENSION.
+++
General:
Add GLPipelineFactory, a convenient pipeline factory for Debug/Trace and custom ones ..
Change 'void setGL(GL)' to 'GL setGL(GL)', and let it return the successful set GL,
or null.
---
make/config/jogl/gl-common.cfg | 9 +
make/config/jogl/gl-gl2es12.cfg | 2 +-
.../opengl/impl/ExtensionAvailabilityCache.java | 178 +++++++++++++++----
.../classes/com/sun/opengl/impl/GLContextImpl.java | 26 ++-
.../classes/com/sun/opengl/impl/GLPbufferImpl.java | 4 +-
.../opengl/util/glsl/fixedfunc/FixedFuncUtil.java | 15 +-
.../classes/javax/media/opengl/GLAutoDrawable.java | 5 +-
src/jogl/classes/javax/media/opengl/GLContext.java | 4 +-
.../javax/media/opengl/GLPipelineFactory.java | 195 +++++++++++++++++++++
.../classes/javax/media/opengl/awt/GLCanvas.java | 4 +-
.../classes/javax/media/opengl/awt/GLJPanel.java | 4 +-
.../com/sun/javafx/newt/opengl/GLWindow.java | 4 +-
12 files changed, 405 insertions(+), 45 deletions(-)
create mode 100644 src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
(limited to 'make')
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index a26c6a6b3..269ea68a7 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -230,6 +230,7 @@ IgnoreExtension GL_EXT_texture_rectangle
Opaque boolean GLboolean
ReturnsString glGetString
+ReturnsString glGetStringi
# Experimental: Only NIO function, no arrays ..
# NIOOnly __ALL__
@@ -323,6 +324,14 @@ ArgumentIsString glTransformFeedbackVaryings 2
# ArgumentIsString glGetShaderSource 3
# ArgumentIsString glGetTransformFeedbackVarying 6
+#
+# Use cached GL_EXTENSION if possible,
+# which also allows GL3 compatibility.
+#
+JavaPrologue glGetString if(GL.GL_EXTENSIONS==name && _context.isExtensionCacheInitialized()) {
+JavaPrologue glGetString return _context.getGLExtensions();
+JavaPrologue glGetString }
+
#
# Directives for Vertex Buffer Object and Pixel Buffer Object checking
#
diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg
index 27fa138d4..36bab82ed 100644
--- a/make/config/jogl/gl-gl2es12.cfg
+++ b/make/config/jogl/gl-gl2es12.cfg
@@ -13,10 +13,10 @@ ExtendedInterfaceSymbolsOnly ../src/jogl/classes/javax/media/opengl/fixedfunc/GL
Style ImplOnly
ImplPackage com.sun.opengl.impl.gl2es12
ImplJavaClass GL2ES12Impl
+Implements GL2ES12Impl GLBase
Implements GL2ES12Impl GL
Implements GL2ES12Impl GL2ES1
Implements GL2ES12Impl GL2ES2
-Implements GL2ES12Impl GLBase
Include gl-common-gl2.cfg
Include gl-common-extensions.cfg
diff --git a/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java b/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java
index eee308088..7931f791b 100644
--- a/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java
+++ b/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java
@@ -65,7 +65,25 @@ public final class ExtensionAvailabilityCache {
*/
public void flush()
{
+ if(DEBUG) {
+ System.out.println("ExtensionAvailabilityCache: Flush availability OpenGL "+majorVersion+"."+minorVersion);
+ }
availableExtensionCache.clear();
+ initialized = false;
+ majorVersion = 1;
+ minorVersion = 0;
+ }
+
+ /**
+ * Flush the cache and rebuild the cache.
+ */
+ public void reset() {
+ flush();
+ initAvailableExtensions();
+ }
+
+ public boolean isInitialized() {
+ return initialized && !availableExtensionCache.isEmpty() ;
}
public boolean isExtensionAvailable(String glExtensionName) {
@@ -73,19 +91,101 @@ public final class ExtensionAvailabilityCache {
return availableExtensionCache.contains(mapGLExtensionName(glExtensionName));
}
- protected void initAvailableExtensions() {
+ public String getPlatformExtensionsString() {
+ initAvailableExtensions();
+ return glXExtensions;
+ }
+
+ public String getGLExtensions() {
+ initAvailableExtensions();
+ if(DEBUG) {
+ System.err.println("ExtensionAvailabilityCache: getGLExtensions() called");
+ }
+ return glExtensions;
+ }
+
+ public int getMajorVersion() {
+ initAvailableExtensions();
+ return majorVersion;
+ }
+
+ public int getMinorVersion() {
+ initAvailableExtensions();
+ return minorVersion;
+ }
+
+ private void initAvailableExtensions() {
// if hash is empty (meaning it was flushed), pre-cache it with the list
// of extensions that are in the GL_EXTENSIONS string
- if (availableExtensionCache.isEmpty()) {
+ if (availableExtensionCache.isEmpty() || !initialized) {
GL gl = context.getGL();
+
if (DEBUG) {
- System.err.println("!!! Pre-caching extension availability");
+ System.err.println("ExtensionAvailabilityCache: Pre-caching init "+gl+", GL_VERSION "+gl.glGetString(GL.GL_VERSION));
+ }
+
+ // Set version
+ Version version = new Version(gl.glGetString(GL.GL_VERSION));
+ if (version.isValid()) {
+ majorVersion = version.getMajor();
+ minorVersion = version.getMinor();
+
+ if( !gl.isGL3() &&
+ ( majorVersion > 3 ||
+ ( majorVersion == 3 && minorVersion >= 1 ) ) ) {
+ // downsize version to 3.0 in case we are not using GL3 (3.1)
+ majorVersion = 3;
+ minorVersion = 0;
+ }
}
- String allAvailableExtensions =
- gl.glGetString(GL.GL_EXTENSIONS) + " " + context.getPlatformExtensionsString();
+
+ boolean useGetStringi = false;
+
+ if ( majorVersion > 3 ||
+ ( majorVersion == 3 && minorVersion >= 0 ) ||
+ gl.isGL3() ) {
+ if ( ! gl.isGL2GL3() ) {
+ if(DEBUG) {
+ System.err.println("ExtensionAvailabilityCache: GL >= 3.1 usage, but no GL2GL3 interface: "+gl.getClass().getName());
+ }
+ } else if ( ! gl.isFunctionAvailable("glGetStringi") ) {
+ if(DEBUG) {
+ System.err.println("ExtensionAvailabilityCache: GL >= 3.1 usage, but no glGetStringi");
+ }
+ } else {
+ useGetStringi = true;
+ }
+ }
+
if (DEBUG) {
- System.err.println("!!! Available extensions: " + allAvailableExtensions);
- System.err.println("!!! GL vendor: " + gl.glGetString(GL.GL_VENDOR));
+ System.err.println("ExtensionAvailabilityCache: Pre-caching extension availability OpenGL "+majorVersion+"."+minorVersion+
+ ", use "+ ( useGetStringi ? "glGetStringi" : "glGetString" ) );
+ }
+
+ StringBuffer sb = new StringBuffer();
+ if(useGetStringi) {
+ GL2GL3 gl2gl3 = gl.getGL2GL3();
+ int[] numExtensions = { 0 } ;
+ gl2gl3.glGetIntegerv(gl2gl3.GL_NUM_EXTENSIONS, numExtensions, 0);
+ for (int i = 0; i < numExtensions[0]; i++) {
+ sb.append(gl2gl3.glGetStringi(gl2gl3.GL_EXTENSIONS, i));
+ if(i < numExtensions[0]) {
+ sb.append(" ");
+ }
+ }
+ } else {
+ sb.append(gl.glGetString(GL.GL_EXTENSIONS));
+ }
+ glExtensions = sb.toString();
+ glXExtensions = context.getPlatformExtensionsString();
+
+ sb.append(" ");
+ sb.append(glXExtensions);
+
+ String allAvailableExtensions = sb.toString();
+ if (DEBUG_AVAILABILITY) {
+ System.err.println("ExtensionAvailabilityCache: Available extensions: " + allAvailableExtensions);
+ System.err.println("ExtensionAvailabilityCache: GL vendor: " + gl.glGetString(GL.GL_VENDOR));
}
StringTokenizer tok = new StringTokenizer(allAvailableExtensions);
while (tok.hasMoreTokens()) {
@@ -93,42 +193,53 @@ public final class ExtensionAvailabilityCache {
availableExt = availableExt.intern();
availableExtensionCache.add(availableExt);
if (DEBUG_AVAILABILITY) {
- System.err.println("!!! Available: " + availableExt);
+ System.err.println("ExtensionAvailabilityCache: Available: " + availableExt);
}
}
// Put GL version strings in the table as well
- Version version = new Version(gl.glGetString(GL.GL_VERSION));
- if (version.isValid()) {
- int major = version.getMajor();
- int minor = version.getMinor();
- // FIXME: this needs to be adjusted when the major rev changes
- // beyond the known ones
- while (major > 0) {
- while (minor >= 0) {
- availableExtensionCache.add("GL_VERSION_" + major + "_" + minor);
- if (DEBUG) {
- System.err.println("!!! Added GL_VERSION_" + major + "_" + minor + " to known extensions");
- }
- --minor;
+ // FIXME: this needs to be adjusted when the major rev changes
+ // beyond the known ones
+ int major = majorVersion;
+ int minor = minorVersion;
+ while (major > 0) {
+ while (minor >= 0) {
+ availableExtensionCache.add("GL_VERSION_" + major + "_" + minor);
+ if (DEBUG) {
+ System.err.println("ExtensionAvailabilityCache: Added GL_VERSION_" + major + "_" + minor + " to known extensions");
}
+ --minor;
+ }
- switch (major) {
- case 2:
- // Restart loop at version 1.5
- minor = 5;
- break;
- case 1:
- break;
+ switch (major) {
+ case 2:
+ if(gl.isGL3() && major==2) {
+ // GL3 is a GL 3.1 forward compatible context,
+ // hence no 2.0, 1.0 - 1.5 GL versions are supported.
+ major=0;
+ } else {
+ // make sure 2.0 is added ..
+ minor = 0;
+ availableExtensionCache.add("GL_VERSION_" + major + "_" + minor);
+ if (DEBUG) {
+ System.err.println("ExtensionAvailabilityCache: Added GL_VERSION_" + major + "_" + minor + " to known extensions");
+ }
}
-
- --major;
+ // Restart loop at version 1.5
+ minor = 5;
+ break;
+ case 1:
+ break;
}
+
+ --major;
}
// put a dummy var in here so that the cache is no longer empty even if
// no extensions are in the GL_EXTENSIONS string
availableExtensionCache.add("");
+
+ initialized = true;
}
}
@@ -146,6 +257,11 @@ public final class ExtensionAvailabilityCache {
// Internals only below this point
//
+ private boolean initialized = false;
+ private int majorVersion = 1;
+ private int minorVersion = 0;
+ private String glExtensions = null;
+ private String glXExtensions = null;
private HashSet availableExtensionCache = new HashSet(50);
private GLContextImpl context;
@@ -236,7 +352,7 @@ public final class ExtensionAvailabilityCache {
{
// FIXME: refactor desktop OpenGL dependencies and make this
// class work properly for OpenGL ES
- System.err.println("FunctionAvailabilityCache.Version.: "+e);
+ System.err.println("ExtensionAvailabilityCache: FunctionAvailabilityCache.Version.: "+e);
major = 1;
minor = 0;
/*
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
index fa7e1ade7..16eb934bd 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
@@ -228,7 +228,7 @@ public abstract class GLContextImpl extends GLContext {
return gl;
}
- public void setGL(GL gl) {
+ public GL setGL(GL gl) {
if(DEBUG) {
String sgl1 = (null!=this.gl)?this.gl.getClass().toString()+", "+this.gl.toString():new String("");
String sgl2 = (null!=gl)?gl.getClass().toString()+", "+gl.toString():new String("");
@@ -236,6 +236,7 @@ public abstract class GLContextImpl extends GLContext {
e.printStackTrace();
}
this.gl = gl;
+ return gl;
}
public abstract Object getPlatformGLExtensions();
@@ -354,7 +355,6 @@ public abstract class GLContextImpl extends GLContext {
if(null==this.gl) {
throw new GLException("setGLFunctionAvailability not called yet");
}
- extensionAvailability.flush();
if (DEBUG) {
System.err.println(getThreadName() + ": !!! Initializing OpenGL extension address table for " + this);
}
@@ -364,6 +364,8 @@ public abstract class GLContextImpl extends GLContext {
// share them among contexts with the same capabilities
}
resetProcAddressTable(getGLProcAddressTable());
+
+ extensionAvailability.reset();
}
/**
@@ -426,6 +428,26 @@ public abstract class GLContextImpl extends GLContext {
return extensionAvailability.isExtensionAvailable(mapToRealGLExtensionName(glExtensionName));
}
+ public String getPlatformExtensionsString() {
+ return extensionAvailability.getPlatformExtensionsString();
+ }
+
+ public String getGLExtensions() {
+ return extensionAvailability.getGLExtensions();
+ }
+
+ public int getMajorVersion() {
+ return extensionAvailability.getMajorVersion();
+ }
+
+ public int getMinorVersion() {
+ return extensionAvailability.getMinorVersion();
+ }
+
+ public boolean isExtensionCacheInitialized() {
+ return extensionAvailability.isInitialized();
+ }
+
/** Indicates which floating-point pbuffer implementation is in
use. Returns one of GLPbuffer.APPLE_FLOAT, GLPbuffer.ATI_FLOAT,
or GLPbuffer.NV_FLOAT. */
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLPbufferImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLPbufferImpl.java
index e414fbc8e..8aba26fc6 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLPbufferImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLPbufferImpl.java
@@ -129,8 +129,8 @@ public class GLPbufferImpl implements GLPbuffer {
return getContext().getGL();
}
- public void setGL(GL gl) {
- getContext().setGL(gl);
+ public GL setGL(GL gl) {
+ return getContext().setGL(gl);
}
public void setAutoSwapBufferMode(boolean onOrOff) {
diff --git a/src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java b/src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java
index 9c8a65173..4149aec69 100644
--- a/src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java
+++ b/src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java
@@ -14,12 +14,12 @@ import com.sun.opengl.util.glsl.fixedfunc.impl.*;
*/
public class FixedFuncUtil {
/**
- * @return If gl is a GL2ES1, return the type cast object,
+ * @return If gl is a GL2ES1 and force is false, return the type cast object,
* otherwise create a fixed function emulation pipeline with the GL2ES2 impl.
* @throws GLException if the GL object is neither GL2ES1 nor GL2ES2
*/
- public static final GL2ES1 getFixedFuncImpl(GL gl) {
- if(gl.isGL2ES1()) {
+ public static final GL2ES1 getFixedFuncImpl(GL gl, boolean force) {
+ if(!force && gl.isGL2ES1()) {
return gl.getGL2ES1();
} else if(gl.isGL2ES2()) {
GL2ES2 es2 = gl.getGL2ES2();
@@ -31,6 +31,15 @@ public class FixedFuncUtil {
throw new GLException("GL Object is neither GL2ES1 nor GL2ES2");
}
+ /**
+ * @return If gl is a GL2ES1, return the type cast object,
+ * otherwise create a fixed function emulation pipeline with the GL2ES2 impl.
+ * @throws GLException if the GL object is neither GL2ES1 nor GL2ES2
+ */
+ public static final GL2ES1 getFixedFuncImpl(GL gl) {
+ return getFixedFuncImpl(gl, false);
+ }
+
/**
* Mapping fixed function (client) array indices to
* GLSL array attribute names.
diff --git a/src/jogl/classes/javax/media/opengl/GLAutoDrawable.java b/src/jogl/classes/javax/media/opengl/GLAutoDrawable.java
index 43347c416..a94c14f33 100644
--- a/src/jogl/classes/javax/media/opengl/GLAutoDrawable.java
+++ b/src/jogl/classes/javax/media/opengl/GLAutoDrawable.java
@@ -208,6 +208,7 @@ public interface GLAutoDrawable extends GLDrawable {
This should only be called from within the GLEventListener's
callback methods, and usually only from within the init()
method, in order to install a composable pipeline. See the JOGL
- demos for examples. */
- public void setGL(GL gl);
+ demos for examples.
+ @return the set GL pipeline or null if not successful */
+ public GL setGL(GL gl);
}
diff --git a/src/jogl/classes/javax/media/opengl/GLContext.java b/src/jogl/classes/javax/media/opengl/GLContext.java
index a2bff729a..8ff52b6e9 100644
--- a/src/jogl/classes/javax/media/opengl/GLContext.java
+++ b/src/jogl/classes/javax/media/opengl/GLContext.java
@@ -205,8 +205,10 @@ public abstract class GLContext {
/**
* Sets the GL pipeline object for this GLContext.
+ *
+ * @return the set GL pipeline or null if not successful
*/
- public abstract void setGL(GL gl);
+ public abstract GL setGL(GL gl);
/**
* Returns the attached user object for the given name to this GLContext.
diff --git a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
new file mode 100644
index 000000000..bb9f86911
--- /dev/null
+++ b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ * You acknowledge that this software is not designed or intended for use
+ * in the design, construction, operation or maintenance of any nuclear
+ * facility.
+ */
+
+package javax.media.opengl;
+
+import java.lang.reflect.*;
+import java.util.StringTokenizer;
+
+import com.sun.opengl.impl.*;
+
+/**
+ * Factory for pipelining GL instances
+ */
+public class GLPipelineFactory {
+ public static final boolean DEBUG = Debug.debug("GLPipelineFactory");
+
+ /**
+ * Creates a pipelined GL instance using the given downstream downstream
+ * and optional arguments additionalArgs
for the constructor.
+ *
+ * The upstream GL instance is determined as follows:
+ *
+ * - Use
pipelineClazzBaseName
as the class name's full basename, incl. package name
+ * - For all
downstream
classes, do:
+ *
+ * - For all
downstream
class interfaces, do:
+ *
+ * - If
reqInterface
is not null and the interface is unequal, continue.
+ * - If
downstream
is not instance of interface, continue.
+ * - If
downstream
is not instance of interface, continue.
+ * - If upstream class is available use it, end loop.
+ *
+ *
+ *
+ *
+ * @arg pipelineClazzBaseName the basename of the pipline class name
+ * @arg reqInterface optional requested interface to be used, may be null, in which case the first matching one is used
+ * @arg downstream is always the 1st argument for the upstream constructor
+ * @arg additionalArgs additional arguments for the upstream constructor
+ */
+ public static final GL create(String pipelineClazzBaseName, Class reqInterface, GL downstream, Object[] additionalArgs) {
+ Class downstreamClazz = downstream.getClass();
+ Class upstreamClazz = null;
+ Class interfaceClazz = null;
+
+ if(DEBUG) {
+ System.out.println("GLPipelineFactory: Start "+downstreamClazz.getName()+", req. Interface: "+reqInterface+" -> "+pipelineClazzBaseName);
+ }
+
+ // For all classes: child -> parent
+ do {
+ // For all interfaces: right -> left == child -> parent
+ // It is important that this matches with the gluegen cfg file's 'Implements' clause !
+ Class[] clazzes = downstreamClazz.getInterfaces();
+ for(int i=clazzes.length-1; null==upstreamClazz && i>=0; i--) {
+ if(DEBUG) {
+ System.out.println("GLPipelineFactory: Try "+downstreamClazz.getName()+" Interface["+i+"]: "+clazzes[i].getName());
+ }
+ if( reqInterface != null && !reqInterface.getName().equals(clazzes[i].getName()) ) {
+ if(DEBUG) {
+ System.out.println("GLPipelineFactory: requested Interface "+reqInterface+" is _not_ "+ clazzes[i].getName());
+ }
+ continue; // not the requested one ..
+ }
+ if( ! clazzes[i].isInstance(downstream) ) {
+ if(DEBUG) {
+ System.out.println("GLPipelineFactory: "+downstream.getClass().getName() + " is _not_ instance of "+ clazzes[i].getName());
+ }
+ continue; // not a compatible one
+ } else {
+ if(DEBUG) {
+ System.out.println("GLPipelineFactory: "+downstream.getClass().getName() + " _is_ instance of "+ clazzes[i].getName());
+ }
+ }
+ upstreamClazz = getUpstreamClazz(clazzes[i], pipelineClazzBaseName);
+ if( null != upstreamClazz ) {
+ interfaceClazz = clazzes[i];
+ }
+ }
+
+ if(null==upstreamClazz) {
+ downstreamClazz = downstreamClazz.getSuperclass();
+ }
+ } while (null!=downstreamClazz && null==upstreamClazz);
+
+
+ if(null==upstreamClazz) {
+ throw new GLException("No pipeline ("+pipelineClazzBaseName+"*) available for :"+downstream.getClass().getName());
+ }
+
+ if(DEBUG) {
+ System.out.println("GLPipelineFactory: Got : "+ upstreamClazz.getName()+", base interface: "+interfaceClazz.getName());
+ }
+
+ Class[] cstrArgTypes = new Class[ 1 + ( ( null==additionalArgs ) ? 0 : additionalArgs.length ) ] ;
+ {
+ int i = 0;
+ cstrArgTypes[i++] = interfaceClazz;
+ for(int j=0; null!=additionalArgs && j
Date: Sun, 2 Aug 2009 03:49:31 -0700
Subject: Update OpenGL GL2 profile subsumed/promoted extensions. Base is 3.0,
ignore the colission-free subsumed extensions.
---
make/config/jogl/gl-common.cfg | 63 +++++++++++++++++++++-
make/config/jogl/gl-gl2.cfg | 2 +
make/config/jogl/gl-if-CustomJavaCode-gl2.java | 40 ++++++++++++++
make/config/jogl/gl-impl-CustomJavaCode-gl2.java | 1 +
make/doc/jogl/spec-overview.html | 26 ++++++---
.../javax/media/opengl/GLPipelineFactory.java | 9 ++--
6 files changed, 128 insertions(+), 13 deletions(-)
create mode 100644 make/config/jogl/gl-if-CustomJavaCode-gl2.java
(limited to 'make')
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 269ea68a7..3e38aa0da 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -133,6 +133,7 @@ IgnoreExtension GL_EXT_coordinate_frame
# Ignore discontinued extensions
IgnoreExtension GL_NV_element_array
+# >>> OpenGL 1.1
# Ignore extensions subsumed in OpenGL 1.1 (from OpenGL 1.1 spec, Appendix C)
IgnoreExtension GL_EXT_vertex_array
IgnoreExtension GL_EXT_blend_logic_op
@@ -141,7 +142,9 @@ IgnoreExtension GL_EXT_polygon_offset
IgnoreExtension GL_EXT_subtexture
IgnoreExtension GL_EXT_texture
IgnoreExtension GL_EXT_texture_object
+# <<< OpenGL 1.1
+# >>> OpenGL 1.2
# Ignore extensions subsumed in OpenGL 1.2 and 1.2.1 (from OpenGL 1.2.1 spec, Appendix D)
IgnoreExtension GL_EXT_bgra
IgnoreExtension GL_EXT_blend_color
@@ -163,7 +166,9 @@ IgnoreExtension GL_SGI_color_matrix
IgnoreExtension GL_SGI_color_table
IgnoreExtension GL_SGIS_texture_edge_clamp
IgnoreExtension GL_SGIS_texture_lod
+# <<< OpenGL 1.2
+# >>> OpenGL 1.3
# Ignore extensions subsumed in OpenGL 1.3 (from OpenGL 1.3 spec, Appendix F)
IgnoreExtension GL_ARB_multisample
IgnoreExtension GL_ARB_multitexture
@@ -179,7 +184,9 @@ IgnoreExtension GL_EXT_texture_env_add
IgnoreExtension GL_EXT_texture_env_combine
IgnoreExtension GL_EXT_texture_env_dot3
IgnoreExtension GL_SGIS_texture_border_clamp
+# <<< OpenGL 1.3
+# >>> OpenGL 1.4
# Ignore extensions subsumed in OpenGL 1.4 (from OpenGL 1.4 spec, Appendix G)
IgnoreExtension GL_ARB_depth_texture
IgnoreExtension GL_ARB_point_parameters
@@ -195,29 +202,81 @@ IgnoreExtension GL_EXT_secondary_color
IgnoreExtension GL_EXT_stencil_wrap
IgnoreExtension GL_NV_blend_square
IgnoreExtension GL_SGIS_generate_mipmap
+# <<< OpenGL 1.4
+# >>> OpenGL 1.5
# Ignore extensions subsumed in OpenGL 1.5 (from OpenGL 1.5 spec, Appendix H)
IgnoreExtension GL_ARB_occlusion_query
IgnoreExtension GL_ARB_vertex_buffer_object
IgnoreExtension GL_EXT_shadow_funcs
+# <<< OpenGL 1.5
+# >>> OpenGL 2.0
# Ignore extensions subsumed in OpenGL 2.0 (from OpenGL 2.0 spec, Appendix I)
# NOTE that GL_ARB_shader_objects is NOT ignored here, because the
# naming convention is too different for us to pick up the entry
# points automatically (e.g. glCreateShaderObjectARB was exposed as
# glCreateShader)
+# IgnoreExtension GL_ARB_shader_objects
IgnoreExtension GL_ARB_vertex_shader
IgnoreExtension GL_ARB_fragment_shader
-IgnoreExtension GL_ARB_draw_buffers
IgnoreExtension GL_ARB_texture_non_power_of_two
IgnoreExtension GL_ARB_point_sprite
+IgnoreExtension GL_ARB_draw_buffers
IgnoreExtension GL_EXT_blend_equation_separate
# Don't ignore the following one since the entry point is different from anything in the core
# IgnoreExtension GL_EXT_stencil_two_side
+# <<< OpenGL 2.0
+# >>> OpenGL 2.1
# Ignore extensions subsumed in OpenGL 2.1 (from OpenGL 2.1 spec, Appendix J)
IgnoreExtension GL_ARB_pixel_buffer_object
IgnoreExtension GL_EXT_texture_sRGB
+# <<< OpenGL 2.1
+
+# >>> OpenGL 3.0
+# Ignore extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N)
+IgnoreExtension GL_EXT_gpu_shader4
+
+IgnoreExtension GL_NV_conditional_render
+
+#Not promoted in header files: GL_APPLE_flush_buffer_range
+
+IgnoreExtension GL_ARB_color_buffer_float
+#Not promoted in header files: GL_NV_depth_buffer_float
+IgnoreExtension GL_ARB_texture_float
+IgnoreExtension GL_EXT_packed_float
+IgnoreExtension GL_EXT_texture_shared_exponent
+
+IgnoreExtension GL_EXT_framebuffer_object
+
+# GL_NV_half_float, GL_NV_half_float_pixel: these are also not usable for Java ..
+IgnoreExtension GL_NV_half_float
+IgnoreExtension GL_NV_half_float_pixel
+
+IgnoreExtension GL_EXT_framebuffer_multisample
+IgnoreExtension GL_EXT_framebuffer_blit
+
+#Big gap of promoted tokens and functions: GL_EXT_texture_integer
+
+IgnoreExtension GL_EXT_texture_array
+
+IgnoreExtension GL_EXT_packed_depth_stencil
+
+#Not promoted in header files: GL_EXT_draw_buffers2
+
+IgnoreExtension GL_EXT_texture_compression_rgtc
+
+IgnoreExtension GL_EXT_transform_feedback
+IgnoreExtension GL_NV_transform_feedback
+
+IgnoreExtension GL_APPLE_vertex_array_object
+
+IgnoreExtension GL_EXT_framebuffer_sRGB
+
+# <<< OpenGL 3.0
+
+
# Ignore a few obsolete versions of extensions that have been subsumed into the core or ARB extensions
IgnoreExtension GL_EXT_multisample
@@ -536,7 +595,7 @@ ClassJavadoc GL2 *
ClassJavadoc GL2 * This interface contains all core desktop OpenGL methods through
ClassJavadoc GL2 * version 3.0, inclusive, as well as most of it's extensions defined at the
ClassJavadoc GL2 * time of this specification. Early OpenGL extensions whose functionality
-ClassJavadoc GL2 * was incorporated into core OpenGL by version 2.0, inclusive, are specifically
+ClassJavadoc GL2 * was incorporated into core OpenGL by version 3.0, inclusive, are specifically
ClassJavadoc GL2 * excluded.
ClassJavadoc GL2 *
ClassJavadoc GL2 */
diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-gl2.cfg
index 55f5b9781..7b689093a 100644
--- a/make/config/jogl/gl-gl2.cfg
+++ b/make/config/jogl/gl-gl2.cfg
@@ -43,6 +43,8 @@ IgnoreExtension GL_EXT_point_parameters
CustomJavaCode GL2 public boolean glIsPBOPackEnabled();
CustomJavaCode GL2 public boolean glIsPBOUnpackEnabled();
+IncludeAs CustomJavaCode GL2 gl-if-CustomJavaCode-gl2.java
+
CustomJavaCode GL2Impl public void glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar) {
CustomJavaCode GL2Impl glFrustum((double)left, (double)right, (double)bottom, (double)top, (double)zNear, (double)zFar); }
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
new file mode 100644
index 000000000..fe6388cbe
--- /dev/null
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
@@ -0,0 +1,40 @@
+
+/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
+public static final int GL_SAMPLER_BUFFER_EXT = 0x8DC2;
+/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
+public static final int GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD;
+/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
+public static final int GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5;
+/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
+public static final int GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8;
+/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
+public static final int GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD;
+
+/** Missed in the GL_ARB_color_buffer_float promotion to 3.0 core */
+public static final int GL_RGBA_FLOAT_MODE_ARB = 0x8820;
+
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_ALPHA32F_ARB = 0x8816;
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_INTENSITY32F_ARB = 0x8817;
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_LUMINANCE32F_ARB = 0x8818;
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_ALPHA16F_ARB = 0x881C;
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_INTENSITY16F_ARB = 0x881D;
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_LUMINANCE16F_ARB = 0x881E;
+/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
+public static final int GL_LUMINANCE_ALPHA16F_ARB = 0x881F;
+
+/** Missed in the GL_EXT_packed_float promotion to 3.0 core */
+public static final int GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C;
+
+/** Missed in the GL_EXT_texture_array promotion to 3.0 core */
+public static final int GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E;
+
+/** Missed in the GL_EXT_framebuffer_sRGB promotion to 3.0 core */
+public static final int GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA;
+
+
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
index 061830cb4..5928b3a0b 100644
--- a/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gl2.java
@@ -15,6 +15,7 @@ public void setObjectTracker(GLObjectTracker tracker) {
*/
+
public GL2Impl(GLProfile glp, GLContextImpl context) {
this._context = context;
this.bufferSizeTracker = context.getBufferSizeTracker();
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index 4ee902719..f79e5ff23 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -53,7 +53,7 @@ bindings to the native OpenGL(R) 3D graphics library profiles:
This interface contains all core desktop OpenGL methods through
version 3.0, inclusive, as well as most of it's extensions defined at the
time of this specification. Early OpenGL extensions whose functionality
-was incorporated into core OpenGL by version 2.0, inclusive, are specifically
+was incorporated into core OpenGL by version 3.0, inclusive, are specifically
excluded.
Future extensions will be added with a maintenance update
@@ -304,11 +304,16 @@ according the following rules:
-
-
- All functions in core OpenGL 2.0, inclusive, have been included.
+ - All functions in core OpenGL 3.0, inclusive, have been included.
- If the functionality of the OpenGL extension was subsumed into core
-OpenGL by version 2.0, then the extension was dropped from the Java bindings.
+OpenGL by version 3.0, then the extension was dropped from the Java bindings.
However, if the core function name is not available in the native OpenGL implementation,
- the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object.
+ the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object.
+ In general the native method name will be looked up as follows
+
+ - Try the interface name
+ - Try the extension name: ARB, EXT, ..
+
- Functions that deal with explicit pointer values in such a way that
they cannot be properly implemented in Java have been excluded. This
includes retrieval methods with a C void ** in the OpenGL signature like glGetBufferPointerv,
@@ -370,8 +375,8 @@ implementation.
OpenGL Version on Runtime System
Even though OpenGL extensions whose functionality was included into core
-OpenGL by version 2.0, inclusive, are not included in the bindings, it should
-be noted that OpenGL version 2.0 is not an absolute requirement on the runtime
+OpenGL by version 3.0, inclusive, are not included in the bindings, it should
+be noted that OpenGL version 3.0 is not an absolute requirement on the runtime
system. This is because a user could query whether any particular function
is available before calling certain core APIs that might not be present.
Also, if the core function name is not available in the native OpenGL implementation,
@@ -423,6 +428,15 @@ http://www.khronos.org/registry/cl/
href="http://www.opengl.org/registry/doc/glspec31.20090324.pdf">
http://www.opengl.org/registry/doc/glspec31.20090324.pdf
+
+ - OpenGL 3.0 Specification
+
+
+
+
+http://www.opengl.org/registry/doc/glspec30.20080923.pdf
+
- OpenGL 2.1 Specification
diff --git a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
index bb9f86911..9aceb2c53 100644
--- a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
+++ b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
@@ -54,13 +54,12 @@ public class GLPipelineFactory {
* The upstream GL instance is determined as follows:
*
* - Use
pipelineClazzBaseName
as the class name's full basename, incl. package name
- * - For all
downstream
classes, do:
+ * - For the
downstream
classe and it's superclasses, do:
*
- * - For all
downstream
class interfaces, do:
+ * - For all
downstream
class and superclass interfaces, do:
*
- * - If
reqInterface
is not null and the interface is unequal, continue.
- * - If
downstream
is not instance of interface, continue.
- * - If
downstream
is not instance of interface, continue.
+ * - If
reqInterface
is not null and the interface is unequal, continue loop.
+ * - If
downstream
is not instance of interface, continue loop.
* - If upstream class is available use it, end loop.
*
*
--
cgit v1.2.3
From 91e2508661f8f922afad6379e8bcadee37900546 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Sun, 2 Aug 2009 04:30:53 -0700
Subject: Update documentation (OpenGL 3.0, 3.1 specifics); Fix
ExtensionAvailabilityCache: Add Version 2.1 in case of GL2/OpenGL 3.0
---
make/config/jogl/gl-common.cfg | 13 ++++++++++---
make/doc/jogl/spec-overview.html | 9 ++++++++-
.../com/sun/opengl/impl/ExtensionAvailabilityCache.java | 15 ++++++---------
3 files changed, 24 insertions(+), 13 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 3e38aa0da..7cf51fda5 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -585,7 +585,8 @@ ClassJavadoc GL2ES2 */
ClassJavadoc GL2GL3 /**
ClassJavadoc GL2GL3 *
-ClassJavadoc GL2GL3 * Interface containing the common subset of GL3 and GL2.
+ClassJavadoc GL2GL3 * Interface containing the common subset of GL3 (OpenGL 3.1+) and GL2 (OpenGL 3.0),
+ClassJavadoc GL2GL3 * also known as the OpenGL 3.0 forward compatible, non deprecated subset.
ClassJavadoc GL2GL3 * This interface reflects only the programmable shader functionality of desktop OpenGL
ClassJavadoc GL2GL3 *
ClassJavadoc GL2GL3 */
@@ -596,15 +597,21 @@ ClassJavadoc GL2 * This interface contains all core desktop OpenGL methods thro
ClassJavadoc GL2 * version 3.0, inclusive, as well as most of it's extensions defined at the
ClassJavadoc GL2 * time of this specification. Early OpenGL extensions whose functionality
ClassJavadoc GL2 * was incorporated into core OpenGL by version 3.0, inclusive, are specifically
-ClassJavadoc GL2 * excluded.
+ClassJavadoc GL2 * excluded.
+ClassJavadoc GL2 * Note: OpenGL 3.0 is the last subsumed version in the specification.
+ClassJavadoc GL2 * You need to use a {@link GL3} OpenGL 3.1+ context to benefit
+ClassJavadoc GL2 * from new functionality and versions.
ClassJavadoc GL2 *
ClassJavadoc GL2 */
ClassJavadoc GL3 /**
ClassJavadoc GL3 *
ClassJavadoc GL3 * This interface contains all core desktop OpenGL methods starting from 3.1,
-ClassJavadoc GL3 * inclusive - forward compatible only, as well as most of it's extensions defined at the
+ClassJavadoc GL3 * inclusive - forward compatible, as well as most of it's extensions defined at the
ClassJavadoc GL3 * time of this specification.
+ClassJavadoc GL3 * Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
+ClassJavadoc GL3 * 3.1 specification, hence the {@link GL2GL3} implemented interface.
+ClassJavadoc GL3 * Note: OpenGL 3.1 (forward compatible) no more includes fixed point functionality.
ClassJavadoc GL3 *
ClassJavadoc GL3 */
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index f79e5ff23..6557e9f7a 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -55,6 +55,9 @@ version 3.0, inclusive, as well as most of it's extensions defined at the
time of this specification. Early OpenGL extensions whose functionality
was incorporated into core OpenGL by version 3.0, inclusive, are specifically
excluded.
+ Note: OpenGL 3.0 is the last subsumed version in the specification.
+ You need to use a {@link javax.media.opengl.GL3} OpenGL 3.1+ context to benefit
+ from new functionality and versions.
Future extensions will be added with a maintenance update
- {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
@@ -62,6 +65,9 @@ excluded.
This interface contains all core desktop OpenGL methods starting from 3.1,
inclusive - forward compatible only, as well as most of it's extensions defined at the
time of this specification.
+ Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
+ 3.1 specification, hence the {@link javax.media.opengl.GL2GL3} implemented interface.
+ Note: OpenGL 3.1 (forward compatible) no more includes fixed point functionality.
Future extensions will be added with a maintenance update
- {@link javax.media.opengl.GLES1 javax.media.opengl.GLES1} interface
@@ -105,7 +111,8 @@ time of this specification.
- {@link javax.media.opengl.GL2GL3 javax.media.opengl.GL2GL3} interface
- Interface containing the common subset of GL3 and GL2.
+ Interface containing the common subset of GL3 (OpenGL 3.1+) and GL2 (OpenGL 2.0),
+ also known as the OpenGL 3.0 forward compatible, non deprecated subset.
This interface reflects only the programmable shader functionality of desktop OpenGL
diff --git a/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java b/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java
index 7931f791b..26072519e 100644
--- a/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java
+++ b/src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java
@@ -212,19 +212,16 @@ public final class ExtensionAvailabilityCache {
}
switch (major) {
- case 2:
- if(gl.isGL3() && major==2) {
+ case 3:
+ if(gl.isGL3()) {
// GL3 is a GL 3.1 forward compatible context,
// hence no 2.0, 1.0 - 1.5 GL versions are supported.
major=0;
- } else {
- // make sure 2.0 is added ..
- minor = 0;
- availableExtensionCache.add("GL_VERSION_" + major + "_" + minor);
- if (DEBUG) {
- System.err.println("ExtensionAvailabilityCache: Added GL_VERSION_" + major + "_" + minor + " to known extensions");
- }
}
+ // Restart loop at version 2.1
+ minor = 1;
+ break;
+ case 2:
// Restart loop at version 1.5
minor = 5;
break;
--
cgit v1.2.3
From 363fe8afc173ec9bf7fda4f863ddd14cd5ceabb5 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Sun, 2 Aug 2009 04:54:41 -0700
Subject: Fix doc bug @arg -> @param
---
make/config/jogl/gl-common.cfg | 2 +-
make/doc/jogl/spec-overview.html | 2 +-
.../classes/com/sun/opengl/impl/GLDrawableFactoryImpl.java | 2 +-
src/jogl/classes/com/sun/opengl/util/GLArrayDataClient.java | 10 +++++-----
src/jogl/classes/com/sun/opengl/util/GLArrayDataServer.java | 10 +++++-----
src/jogl/classes/com/sun/opengl/util/glsl/ShaderState.java | 4 ++--
src/jogl/classes/javax/media/opengl/GLDrawableFactory.java | 2 +-
src/jogl/classes/javax/media/opengl/GLPipelineFactory.java | 10 +++++-----
src/jogl/classes/javax/media/opengl/GLUniformData.java | 12 ++++++------
9 files changed, 27 insertions(+), 27 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 7cf51fda5..3df9cc852 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -611,7 +611,7 @@ ClassJavadoc GL3 * inclusive - forward compatible, as well as most of it's exte
ClassJavadoc GL3 * time of this specification.
ClassJavadoc GL3 * Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
ClassJavadoc GL3 * 3.1 specification, hence the {@link GL2GL3} implemented interface.
-ClassJavadoc GL3 * Note: OpenGL 3.1 (forward compatible) no more includes fixed point functionality.
+ClassJavadoc GL3 * Note: OpenGL 3.1 forward compatible no more includes fixed point functionality.
ClassJavadoc GL3 *
ClassJavadoc GL3 */
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index 6557e9f7a..89b4ac7c8 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -67,7 +67,7 @@ inclusive - forward compatible only, as well as most of it's extensions defined
time of this specification.
Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
3.1 specification, hence the {@link javax.media.opengl.GL2GL3} implemented interface.
- Note: OpenGL 3.1 (forward compatible) no more includes fixed point functionality.
+ Note: OpenGL 3.1 forward compatible no more includes fixed point functionality.
Future extensions will be added with a maintenance update
{@link javax.media.opengl.GLES1 javax.media.opengl.GLES1} interface
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLDrawableFactoryImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLDrawableFactoryImpl.java
index de911950a..0d540647a 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLDrawableFactoryImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLDrawableFactoryImpl.java
@@ -69,7 +69,7 @@ public abstract class GLDrawableFactoryImpl extends GLDrawableFactory {
/**
* Returns the sole GLDrawableFactoryImpl instance.
*
- * @arg glProfile GLProfile to determine the factory type, ie EGLDrawableFactory,
+ * @param glProfile GLProfile to determine the factory type, ie EGLDrawableFactory,
* or one of the native GLDrawableFactory's, ie X11/GLX, Windows/WGL or MacOSX/CGL.
*/
public static GLDrawableFactoryImpl getFactoryImpl(GLProfile glp) {
diff --git a/src/jogl/classes/com/sun/opengl/util/GLArrayDataClient.java b/src/jogl/classes/com/sun/opengl/util/GLArrayDataClient.java
index e05a77226..ec4c5e393 100644
--- a/src/jogl/classes/com/sun/opengl/util/GLArrayDataClient.java
+++ b/src/jogl/classes/com/sun/opengl/util/GLArrayDataClient.java
@@ -27,13 +27,13 @@ public class GLArrayDataClient extends GLArrayDataWrapper implements GLArrayData
}) != null;
/**
- * @arg index The GL array index
- * @arg name The optional custom name for the GL array index, maybe null.
+ * @param index The GL array index
+ * @param name The optional custom name for the GL array index, maybe null.
* If null, the default name mapping will be used, see 'getPredefinedArrayIndexName(int)'.
* This name might be used as the shader attribute name.
- * @arg comps The array component number
- * @arg dataType The array index GL data type
- * @arg normalized Wheather the data shall be normalized
+ * @param comps The array component number
+ * @param dataType The array index GL data type
+ * @param normalized Wheather the data shall be normalized
*
* @see javax.media.opengl.GLContext#getPredefinedArrayIndexName(int)
*/
diff --git a/src/jogl/classes/com/sun/opengl/util/GLArrayDataServer.java b/src/jogl/classes/com/sun/opengl/util/GLArrayDataServer.java
index e9a5e2754..dc233ce36 100644
--- a/src/jogl/classes/com/sun/opengl/util/GLArrayDataServer.java
+++ b/src/jogl/classes/com/sun/opengl/util/GLArrayDataServer.java
@@ -21,13 +21,13 @@ public class GLArrayDataServer extends GLArrayDataClient implements GLArrayDataE
* EnableVertexAttribArray and VertexAttribPointer calls,
* and a predefined vertex attribute variable name will be choosen.
*
- * @arg index The GL array index
- * @arg name The optional custom name for the GL array index, maybe null.
+ * @param index The GL array index
+ * @param name The optional custom name for the GL array index, maybe null.
* If null, the default name mapping will be used, see 'getPredefinedArrayIndexName(int)'.
* This name might be used as the shader attribute name.
- * @arg comps The array component number
- * @arg dataType The array index GL data type
- * @arg normalized Wheather the data shall be normalized
+ * @param comps The array component number
+ * @param dataType The array index GL data type
+ * @param normalized Wheather the data shall be normalized
*
* @see javax.media.opengl.GLContext#getPredefinedArrayIndexName(int)
*/
diff --git a/src/jogl/classes/com/sun/opengl/util/glsl/ShaderState.java b/src/jogl/classes/com/sun/opengl/util/glsl/ShaderState.java
index d8f6eeea2..8712ac7e2 100644
--- a/src/jogl/classes/com/sun/opengl/util/glsl/ShaderState.java
+++ b/src/jogl/classes/com/sun/opengl/util/glsl/ShaderState.java
@@ -318,7 +318,7 @@ public class ShaderState {
* Even if the attribute is not found in the current shader,
* it is stored in this state.
*
- * @arg data the GLArrayData's name must match the attributes one,
+ * @param data the GLArrayData's name must match the attributes one,
* it's index will be set with the attribute's location,
* if found.
*
@@ -549,7 +549,7 @@ public class ShaderState {
* Even if the uniform is not found in the current shader,
* it is stored in this state.
*
- * @arg data the GLUniforms's name must match the uniform one,
+ * @param data the GLUniforms's name must match the uniform one,
* it's index will be set with the uniforms's location,
* if found.
*
diff --git a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
index 5a761119f..1a18a60f8 100644
--- a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
+++ b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
@@ -148,7 +148,7 @@ public abstract class GLDrawableFactory {
/**
* Returns the sole GLDrawableFactory instance.
*
- * @arg glProfile GLProfile to determine the factory type, ie EGLDrawableFactory,
+ * @param glProfile GLProfile to determine the factory type, ie EGLDrawableFactory,
* or one of the native GLDrawableFactory's, ie X11/GLX, Windows/WGL or MacOSX/CGL.
*/
public static GLDrawableFactory getFactory(GLProfile glProfile) throws GLException {
diff --git a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
index 9aceb2c53..63b50cb3c 100644
--- a/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
+++ b/src/jogl/classes/javax/media/opengl/GLPipelineFactory.java
@@ -54,7 +54,7 @@ public class GLPipelineFactory {
* The upstream GL instance is determined as follows:
*
* - Use
pipelineClazzBaseName
as the class name's full basename, incl. package name
- * - For the
downstream
classe and it's superclasses, do:
+ * - For the
downstream
class and it's superclasses, do:
*
* - For all
downstream
class and superclass interfaces, do:
*
@@ -65,10 +65,10 @@ public class GLPipelineFactory {
*
*
*
- * @arg pipelineClazzBaseName the basename of the pipline class name
- * @arg reqInterface optional requested interface to be used, may be null, in which case the first matching one is used
- * @arg downstream is always the 1st argument for the upstream constructor
- * @arg additionalArgs additional arguments for the upstream constructor
+ * @param pipelineClazzBaseName the basename of the pipline class name
+ * @param reqInterface optional requested interface to be used, may be null, in which case the first matching one is used
+ * @param downstream is always the 1st argument for the upstream constructor
+ * @param additionalArgs additional arguments for the upstream constructor
*/
public static final GL create(String pipelineClazzBaseName, Class reqInterface, GL downstream, Object[] additionalArgs) {
Class downstreamClazz = downstream.getClass();
diff --git a/src/jogl/classes/javax/media/opengl/GLUniformData.java b/src/jogl/classes/javax/media/opengl/GLUniformData.java
index 8b5fb1a03..f628ce35a 100644
--- a/src/jogl/classes/javax/media/opengl/GLUniformData.java
+++ b/src/jogl/classes/javax/media/opengl/GLUniformData.java
@@ -10,7 +10,7 @@ public class GLUniformData {
*
* Number of objects is 1
*
- * @arg components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
+ * @param components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
*/
public GLUniformData(String name, int val) {
init(name, 1, new Integer(val));
@@ -21,7 +21,7 @@ public class GLUniformData {
*
* Number of objects is 1
*
- * @arg components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
+ * @param components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
*/
public GLUniformData(String name, float val) {
init(name, 1, new Float(val));
@@ -32,7 +32,7 @@ public class GLUniformData {
*
* Number of objects is calculated by data.limit()/components
*
- * @arg components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
+ * @param components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
*/
public GLUniformData(String name, int components, IntBuffer data) {
init(name, components, data);
@@ -43,7 +43,7 @@ public class GLUniformData {
*
* Number of objects is calculated by data.limit()/components
*
- * @arg components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
+ * @param components number of elements of one object, ie 4 for GL_FLOAT_VEC4,
*/
public GLUniformData(String name, int components, FloatBuffer data) {
init(name, components, data);
@@ -54,8 +54,8 @@ public class GLUniformData {
*
* Number of objects is calculated by data.limit()/(rows*columns)
*
- * @arg rows the matrix rows
- * @arg column the matrix column
+ * @param rows the matrix rows
+ * @param column the matrix column
*/
public GLUniformData(String name, int rows, int columns, FloatBuffer data) {
init(name, rows, columns, data);
--
cgit v1.2.3
From 19e49d093adf2c13587d5cc016438f9caed1576a Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Sun, 2 Aug 2009 06:40:46 -0700
Subject: Fix Spec Documentation; GL version, inclusion criteria and
requirements
---
make/doc/jogl/spec-overview.html | 105 +++++++++++++++++++++++++++------------
1 file changed, 74 insertions(+), 31 deletions(-)
(limited to 'make')
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index 89b4ac7c8..37f0caa00 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -11,11 +11,14 @@
This specification, an optional set of packages, describes the Java(TM)
bindings to the native OpenGL(R) 3D graphics library profiles:
- - Desktop OpenGL 1.x, 2.y and 3.0, with x >= 3 and y >= 0
+ - Desktop OpenGL 1.0 - 3.0
- Desktop OpenGL 3.x, with x >= 1
- Embedded OpenGL ES 1.x, with x >= 0
- Embedded OpenGL ES 2.x, with x >= 0
+ See Inclusion Criteria explaining the OpenGL profile seperation.
+ See OpenGL Runtime Requirements.
+
A binding to the native OpenCL(R) library is not yet specified, but intended to be
included in a maintenance update.
@@ -46,8 +49,22 @@ bindings to the native OpenGL(R) 3D graphics library profiles:
- The javax.media.opengl package
This package contains all Java bindings for all OpenGL profiles.
+ See Inclusion Criteria explaining the OpenGL profile seperation.
+ See OpenGL Runtime Requirements.
The main OpenGL profile interfaces are:
+ - {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
+
+ This interface contains all core desktop OpenGL methods starting from 3.1,
+inclusive - forward compatible only, as well as most of it's extensions defined at the
+time of this specification.
+ Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
+ 3.1 specification, hence the {@link javax.media.opengl.GL2GL3} implemented interface.
+ Note: OpenGL 3.1 forward compatible no more includes fixed point functionality.
+ See GL3 Inclusion Criteria.
+ See GL3 Runtime Requirements.
+ Future extensions will be added with a maintenance update
+
- {@link javax.media.opengl.GL2 javax.media.opengl.GL2} interface
This interface contains all core desktop OpenGL methods through
@@ -58,16 +75,8 @@ excluded.
Note: OpenGL 3.0 is the last subsumed version in the specification.
You need to use a {@link javax.media.opengl.GL3} OpenGL 3.1+ context to benefit
from new functionality and versions.
- Future extensions will be added with a maintenance update
-
- - {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
-
- This interface contains all core desktop OpenGL methods starting from 3.1,
-inclusive - forward compatible only, as well as most of it's extensions defined at the
-time of this specification.
- Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
- 3.1 specification, hence the {@link javax.media.opengl.GL2GL3} implemented interface.
- Note: OpenGL 3.1 forward compatible no more includes fixed point functionality.
+ See GL2 Inclusion Criteria.
+ See GL2 Runtime Requirements.
Future extensions will be added with a maintenance update
- {@link javax.media.opengl.GLES1 javax.media.opengl.GLES1} interface
@@ -305,29 +314,55 @@ between two GLContexts associated with the same GLDrawable.
Criteria Used for Inclusion of APIs into the Java Bindings
+
OpenGL API Inclusion Criteria
OpenGL functions and OpenGL extensions have been included in the Java bindings
according the following rules:
- -
-
- All functions in core OpenGL 3.0, inclusive, have been included.
- - If the functionality of the OpenGL extension was subsumed into core
-OpenGL by version 3.0, then the extension was dropped from the Java bindings.
- However, if the core function name is not available in the native OpenGL implementation,
- the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object.
- In general the native method name will be looked up as follows
-
- - Try the interface name
- - Try the extension name: ARB, EXT, ..
-
- - Functions that deal with explicit pointer values in such a way that
+
+
- {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
+
+ - All functions in core OpenGL 3.1 - forward compatible, inclusive, have been included,
+ as described in the header files
GL3/gl3.h
.
+ - Reason for starting a new profile beginning with 3.1 are:
+
+ - OpenGL 3.1 requires a new native context, incompatible with prior versions.
+ - OpenGL 3.1 forward compatible profile drops fixed functionality.
+
+ - Forward compatibility, dropping fixed functionality, is choosen because:
+
+ - It shares a commont subset with ES2.x
+ - It is not guaranteed to be provided by all vendors.
+ - It is not guaranteed to be provided in future versions.
+
+
+
+ - {@link javax.media.opengl.GL2 javax.media.opengl.GL2} interface
+
+ - All functions in core OpenGL 3.0, inclusive, have been included.
+ - Reason for making the cut at OpenGL 3.0 are:
+
+ - Availability of 3.0 with the same native context.
+ - Availability of 3.0 via extensions.
+
+ - If the functionality of the OpenGL extension was subsumed into core
+ OpenGL by version 3.0, then the extension was dropped from the Java bindings.
+ However, if the core function name is not available in the native OpenGL implementation,
+ the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object.
+ - In general the native method name will be looked up as follows
+
+ - Try the interface name
+ - Try the extension name: ARB, EXT, ..
+
+
+ - Functions that deal with explicit pointer values in such a way that
they cannot be properly implemented in Java have been excluded. This
includes retrieval methods with a C void ** in the OpenGL signature like glGetBufferPointerv,
glGetPointerv, glGetVertexAttribPointerv, as well as functions that require
persistent pointer to pointer storage across function calls like vertex array
lists.
- - If the extension is registered in the official OpenGL extension registry
+
- If the extension is registered in the official OpenGL extension registry
but the specification was never completed or was discontinued (as indicated
in the specification and/or lack of inclusion in SGI's official OpenGL header
files), then the extension was not included. Using these criteria, ARB
@@ -335,15 +370,14 @@ extensions through number 42 (GL_ARB_pixel_buffer_object), inclusive, and
non-ARB extensions through number 311 (GL_REMEDY_string_marker), inclusive,
have been included in the Java bindings according to the numbering scheme
found in the official OpenGL extension registry.
- - Some bindings to several vendor-specific extensions have been included
+
- Some bindings to several vendor-specific extensions have been included
that are not found in the OpenGL extension registry. These extensions
were deemed popular enough and/or were specifically requested by users.
- - Platform-specific extensions, such as those that begin with WGL, GLX,
+
- Platform-specific extensions, such as those that begin with WGL, GLX,
CGL, etc., have been excluded from the public API. See the section "Accessing
platform-specific extensions" for more information about accessing these
functions on certain implementations.
-
-
+
OpenGL GLU API Inclusion Criteria
@@ -380,7 +414,14 @@ implementation.
Therefore, any usage of these APIs is both platform and implementation specific.
+
OpenGL Version on Runtime System
+
+ {@link javax.media.opengl.GL3 GL3} Desktop Requirements
+An OpenGL ≥ 3.1 version is required to instantiate a GL3 context.
+
+
+ {@link javax.media.opengl.GL2 GL2} Desktop Requirements
Even though OpenGL extensions whose functionality was included into core
OpenGL by version 3.0, inclusive, are not included in the bindings, it should
be noted that OpenGL version 3.0 is not an absolute requirement on the runtime
@@ -388,13 +429,15 @@ system. This is because a user could query whether any particular function
is available before calling certain core APIs that might not be present.
Also, if the core function name is not available in the native OpenGL implementation,
the extension named equivalent is used instead, e.g. GL_ARB_framebuffer_object.
-However, in general, it is reasonable to expect at least OpenGL 2.0 to be
+However, in general, it is reasonable to expect at least OpenGL 1.5 to be
installed on the runtime system and an implementor of the API is free to require
-the presence of at least OpenGL 2.0 on the target system.
+the presence of at least OpenGL 1.5 on the target system.
+The JOGL reference implementation require at least OpenGL version 1.1,
+due to it's dynamical function binding starting with OpenGL 1.2.
In future revisions of the API, this minimum standard may be raised.
-
+
Runtime Version Information
Any Java Bindings for OpenGL implementation should include version information
in its jar manifest file. This information can then easily be accessed
--
cgit v1.2.3
From 52dd94d4915768b231d1923a2086b09e1e1bb357 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Sun, 2 Aug 2009 07:01:16 -0700
Subject: Fix: GL_EXT_framebuffer_blit token
---
make/stub_includes/opengl/GL/glext.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'make')
diff --git a/make/stub_includes/opengl/GL/glext.h b/make/stub_includes/opengl/GL/glext.h
index 1016638dd..99fdd8b80 100644
--- a/make/stub_includes/opengl/GL/glext.h
+++ b/make/stub_includes/opengl/GL/glext.h
@@ -3549,8 +3549,8 @@ extern "C" {
#ifndef GL_EXT_framebuffer_blit
#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT
-#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CAA
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
#endif
#ifndef GL_EXT_framebuffer_multisample
--
cgit v1.2.3
From c20b0c0b0824d6554c6881c07799b6e05d5fc09d Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Sun, 2 Aug 2009 08:49:46 -0700
Subject: GL: sync glext.h
- add GL_NV_present_video
- add GL_NV_conditional_render
- add GL_EXT_transform_feedback
- add GL_EXT_direct_state_access
GL3:
- GLAPIENTRY -> APIENTRY (as in the orig headers)
- Add GL_ARB_geometry_shader4 to gl3ext.h
---
make/config/jogl/gl-common.cfg | 7 +-
make/stub_includes/opengl/GL/glext.h | 454 +++++++++++++
make/stub_includes/opengl/GL3/gl3.h | 1132 ++++++++++++++++----------------
make/stub_includes/opengl/GL3/gl3ext.h | 37 ++
make/stub_includes/opengl/gl3.c | 4 +
5 files changed, 1062 insertions(+), 572 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 3df9cc852..935bf6664 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -20,16 +20,15 @@ Import com.sun.opengl.impl.*
# because we don't need them java-side.
Ignore GL_VERSION_.+
-# There are a few routines we don't handle yet
-Ignore glGetBufferPointerivNV
-Ignore glGetBufferPointerv
-
# Ignore GL functions that deal with explicit pointer values in such a
# way that we cannot implement the functionality in Java
Ignore glGetBufferPointerv
Ignore glGetBufferPointervARB
+Ignore glGetBufferPointerivNV
+Ignore glGetNamedBufferPointervEXT
Ignore glGetPointerv
Ignore glGetPointervEXT
+Ignore glGetPointerIndexedvEXT
Ignore glGetTexParameterPointervAPPLE
Ignore glGetVertexAttribPointerv
Ignore glGetVertexAttribPointervARB
diff --git a/make/stub_includes/opengl/GL/glext.h b/make/stub_includes/opengl/GL/glext.h
index 99fdd8b80..94345ca08 100644
--- a/make/stub_includes/opengl/GL/glext.h
+++ b/make/stub_includes/opengl/GL/glext.h
@@ -7970,6 +7970,460 @@ typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei
#define GL_EXT_texture_compression_rgtc 1
#endif
+#ifndef GL_NV_present_video
+#define GL_NV_present_video 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot,
+ GLuint64EXT minPresentTime,
+ GLuint beginPresentTimeId,
+ GLuint presentDurationId,
+ GLenum type,
+ GLenum target0, GLuint fill0, GLuint key0,
+ GLenum target1, GLuint fill1, GLuint key1);
+GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot,
+ GLuint64EXT minPresentTime,
+ GLuint beginPresentTimeId,
+ GLuint presentDurationId,
+ GLenum type,
+ GLenum target0, GLuint fill0,
+ GLenum target1, GLuint fill1,
+ GLenum target2, GLuint fill2,
+ GLenum target3, GLuint fill3);
+GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params);
+GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot,
+ GLuint64EXT minPresentTime,
+ GLuint beginPresentTimeId,
+ GLuint presentDurationId,
+ GLenum type,
+ GLenum target0, GLuint fill0, GLuint key0,
+ GLenum target1, GLuint fill1, GLuint key1);
+typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot,
+ GLuint64EXT minPresentTime,
+ GLuint beginPresentTimeId,
+ GLuint presentDurationId,
+ GLenum type,
+ GLenum target0, GLuint fill0,
+ GLenum target1, GLuint fill1,
+ GLenum target2, GLuint fill2,
+ GLenum target3, GLuint fill3);
+typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params);
+typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params);
+#endif
+
+#ifndef GL_NV_conditional_render
+#define GL_NV_conditional_render 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode);
+GLAPI void APIENTRY glEndConditionalRenderNV (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode);
+typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void);
+#endif
+
+#ifndef GL_EXT_transform_feedback
+#define GL_EXT_transform_feedback 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum);
+GLAPI void APIENTRY glEndTransformFeedbackEXT (void);
+GLAPI void APIENTRY glBindBufferRangeEXT (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
+GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum, GLuint, GLuint, GLintptr);
+GLAPI void APIENTRY glBindBufferBaseEXT (GLenum, GLuint, GLuint);
+GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint, GLsizei, const GLchar **, GLenum);
+GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
+typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
+typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLint *location);
+#endif
+
+#ifndef GL_EXT_direct_state_access
+#define GL_EXT_direct_state_access 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield);
+GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield);
+GLAPI void APIENTRY glMatrixLoadfEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMatrixLoaddEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMatrixMultfEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMatrixMultdEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum);
+GLAPI void APIENTRY glMatrixRotatefEXT (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMatrixRotatedEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMatrixScalefEXT (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMatrixScaledEXT (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMatrixFrustumEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMatrixOrthoEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMatrixPopEXT (GLenum);
+GLAPI void APIENTRY glMatrixPushEXT (GLenum);
+GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glTextureParameterfEXT (GLuint, GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glTextureParameterfvEXT (GLuint, GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glTextureParameteriEXT (GLuint, GLenum, GLenum, GLint);
+GLAPI void APIENTRY glTextureParameterivEXT (GLuint, GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
+GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glGetTextureImageEXT (GLuint, GLenum, GLint, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint, GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint, GLenum, GLint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint, GLenum, GLint, GLenum, GLint *);
+GLAPI void APIENTRY glTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum, GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum, GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum, GLenum, GLenum, GLint);
+GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum, GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
+GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum, GLenum, GLint, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum, GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum, GLenum, GLint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum, GLenum, GLint, GLenum, GLint *);
+GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glBindMultiTextureEXT (GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum, GLuint);
+GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum, GLuint);
+GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum, GLint, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum, GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum, GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexEnviEXT (GLenum, GLenum, GLenum, GLint);
+GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum, GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexGendEXT (GLenum, GLenum, GLenum, GLdouble);
+GLAPI void APIENTRY glMultiTexGendvEXT (GLenum, GLenum, GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexGenfEXT (GLenum, GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum, GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexGeniEXT (GLenum, GLenum, GLenum, GLint);
+GLAPI void APIENTRY glMultiTexGenivEXT (GLenum, GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum, GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum, GLenum, GLenum, GLdouble *);
+GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum, GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum, GLuint, GLfloat *);
+GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum, GLuint, GLdouble *);
+GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum, GLuint, GLvoid* *);
+GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint, GLenum, GLint, GLvoid *);
+GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum, GLenum, GLint, GLvoid *);
+GLAPI void APIENTRY glNamedProgramStringEXT (GLuint, GLenum, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint, GLenum, GLuint, const GLdouble *);
+GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint, GLenum, GLuint, const GLfloat *);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint, GLenum, GLuint, GLdouble *);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint, GLenum, GLuint, GLfloat *);
+GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint, GLenum, GLuint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint, GLenum, GLuint, const GLint *);
+GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint, GLenum, GLuint, GLsizei, const GLint *);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint, GLenum, GLuint, const GLuint *);
+GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint, GLenum, GLuint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint, GLenum, GLuint, GLint *);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint, GLenum, GLuint, GLuint *);
+GLAPI void APIENTRY glTextureParameterIivEXT (GLuint, GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint, GLenum, GLenum, const GLuint *);
+GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint, GLenum, GLenum, GLuint *);
+GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum, GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, const GLuint *);
+GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, GLuint *);
+GLAPI void APIENTRY glProgramUniform1fEXT (GLuint, GLint, GLfloat);
+GLAPI void APIENTRY glProgramUniform2fEXT (GLuint, GLint, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramUniform3fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramUniform4fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramUniform1iEXT (GLuint, GLint, GLint);
+GLAPI void APIENTRY glProgramUniform2iEXT (GLuint, GLint, GLint, GLint);
+GLAPI void APIENTRY glProgramUniform3iEXT (GLuint, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glProgramUniform4iEXT (GLuint, GLint, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint, GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint, GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint, GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint, GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint, GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint, GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint, GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint, GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint, GLint, GLuint);
+GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint, GLint, GLuint, GLuint);
+GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint, GLint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint, GLint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint, GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint, GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint, GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint, GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glNamedBufferDataEXT (GLuint, GLsizeiptr, const GLvoid *, GLenum);
+GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, const GLvoid *);
+GLAPI GLvoid* APIENTRY glMapNamedBufferEXT (GLuint, GLenum);
+GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint);
+GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint, GLenum, GLvoid* *);
+GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, GLvoid *);
+GLAPI void APIENTRY glTextureBufferEXT (GLuint, GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glMultiTexBufferEXT (GLenum, GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint, GLenum, GLsizei, GLsizei);
+GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint, GLenum, GLint *);
+GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint, GLenum);
+GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint, GLenum, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint, GLenum, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint, GLenum, GLenum, GLuint, GLint, GLint);
+GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint, GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint, GLenum);
+GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum, GLenum);
+GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint, GLenum);
+GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint, GLsizei, const GLenum *);
+GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint, GLenum);
+GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint, GLsizei, GLenum, GLsizei, GLsizei);
+GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei);
+GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint, GLenum, GLuint, GLint, GLint);
+GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint, GLenum, GLuint, GLint, GLenum);
+GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint, GLenum, GLuint);
+GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum, GLenum, GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
+typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
+typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture);
+typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
+typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
+typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data);
+typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data);
+typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
+typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access);
+typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
+typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
+typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target);
+typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
+typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer);
+#endif
+
/*
* ------------------------------------------------
* Everything here and below was added manually
diff --git a/make/stub_includes/opengl/GL3/gl3.h b/make/stub_includes/opengl/GL3/gl3.h
index e9123b43a..41ed2ad2e 100755
--- a/make/stub_includes/opengl/GL3/gl3.h
+++ b/make/stub_includes/opengl/GL3/gl3.h
@@ -77,15 +77,15 @@ extern "C" {
# else /* for use with static link lib build of Win32 edition only */
# define GLAPI extern
# endif /* _STATIC_MESA support */
-# define GLAPIENTRY __stdcall
+# define APIENTRY __stdcall
#else
/* non-Windows compilation */
# define GLAPI extern
-# define GLAPIENTRY
+# define APIENTRY
#endif /* WIN32 / CYGWIN bracket */
-#ifndef GLAPIENTRYP
-# define GLAPIENTRYP GLAPIENTRY*
+#ifndef APIENTRYP
+# define APIENTRYP APIENTRY*
#endif
#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__)
@@ -113,14 +113,6 @@ extern "C" {
#pragma import on
#endif
-#ifndef APIENTRY
-#define APIENTRY GLAPIENTRY
-#endif
-
-#ifndef APIENTRY
-#define APIENTRY GLAPIENTRY
-#endif
-
#ifdef CENTERLINE_CLPP
#define signed
#endif
@@ -1116,453 +1108,453 @@ typedef unsigned short GLhalfNV;
#ifndef GL_VERSION_1_0
#define GL_VERSION_1_0 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glCullFace (GLenum);
-GLAPI void GLAPIENTRY glFrontFace (GLenum);
-GLAPI void GLAPIENTRY glHint (GLenum, GLenum);
-GLAPI void GLAPIENTRY glLineWidth (GLfloat);
-GLAPI void GLAPIENTRY glPointSize (GLfloat);
-GLAPI void GLAPIENTRY glPolygonMode (GLenum, GLenum);
-GLAPI void GLAPIENTRY glScissor (GLint, GLint, GLsizei, GLsizei);
-GLAPI void GLAPIENTRY glTexParameterf (GLenum, GLenum, GLfloat);
-GLAPI void GLAPIENTRY glTexParameterfv (GLenum, GLenum, const GLfloat *);
-GLAPI void GLAPIENTRY glTexParameteri (GLenum, GLenum, GLint);
-GLAPI void GLAPIENTRY glTexParameteriv (GLenum, GLenum, const GLint *);
-GLAPI void GLAPIENTRY glTexImage1D (GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glTexImage2D (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glDrawBuffer (GLenum);
-GLAPI void GLAPIENTRY glClear (GLbitfield);
-GLAPI void GLAPIENTRY glClearColor (GLclampf, GLclampf, GLclampf, GLclampf);
-GLAPI void GLAPIENTRY glClearStencil (GLint);
-GLAPI void GLAPIENTRY glClearDepth (GLclampd);
-GLAPI void GLAPIENTRY glStencilMask (GLuint);
-GLAPI void GLAPIENTRY glColorMask (GLboolean, GLboolean, GLboolean, GLboolean);
-GLAPI void GLAPIENTRY glDepthMask (GLboolean);
-GLAPI void GLAPIENTRY glDisable (GLenum);
-GLAPI void GLAPIENTRY glEnable (GLenum);
-GLAPI void GLAPIENTRY glFinish (void);
-GLAPI void GLAPIENTRY glFlush (void);
-GLAPI void GLAPIENTRY glBlendFunc (GLenum, GLenum);
-GLAPI void GLAPIENTRY glLogicOp (GLenum);
-GLAPI void GLAPIENTRY glStencilFunc (GLenum, GLint, GLuint);
-GLAPI void GLAPIENTRY glStencilOp (GLenum, GLenum, GLenum);
-GLAPI void GLAPIENTRY glDepthFunc (GLenum);
-GLAPI void GLAPIENTRY glPixelStoref (GLenum, GLfloat);
-GLAPI void GLAPIENTRY glPixelStorei (GLenum, GLint);
-GLAPI void GLAPIENTRY glReadBuffer (GLenum);
-GLAPI void GLAPIENTRY glReadPixels (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
-GLAPI void GLAPIENTRY glGetBooleanv (GLenum, GLboolean *);
-GLAPI void GLAPIENTRY glGetDoublev (GLenum, GLdouble *);
-GLAPI GLenum GLAPIENTRY glGetError (void);
-GLAPI void GLAPIENTRY glGetFloatv (GLenum, GLfloat *);
-GLAPI void GLAPIENTRY glGetIntegerv (GLenum, GLint *);
-GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum);
-GLAPI void GLAPIENTRY glGetTexImage (GLenum, GLint, GLenum, GLenum, GLvoid *);
-GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum, GLenum, GLfloat *);
-GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum, GLint, GLenum, GLfloat *);
-GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum, GLint, GLenum, GLint *);
-GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum);
-GLAPI void GLAPIENTRY glDepthRange (GLclampd, GLclampd);
-GLAPI void GLAPIENTRY glViewport (GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glCullFace (GLenum);
+GLAPI void APIENTRY glFrontFace (GLenum);
+GLAPI void APIENTRY glHint (GLenum, GLenum);
+GLAPI void APIENTRY glLineWidth (GLfloat);
+GLAPI void APIENTRY glPointSize (GLfloat);
+GLAPI void APIENTRY glPolygonMode (GLenum, GLenum);
+GLAPI void APIENTRY glScissor (GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glTexParameterf (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glTexParameterfv (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glTexParameteri (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glTexParameteriv (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glTexImage1D (GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexImage2D (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glDrawBuffer (GLenum);
+GLAPI void APIENTRY glClear (GLbitfield);
+GLAPI void APIENTRY glClearColor (GLclampf, GLclampf, GLclampf, GLclampf);
+GLAPI void APIENTRY glClearStencil (GLint);
+GLAPI void APIENTRY glClearDepth (GLclampd);
+GLAPI void APIENTRY glStencilMask (GLuint);
+GLAPI void APIENTRY glColorMask (GLboolean, GLboolean, GLboolean, GLboolean);
+GLAPI void APIENTRY glDepthMask (GLboolean);
+GLAPI void APIENTRY glDisable (GLenum);
+GLAPI void APIENTRY glEnable (GLenum);
+GLAPI void APIENTRY glFinish (void);
+GLAPI void APIENTRY glFlush (void);
+GLAPI void APIENTRY glBlendFunc (GLenum, GLenum);
+GLAPI void APIENTRY glLogicOp (GLenum);
+GLAPI void APIENTRY glStencilFunc (GLenum, GLint, GLuint);
+GLAPI void APIENTRY glStencilOp (GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glDepthFunc (GLenum);
+GLAPI void APIENTRY glPixelStoref (GLenum, GLfloat);
+GLAPI void APIENTRY glPixelStorei (GLenum, GLint);
+GLAPI void APIENTRY glReadBuffer (GLenum);
+GLAPI void APIENTRY glReadPixels (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetBooleanv (GLenum, GLboolean *);
+GLAPI void APIENTRY glGetDoublev (GLenum, GLdouble *);
+GLAPI GLenum APIENTRY glGetError (void);
+GLAPI void APIENTRY glGetFloatv (GLenum, GLfloat *);
+GLAPI void APIENTRY glGetIntegerv (GLenum, GLint *);
+GLAPI const GLubyte * APIENTRY glGetString (GLenum);
+GLAPI void APIENTRY glGetTexImage (GLenum, GLint, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetTexParameterfv (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetTexParameteriv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetTexLevelParameterfv (GLenum, GLint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetTexLevelParameteriv (GLenum, GLint, GLenum, GLint *);
+GLAPI GLboolean APIENTRY glIsEnabled (GLenum);
+GLAPI void APIENTRY glDepthRange (GLclampd, GLclampd);
+GLAPI void APIENTRY glViewport (GLint, GLint, GLsizei, GLsizei);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
-typedef void (GLAPIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
-typedef void (GLAPIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
-typedef void (GLAPIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
-typedef void (GLAPIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size);
-typedef void (GLAPIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode);
-typedef void (GLAPIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (GLAPIENTRYP PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLDRAWBUFFERPROC) (GLenum mode);
-typedef void (GLAPIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
-typedef void (GLAPIENTRYP PFNGLCLEARCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-typedef void (GLAPIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
-typedef void (GLAPIENTRYP PFNGLCLEARDEPTHPROC) (GLclampd depth);
-typedef void (GLAPIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
-typedef void (GLAPIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-typedef void (GLAPIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
-typedef void (GLAPIENTRYP PFNGLDISABLEPROC) (GLenum cap);
-typedef void (GLAPIENTRYP PFNGLENABLEPROC) (GLenum cap);
-typedef void (GLAPIENTRYP PFNGLFINISHPROC) (void);
-typedef void (GLAPIENTRYP PFNGLFLUSHPROC) (void);
-typedef void (GLAPIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
-typedef void (GLAPIENTRYP PFNGLLOGICOPPROC) (GLenum opcode);
-typedef void (GLAPIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
-typedef void (GLAPIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
-typedef void (GLAPIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
-typedef void (GLAPIENTRYP PFNGLPIXELSTOREFPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRYP PFNGLREADBUFFERPROC) (GLenum mode);
-typedef void (GLAPIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *params);
-typedef void (GLAPIENTRYP PFNGLGETDOUBLEVPROC) (GLenum pname, GLdouble *params);
-typedef GLenum (GLAPIENTRYP PFNGLGETERRORPROC) (void);
-typedef void (GLAPIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params);
-typedef const GLubyte * (GLAPIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
-typedef void (GLAPIENTRYP PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
-typedef GLboolean (GLAPIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
-typedef void (GLAPIENTRYP PFNGLDEPTHRANGEPROC) (GLclampd near_val, GLclampd far_val); /* MSVC can't handle near or far var names */
-typedef void (GLAPIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
+typedef void (APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
+typedef void (APIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size);
+typedef void (APIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode);
+typedef void (APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLDRAWBUFFERPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
+typedef void (APIENTRYP PFNGLCLEARCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+typedef void (APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
+typedef void (APIENTRYP PFNGLCLEARDEPTHPROC) (GLclampd depth);
+typedef void (APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
+typedef void (APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+typedef void (APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
+typedef void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
+typedef void (APIENTRYP PFNGLENABLEPROC) (GLenum cap);
+typedef void (APIENTRYP PFNGLFINISHPROC) (void);
+typedef void (APIENTRYP PFNGLFLUSHPROC) (void);
+typedef void (APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
+typedef void (APIENTRYP PFNGLLOGICOPPROC) (GLenum opcode);
+typedef void (APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
+typedef void (APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
+typedef void (APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
+typedef void (APIENTRYP PFNGLPIXELSTOREFPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLREADBUFFERPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+typedef void (APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *params);
+typedef void (APIENTRYP PFNGLGETDOUBLEVPROC) (GLenum pname, GLdouble *params);
+typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void);
+typedef void (APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params);
+typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
+typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
+typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
+typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLclampd near_val, GLclampd far_val); /* MSVC can't handle near or far var names */
+typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
#endif
#ifndef GL_VERSION_1_1
#define GL_VERSION_1_1 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glDrawArrays (GLenum, GLint, GLsizei);
-GLAPI void GLAPIENTRY glDrawElements (GLenum, GLsizei, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glGetPointerv (GLenum, GLvoid* *);
-GLAPI void GLAPIENTRY glPolygonOffset (GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
-GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
-GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum, GLint, GLint, GLint, GLint, GLsizei);
-GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
-GLAPI void GLAPIENTRY glTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glBindTexture (GLenum, GLuint);
-GLAPI void GLAPIENTRY glDeleteTextures (GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glGenTextures (GLsizei, GLuint *);
-GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint);
+GLAPI void APIENTRY glDrawArrays (GLenum, GLint, GLsizei);
+GLAPI void APIENTRY glDrawElements (GLenum, GLsizei, GLenum, const GLvoid *);
+GLAPI void APIENTRY glGetPointerv (GLenum, GLvoid* *);
+GLAPI void APIENTRY glPolygonOffset (GLfloat, GLfloat);
+GLAPI void APIENTRY glCopyTexImage1D (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
+GLAPI void APIENTRY glCopyTexImage2D (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+GLAPI void APIENTRY glCopyTexSubImage1D (GLenum, GLint, GLint, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glCopyTexSubImage2D (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glBindTexture (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteTextures (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenTextures (GLsizei, GLuint *);
+GLAPI GLboolean APIENTRY glIsTexture (GLuint);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
-typedef void (GLAPIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-typedef void (GLAPIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, GLvoid* *params);
-typedef void (GLAPIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
-typedef void (GLAPIENTRYP PFNGLCOPYTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
-typedef void (GLAPIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-typedef void (GLAPIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRYP PFNGLTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
-typedef void (GLAPIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
-typedef void (GLAPIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
-typedef GLboolean (GLAPIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
+typedef void (APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
+typedef void (APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, GLvoid* *params);
+typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
+typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
+typedef void (APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
+typedef void (APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
+typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
#endif
#ifndef GL_VERSION_1_2
#define GL_VERSION_1_2 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf);
-GLAPI void GLAPIENTRY glBlendEquation (GLenum);
-GLAPI void GLAPIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-GLAPI void GLAPIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf);
+GLAPI void APIENTRY glBlendEquation (GLenum);
+GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-typedef void (GLAPIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
-typedef void (GLAPIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
-typedef void (GLAPIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GLAPIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
#endif
#ifndef GL_VERSION_1_3
#define GL_VERSION_1_3 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glActiveTexture (GLenum);
-GLAPI void GLAPIENTRY glSampleCoverage (GLclampf, GLboolean);
-GLAPI void GLAPIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *);
+GLAPI void APIENTRY glActiveTexture (GLenum);
+GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean);
+GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
-typedef void (GLAPIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
-typedef void (GLAPIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
+typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
#endif
#ifndef GL_VERSION_1_4
#define GL_VERSION_1_4 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum);
-GLAPI void GLAPIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei);
-GLAPI void GLAPIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
-GLAPI void GLAPIENTRY glPointParameterf (GLenum, GLfloat);
-GLAPI void GLAPIENTRY glPointParameterfv (GLenum, const GLfloat *);
-GLAPI void GLAPIENTRY glPointParameteri (GLenum, GLint);
-GLAPI void GLAPIENTRY glPointParameteriv (GLenum, const GLint *);
+GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei);
+GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
+GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat);
+GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *);
+GLAPI void APIENTRY glPointParameteri (GLenum, GLint);
+GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-typedef void (GLAPIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
-typedef void (GLAPIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
-typedef void (GLAPIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
#endif
#ifndef GL_VERSION_1_5
#define GL_VERSION_1_5 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glGenQueries (GLsizei, GLuint *);
-GLAPI void GLAPIENTRY glDeleteQueries (GLsizei, const GLuint *);
-GLAPI GLboolean GLAPIENTRY glIsQuery (GLuint);
-GLAPI void GLAPIENTRY glBeginQuery (GLenum, GLuint);
-GLAPI void GLAPIENTRY glEndQuery (GLenum);
-GLAPI void GLAPIENTRY glGetQueryiv (GLenum, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *);
-GLAPI void GLAPIENTRY glBindBuffer (GLenum, GLuint);
-GLAPI void GLAPIENTRY glDeleteBuffers (GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glGenBuffers (GLsizei, GLuint *);
-GLAPI GLboolean GLAPIENTRY glIsBuffer (GLuint);
-GLAPI void GLAPIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum);
-GLAPI void GLAPIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *);
-GLAPI void GLAPIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *);
-GLAPI GLvoid* GLAPIENTRY glMapBuffer (GLenum, GLenum);
-GLAPI GLboolean GLAPIENTRY glUnmapBuffer (GLenum);
-GLAPI void GLAPIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *);
+GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *);
+GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *);
+GLAPI GLboolean APIENTRY glIsQuery (GLuint);
+GLAPI void APIENTRY glBeginQuery (GLenum, GLuint);
+GLAPI void APIENTRY glEndQuery (GLenum);
+GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *);
+GLAPI void APIENTRY glBindBuffer (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *);
+GLAPI GLboolean APIENTRY glIsBuffer (GLuint);
+GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum);
+GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *);
+GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *);
+GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum);
+GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum);
+GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
-typedef void (GLAPIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (GLAPIENTRYP PFNGLISQUERYPROC) (GLuint id);
-typedef void (GLAPIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRYP PFNGLENDQUERYPROC) (GLenum target);
-typedef void (GLAPIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
-typedef void (GLAPIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
-typedef void (GLAPIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
-typedef void (GLAPIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
-typedef GLboolean (GLAPIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
-typedef void (GLAPIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-typedef void (GLAPIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-typedef void (GLAPIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
-typedef GLvoid* (GLAPIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
-typedef GLboolean (GLAPIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
-typedef void (GLAPIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params);
+typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
+typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
+typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
+typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
+typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
+typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
+typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
+typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params);
#endif
#ifndef GL_VERSION_2_0
#define GL_VERSION_2_0 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glBlendEquationSeparate (GLenum, GLenum);
-GLAPI void GLAPIENTRY glDrawBuffers (GLsizei, const GLenum *);
-GLAPI void GLAPIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum);
-GLAPI void GLAPIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint);
-GLAPI void GLAPIENTRY glStencilMaskSeparate (GLenum, GLuint);
-GLAPI void GLAPIENTRY glAttachShader (GLuint, GLuint);
-GLAPI void GLAPIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *);
-GLAPI void GLAPIENTRY glCompileShader (GLuint);
-GLAPI GLuint GLAPIENTRY glCreateProgram (void);
-GLAPI GLuint GLAPIENTRY glCreateShader (GLenum);
-GLAPI void GLAPIENTRY glDeleteProgram (GLuint);
-GLAPI void GLAPIENTRY glDeleteShader (GLuint);
-GLAPI void GLAPIENTRY glDetachShader (GLuint, GLuint);
-GLAPI void GLAPIENTRY glDisableVertexAttribArray (GLuint);
-GLAPI void GLAPIENTRY glEnableVertexAttribArray (GLuint);
-GLAPI void GLAPIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
-GLAPI void GLAPIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
-GLAPI void GLAPIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *);
-GLAPI GLint GLAPIENTRY glGetAttribLocation (GLuint, const GLchar *);
-GLAPI void GLAPIENTRY glGetProgramiv (GLuint, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI void GLAPIENTRY glGetShaderiv (GLuint, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI void GLAPIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI GLint GLAPIENTRY glGetUniformLocation (GLuint, const GLchar *);
-GLAPI void GLAPIENTRY glGetUniformfv (GLuint, GLint, GLfloat *);
-GLAPI void GLAPIENTRY glGetUniformiv (GLuint, GLint, GLint *);
-GLAPI void GLAPIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *);
-GLAPI void GLAPIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *);
-GLAPI void GLAPIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *);
-GLAPI GLboolean GLAPIENTRY glIsProgram (GLuint);
-GLAPI GLboolean GLAPIENTRY glIsShader (GLuint);
-GLAPI void GLAPIENTRY glLinkProgram (GLuint);
-GLAPI void GLAPIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *);
-GLAPI void GLAPIENTRY glUseProgram (GLuint);
-GLAPI void GLAPIENTRY glUniform1f (GLint, GLfloat);
-GLAPI void GLAPIENTRY glUniform2f (GLint, GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glUniform1i (GLint, GLint);
-GLAPI void GLAPIENTRY glUniform2i (GLint, GLint, GLint);
-GLAPI void GLAPIENTRY glUniform3i (GLint, GLint, GLint, GLint);
-GLAPI void GLAPIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint);
-GLAPI void GLAPIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *);
-GLAPI void GLAPIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *);
-GLAPI void GLAPIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *);
-GLAPI void GLAPIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *);
-GLAPI void GLAPIENTRY glUniform1iv (GLint, GLsizei, const GLint *);
-GLAPI void GLAPIENTRY glUniform2iv (GLint, GLsizei, const GLint *);
-GLAPI void GLAPIENTRY glUniform3iv (GLint, GLsizei, const GLint *);
-GLAPI void GLAPIENTRY glUniform4iv (GLint, GLsizei, const GLint *);
-GLAPI void GLAPIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glValidateProgram (GLuint);
-GLAPI void GLAPIENTRY glVertexAttrib1d (GLuint, GLdouble);
-GLAPI void GLAPIENTRY glVertexAttrib1dv (GLuint, const GLdouble *);
-GLAPI void GLAPIENTRY glVertexAttrib1f (GLuint, GLfloat);
-GLAPI void GLAPIENTRY glVertexAttrib1fv (GLuint, const GLfloat *);
-GLAPI void GLAPIENTRY glVertexAttrib1s (GLuint, GLshort);
-GLAPI void GLAPIENTRY glVertexAttrib1sv (GLuint, const GLshort *);
-GLAPI void GLAPIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble);
-GLAPI void GLAPIENTRY glVertexAttrib2dv (GLuint, const GLdouble *);
-GLAPI void GLAPIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glVertexAttrib2fv (GLuint, const GLfloat *);
-GLAPI void GLAPIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort);
-GLAPI void GLAPIENTRY glVertexAttrib2sv (GLuint, const GLshort *);
-GLAPI void GLAPIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble);
-GLAPI void GLAPIENTRY glVertexAttrib3dv (GLuint, const GLdouble *);
-GLAPI void GLAPIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glVertexAttrib3fv (GLuint, const GLfloat *);
-GLAPI void GLAPIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort);
-GLAPI void GLAPIENTRY glVertexAttrib3sv (GLuint, const GLshort *);
-GLAPI void GLAPIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *);
-GLAPI void GLAPIENTRY glVertexAttrib4Niv (GLuint, const GLint *);
-GLAPI void GLAPIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *);
-GLAPI void GLAPIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
-GLAPI void GLAPIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *);
-GLAPI void GLAPIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *);
-GLAPI void GLAPIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *);
-GLAPI void GLAPIENTRY glVertexAttrib4bv (GLuint, const GLbyte *);
-GLAPI void GLAPIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
-GLAPI void GLAPIENTRY glVertexAttrib4dv (GLuint, const GLdouble *);
-GLAPI void GLAPIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
-GLAPI void GLAPIENTRY glVertexAttrib4fv (GLuint, const GLfloat *);
-GLAPI void GLAPIENTRY glVertexAttrib4iv (GLuint, const GLint *);
-GLAPI void GLAPIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort);
-GLAPI void GLAPIENTRY glVertexAttrib4sv (GLuint, const GLshort *);
-GLAPI void GLAPIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *);
-GLAPI void GLAPIENTRY glVertexAttrib4uiv (GLuint, const GLuint *);
-GLAPI void GLAPIENTRY glVertexAttrib4usv (GLuint, const GLushort *);
-GLAPI void GLAPIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum);
+GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *);
+GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint);
+GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint);
+GLAPI void APIENTRY glAttachShader (GLuint, GLuint);
+GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *);
+GLAPI void APIENTRY glCompileShader (GLuint);
+GLAPI GLuint APIENTRY glCreateProgram (void);
+GLAPI GLuint APIENTRY glCreateShader (GLenum);
+GLAPI void APIENTRY glDeleteProgram (GLuint);
+GLAPI void APIENTRY glDeleteShader (GLuint);
+GLAPI void APIENTRY glDetachShader (GLuint, GLuint);
+GLAPI void APIENTRY glDisableVertexAttribArray (GLuint);
+GLAPI void APIENTRY glEnableVertexAttribArray (GLuint);
+GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
+GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
+GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *);
+GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *);
+GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
+GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
+GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *);
+GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *);
+GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *);
+GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *);
+GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *);
+GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *);
+GLAPI GLboolean APIENTRY glIsProgram (GLuint);
+GLAPI GLboolean APIENTRY glIsShader (GLuint);
+GLAPI void APIENTRY glLinkProgram (GLuint);
+GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *);
+GLAPI void APIENTRY glUseProgram (GLuint);
+GLAPI void APIENTRY glUniform1f (GLint, GLfloat);
+GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat);
+GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glUniform1i (GLint, GLint);
+GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint);
+GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *);
+GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glValidateProgram (GLuint);
+GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble);
+GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat);
+GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort);
+GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *);
+GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *);
+GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
+GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *);
+GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *);
+GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *);
+GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *);
+GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *);
+GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *);
+GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *);
+GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *);
+GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
-typedef void (GLAPIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-typedef void (GLAPIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-typedef void (GLAPIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
-typedef void (GLAPIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (GLAPIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
-typedef void (GLAPIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
-typedef GLuint (GLAPIENTRYP PFNGLCREATEPROGRAMPROC) (void);
-typedef GLuint (GLAPIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
-typedef void (GLAPIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
-typedef void (GLAPIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (GLAPIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (GLAPIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (GLAPIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
-typedef void (GLAPIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
-typedef void (GLAPIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
-typedef GLint (GLAPIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (GLAPIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-typedef void (GLAPIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-typedef void (GLAPIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
-typedef GLint (GLAPIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (GLAPIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (GLAPIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (GLAPIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
-typedef GLboolean (GLAPIENTRYP PFNGLISSHADERPROC) (GLuint shader);
-typedef void (GLAPIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
-typedef void (GLAPIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
-typedef void (GLAPIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (GLAPIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (GLAPIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (GLAPIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
-typedef void (GLAPIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
-typedef void (GLAPIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (GLAPIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (GLAPIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
+typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
+typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
+typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
+typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
+typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
+typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
+typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
+typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
+typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
+typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
+typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
+typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
+typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
+typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif
#ifndef GL_VERSION_2_1
#define GL_VERSION_2_1 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *);
-GLAPI void GLAPIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *);
+GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
#endif
#ifndef GL_VERSION_3_0
@@ -1572,83 +1564,83 @@ typedef void (GLAPIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei
/* ARB_map_buffer_range */
/* ARB_vertex_array_object */
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glColorMaski (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
-GLAPI void GLAPIENTRY glGetBooleani_v (GLenum, GLuint, GLboolean *);
-GLAPI void GLAPIENTRY glGetIntegeri_v (GLenum, GLuint, GLint *);
-GLAPI void GLAPIENTRY glEnablei (GLenum, GLuint);
-GLAPI void GLAPIENTRY glDisablei (GLenum, GLuint);
-GLAPI GLboolean GLAPIENTRY glIsEnabledi (GLenum, GLuint);
-GLAPI void GLAPIENTRY glBeginTransformFeedback (GLenum);
-GLAPI void GLAPIENTRY glEndTransformFeedback (void);
-GLAPI void GLAPIENTRY glBindBufferRange (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
-GLAPI void GLAPIENTRY glBindBufferBase (GLenum, GLuint, GLuint);
-GLAPI void GLAPIENTRY glTransformFeedbackVaryings (GLuint, GLsizei, const GLchar* *, GLenum);
-GLAPI void GLAPIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
-GLAPI void GLAPIENTRY glClampColor (GLenum, GLenum);
-GLAPI void GLAPIENTRY glBeginConditionalRender (GLuint, GLenum);
-GLAPI void GLAPIENTRY glEndConditionalRender (void);
-GLAPI void GLAPIENTRY glVertexAttribIPointer (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void GLAPIENTRY glGetVertexAttribIiv (GLuint, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetVertexAttribIuiv (GLuint, GLenum, GLuint *);
-GLAPI void GLAPIENTRY glGetUniformuiv (GLuint, GLint, GLuint *);
-GLAPI void GLAPIENTRY glBindFragDataLocation (GLuint, GLuint, const GLchar *);
-GLAPI GLint GLAPIENTRY glGetFragDataLocation (GLuint, const GLchar *);
-GLAPI void GLAPIENTRY glUniform1ui (GLint, GLuint);
-GLAPI void GLAPIENTRY glUniform2ui (GLint, GLuint, GLuint);
-GLAPI void GLAPIENTRY glUniform3ui (GLint, GLuint, GLuint, GLuint);
-GLAPI void GLAPIENTRY glUniform4ui (GLint, GLuint, GLuint, GLuint, GLuint);
-GLAPI void GLAPIENTRY glUniform1uiv (GLint, GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glUniform2uiv (GLint, GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glUniform3uiv (GLint, GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glUniform4uiv (GLint, GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glTexParameterIiv (GLenum, GLenum, const GLint *);
-GLAPI void GLAPIENTRY glTexParameterIuiv (GLenum, GLenum, const GLuint *);
-GLAPI void GLAPIENTRY glGetTexParameterIiv (GLenum, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetTexParameterIuiv (GLenum, GLenum, GLuint *);
-GLAPI void GLAPIENTRY glClearBufferiv (GLenum, GLint, const GLint *);
-GLAPI void GLAPIENTRY glClearBufferuiv (GLenum, GLint, const GLuint *);
-GLAPI void GLAPIENTRY glClearBufferfv (GLenum, GLint, const GLfloat *);
-GLAPI void GLAPIENTRY glClearBufferfi (GLenum, GLint, GLfloat, GLint);
-GLAPI const GLubyte * GLAPIENTRY glGetStringi (GLenum, GLuint);
+GLAPI void APIENTRY glColorMaski (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
+GLAPI void APIENTRY glGetBooleani_v (GLenum, GLuint, GLboolean *);
+GLAPI void APIENTRY glGetIntegeri_v (GLenum, GLuint, GLint *);
+GLAPI void APIENTRY glEnablei (GLenum, GLuint);
+GLAPI void APIENTRY glDisablei (GLenum, GLuint);
+GLAPI GLboolean APIENTRY glIsEnabledi (GLenum, GLuint);
+GLAPI void APIENTRY glBeginTransformFeedback (GLenum);
+GLAPI void APIENTRY glEndTransformFeedback (void);
+GLAPI void APIENTRY glBindBufferRange (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
+GLAPI void APIENTRY glBindBufferBase (GLenum, GLuint, GLuint);
+GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint, GLsizei, const GLchar* *, GLenum);
+GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
+GLAPI void APIENTRY glClampColor (GLenum, GLenum);
+GLAPI void APIENTRY glBeginConditionalRender (GLuint, GLenum);
+GLAPI void APIENTRY glEndConditionalRender (void);
+GLAPI void APIENTRY glVertexAttribIPointer (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetVertexAttribIiv (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint, GLenum, GLuint *);
+GLAPI void APIENTRY glGetUniformuiv (GLuint, GLint, GLuint *);
+GLAPI void APIENTRY glBindFragDataLocation (GLuint, GLuint, const GLchar *);
+GLAPI GLint APIENTRY glGetFragDataLocation (GLuint, const GLchar *);
+GLAPI void APIENTRY glUniform1ui (GLint, GLuint);
+GLAPI void APIENTRY glUniform2ui (GLint, GLuint, GLuint);
+GLAPI void APIENTRY glUniform3ui (GLint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glUniform4ui (GLint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glUniform1uiv (GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glUniform2uiv (GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glUniform3uiv (GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glUniform4uiv (GLint, GLsizei, const GLuint *);
+GLAPI void APIENTRY glTexParameterIiv (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glTexParameterIuiv (GLenum, GLenum, const GLuint *);
+GLAPI void APIENTRY glGetTexParameterIiv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetTexParameterIuiv (GLenum, GLenum, GLuint *);
+GLAPI void APIENTRY glClearBufferiv (GLenum, GLint, const GLint *);
+GLAPI void APIENTRY glClearBufferuiv (GLenum, GLint, const GLuint *);
+GLAPI void APIENTRY glClearBufferfv (GLenum, GLint, const GLfloat *);
+GLAPI void APIENTRY glClearBufferfi (GLenum, GLint, GLfloat, GLint);
+GLAPI const GLubyte * APIENTRY glGetStringi (GLenum, GLuint);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
-typedef void (GLAPIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
-typedef void (GLAPIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
-typedef void (GLAPIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index);
-typedef GLboolean (GLAPIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
-typedef void (GLAPIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
-typedef void (GLAPIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef void (GLAPIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
-typedef void (GLAPIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
-typedef void (GLAPIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
-typedef void (GLAPIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
-typedef void (GLAPIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
-typedef void (GLAPIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void);
-typedef void (GLAPIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (GLAPIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
-typedef void (GLAPIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
-typedef void (GLAPIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
-typedef GLint (GLAPIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (GLAPIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
-typedef void (GLAPIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
-typedef void (GLAPIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
-typedef void (GLAPIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-typedef void (GLAPIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (GLAPIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
-typedef void (GLAPIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
-typedef void (GLAPIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
-typedef void (GLAPIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
-typedef void (GLAPIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
-typedef void (GLAPIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
-typedef const GLubyte * (GLAPIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
+typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
+typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
+typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index);
+typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
+typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
+typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
+typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
+typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
+typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
+typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
+typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
+typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
+typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
+typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
#endif
#ifndef GL_VERSION_3_1
@@ -1657,115 +1649,119 @@ typedef const GLubyte * (GLAPIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint i
/* ARB_copy_buffer */
/* ARB_uniform_buffer_object */
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glDrawArraysInstanced (GLenum, GLint, GLsizei, GLsizei);
-GLAPI void GLAPIENTRY glDrawElementsInstanced (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
-GLAPI void GLAPIENTRY glTexBuffer (GLenum, GLenum, GLuint);
-GLAPI void GLAPIENTRY glPrimitiveRestartIndex (GLuint);
+GLAPI void APIENTRY glDrawArraysInstanced (GLenum, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glDrawElementsInstanced (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
+GLAPI void APIENTRY glTexBuffer (GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-typedef void (GLAPIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
-typedef void (GLAPIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
-typedef void (GLAPIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
+typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index);
#endif
#ifndef GL_ARB_framebuffer_object
#define GL_ARB_framebuffer_object 1
#ifdef GL3_PROTOTYPES
-GLAPI GLboolean GLAPIENTRY glIsRenderbuffer (GLuint);
-GLAPI void GLAPIENTRY glBindRenderbuffer (GLenum, GLuint);
-GLAPI void GLAPIENTRY glDeleteRenderbuffers (GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glGenRenderbuffers (GLsizei, GLuint *);
-GLAPI void GLAPIENTRY glRenderbufferStorage (GLenum, GLenum, GLsizei, GLsizei);
-GLAPI void GLAPIENTRY glGetRenderbufferParameteriv (GLenum, GLenum, GLint *);
-GLAPI GLboolean GLAPIENTRY glIsFramebuffer (GLuint);
-GLAPI void GLAPIENTRY glBindFramebuffer (GLenum, GLuint);
-GLAPI void GLAPIENTRY glDeleteFramebuffers (GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glGenFramebuffers (GLsizei, GLuint *);
-GLAPI GLenum GLAPIENTRY glCheckFramebufferStatus (GLenum);
-GLAPI void GLAPIENTRY glFramebufferTexture1D (GLenum, GLenum, GLenum, GLuint, GLint);
-GLAPI void GLAPIENTRY glFramebufferTexture2D (GLenum, GLenum, GLenum, GLuint, GLint);
-GLAPI void GLAPIENTRY glFramebufferTexture3D (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
-GLAPI void GLAPIENTRY glFramebufferRenderbuffer (GLenum, GLenum, GLenum, GLuint);
-GLAPI void GLAPIENTRY glGetFramebufferAttachmentParameteriv (GLenum, GLenum, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGenerateMipmap (GLenum);
-GLAPI void GLAPIENTRY glBlitFramebuffer (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
-GLAPI void GLAPIENTRY glRenderbufferStorageMultisample (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GLAPI void GLAPIENTRY glFramebufferTextureLayer (GLenum, GLenum, GLuint, GLint, GLint);
+GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint);
+GLAPI void APIENTRY glBindRenderbuffer (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenRenderbuffers (GLsizei, GLuint *);
+GLAPI void APIENTRY glRenderbufferStorage (GLenum, GLenum, GLsizei, GLsizei);
+GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum, GLenum, GLint *);
+GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint);
+GLAPI void APIENTRY glBindFramebuffer (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteFramebuffers (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenFramebuffers (GLsizei, GLuint *);
+GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum);
+GLAPI void APIENTRY glFramebufferTexture1D (GLenum, GLenum, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glFramebufferTexture2D (GLenum, GLenum, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glFramebufferTexture3D (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
+GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum, GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGenerateMipmap (GLenum);
+GLAPI void APIENTRY glBlitFramebuffer (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
+GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+GLAPI void APIENTRY glFramebufferTextureLayer (GLenum, GLenum, GLuint, GLint, GLint);
#endif /* GL3_PROTOTYPES */
-typedef GLboolean (GLAPIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
-typedef void (GLAPIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
-typedef void (GLAPIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
-typedef void (GLAPIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
-typedef void (GLAPIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef GLboolean (GLAPIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
-typedef void (GLAPIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
-typedef void (GLAPIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
-typedef void (GLAPIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
-typedef GLenum (GLAPIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
-typedef void (GLAPIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-typedef void (GLAPIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GLAPIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
-typedef void (GLAPIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef void (GLAPIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
+typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
+typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
+typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
+typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
+typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
#endif
#ifndef GL_ARB_map_buffer_range
#define GL_ARB_map_buffer_range 1
#ifdef GL3_PROTOTYPES
-GLAPI GLvoid* GLAPIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield);
-GLAPI void GLAPIENTRY glFlushMappedBufferRange (GLenum, GLintptr, GLsizeiptr);
+GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield);
+GLAPI void APIENTRY glFlushMappedBufferRange (GLenum, GLintptr, GLsizeiptr);
#endif /* GL3_PROTOTYPES */
-typedef GLvoid* (GLAPIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
-typedef void (GLAPIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
+typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
#endif
#ifndef GL_ARB_vertex_array_object
#define GL_ARB_vertex_array_object 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glBindVertexArray (GLuint);
-GLAPI void GLAPIENTRY glDeleteVertexArrays (GLsizei, const GLuint *);
-GLAPI void GLAPIENTRY glGenVertexArrays (GLsizei, GLuint *);
-GLAPI GLboolean GLAPIENTRY glIsVertexArray (GLuint);
+GLAPI void APIENTRY glBindVertexArray (GLuint);
+GLAPI void APIENTRY glDeleteVertexArrays (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenVertexArrays (GLsizei, GLuint *);
+GLAPI GLboolean APIENTRY glIsVertexArray (GLuint);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array);
-typedef void (GLAPIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
-typedef void (GLAPIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
-typedef GLboolean (GLAPIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array);
+typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array);
+typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
+typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
+typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array);
#endif
#ifndef GL_ARB_uniform_buffer_object
#define GL_ARB_uniform_buffer_object 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glGetUniformIndices (GLuint, GLsizei, const GLchar* *, GLuint *);
-GLAPI void GLAPIENTRY glGetActiveUniformsiv (GLuint, GLsizei, const GLuint *, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetActiveUniformName (GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI GLuint GLAPIENTRY glGetUniformBlockIndex (GLuint, const GLchar *);
-GLAPI void GLAPIENTRY glGetActiveUniformBlockiv (GLuint, GLuint, GLenum, GLint *);
-GLAPI void GLAPIENTRY glGetActiveUniformBlockName (GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
-GLAPI void GLAPIENTRY glUniformBlockBinding (GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glGetUniformIndices (GLuint, GLsizei, const GLchar* *, GLuint *);
+GLAPI void APIENTRY glGetActiveUniformsiv (GLuint, GLsizei, const GLuint *, GLenum, GLint *);
+GLAPI void APIENTRY glGetActiveUniformName (GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint, const GLchar *);
+GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint, GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+GLAPI void APIENTRY glUniformBlockBinding (GLuint, GLuint, GLuint);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
-typedef void (GLAPIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
-typedef GLuint (GLAPIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
-typedef void (GLAPIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
-typedef void (GLAPIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
-typedef void (GLAPIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
+typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
#endif
#ifndef GL_ARB_copy_buffer
#define GL_ARB_copy_buffer 1
#ifdef GL3_PROTOTYPES
-GLAPI void GLAPIENTRY glCopyBufferSubData (GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
+GLAPI void APIENTRY glCopyBufferSubData (GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
#endif /* GL3_PROTOTYPES */
-typedef void (GLAPIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
#endif
+/* Include Post-GL 3.1 changes and extensions */
+#include
+
+
#ifdef __cplusplus
}
diff --git a/make/stub_includes/opengl/GL3/gl3ext.h b/make/stub_includes/opengl/GL3/gl3ext.h
index 2042a3acd..7110559b0 100644
--- a/make/stub_includes/opengl/GL3/gl3ext.h
+++ b/make/stub_includes/opengl/GL3/gl3ext.h
@@ -1,6 +1,43 @@
#ifndef __gl3ext_h_
#define __gl3ext_h_
+#ifndef GL_ARB_geometry_shader4
+#define GL_LINES_ADJACENCY_ARB 0x000A
+#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
+#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D
+#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
+#define GL_GEOMETRY_SHADER_ARB 0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
+#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
+/* reuse GL_MAX_VARYING_COMPONENTS */
+/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+#endif
+
+#ifndef GL_ARB_geometry_shader4
+#define GL_ARB_geometry_shader4 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glProgramParameteriARB (GLuint, GLenum, GLint);
+GLAPI void APIENTRY glFramebufferTextureARB (GLenum, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum, GLenum, GLuint, GLint, GLint);
+GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum, GLenum, GLuint, GLint, GLenum);
+#endif /* GL_GL3EXT_PROTOTYPES */
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#endif
+
#endif
diff --git a/make/stub_includes/opengl/gl3.c b/make/stub_includes/opengl/gl3.c
index 3326c58ad..5e9d87ccd 100644
--- a/make/stub_includes/opengl/gl3.c
+++ b/make/stub_includes/opengl/gl3.c
@@ -4,4 +4,8 @@
// "gl3.h" are parsed.
#define GL3_PROTOTYPES
+// Define GL_GL3EXT_PROTOTYPES so that the OpenGL extension prototypes in
+// "gl3ext.h" are parsed.
+#define GL_GL3EXT_PROTOTYPES
+
#include
--
cgit v1.2.3
From a2350e9ae32797deaca04ee129ee459022ee29da Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Mon, 3 Aug 2009 09:58:01 -0700
Subject: Add: GL_AMD_vertex_shader_tessellator from spec
---
make/stub_includes/opengl/GL/glext.h | 26 +++++++++++++++++++++++++-
make/stub_includes/opengl/GL3/gl3ext.h | 32 ++++++++++++++++++++++++++++++++
2 files changed, 57 insertions(+), 1 deletion(-)
(limited to 'make')
diff --git a/make/stub_includes/opengl/GL/glext.h b/make/stub_includes/opengl/GL/glext.h
index 94345ca08..68bf425cf 100644
--- a/make/stub_includes/opengl/GL/glext.h
+++ b/make/stub_includes/opengl/GL/glext.h
@@ -8427,11 +8427,35 @@ typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenu
/*
* ------------------------------------------------
* Everything here and below was added manually
- * by ckline, kbr and yvg to the version of glext.h obtained from:
+ * to the version of glext.h obtained from:
* http://oss.sgi.com/projects/ogl-sample/registry/index.html
* ------------------------------------------------
*/
+
+/**
+ * http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
+ */
+#ifndef GL_AMD_vertex_shader_tessellator
+#define GL_SAMPLER_BUFFER_AMD 0x9001
+#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
+#define GL_DISCRETE_AMD 0x9006
+#define GL_CONTINUOUS_AMD 0x9007
+#define GL_TESSELLATION_MODE_AMD 0x9004
+#define GL_TESSELLATION_FACTOR_AMD 0x9005
+#endif
+
+#ifndef GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor);
+GLAPI void APIENTRY glTessellationModeAMD(GLenum mode);
+#endif
+typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
+typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
+#endif
+
#ifndef GL_NV_element_array
#define GL_ELEMENT_ARRAY_TYPE_NV 0x8769
#define GL_ELEMENT_ARRAY_POINTER_NV 0x876A
diff --git a/make/stub_includes/opengl/GL3/gl3ext.h b/make/stub_includes/opengl/GL3/gl3ext.h
index 7110559b0..8dcc9b4a3 100644
--- a/make/stub_includes/opengl/GL3/gl3ext.h
+++ b/make/stub_includes/opengl/GL3/gl3ext.h
@@ -38,6 +38,38 @@ typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLe
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
#endif
+
+/*
+ * ------------------------------------------------
+ * Everything here and below was added manually
+ * to the version of glext.h obtained from:
+ * http://oss.sgi.com/projects/ogl-sample/registry/index.html
+ * ------------------------------------------------
+ */
+
+
+/**
+ * http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
+ */
+#ifndef GL_AMD_vertex_shader_tessellator
+#define GL_SAMPLER_BUFFER_AMD 0x9001
+#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
+#define GL_DISCRETE_AMD 0x9006
+#define GL_CONTINUOUS_AMD 0x9007
+#define GL_TESSELLATION_MODE_AMD 0x9004
+#define GL_TESSELLATION_FACTOR_AMD 0x9005
#endif
+#ifndef GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor);
+GLAPI void APIENTRY glTessellationModeAMD(GLenum mode);
+#endif
+typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
+typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
+#endif
+
+#endif
--
cgit v1.2.3
From 733d54f7e2977c20e373eba50b9cd16966a4fb77 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Mon, 3 Aug 2009 10:48:58 -0700
Subject: Doc: OpenGL 3.1 .. 3.2 profile clarification
---
make/config/jogl/gl-common.cfg | 5 ++---
make/doc/jogl/spec-overview.html | 19 ++++++++++++++-----
2 files changed, 16 insertions(+), 8 deletions(-)
(limited to 'make')
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index 935bf6664..efa4c7bdd 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -605,9 +605,8 @@ ClassJavadoc GL2 */
ClassJavadoc GL3 /**
ClassJavadoc GL3 *
-ClassJavadoc GL3 * This interface contains all core desktop OpenGL methods starting from 3.1,
-ClassJavadoc GL3 * inclusive - forward compatible, as well as most of it's extensions defined at the
-ClassJavadoc GL3 * time of this specification.
+ClassJavadoc GL3 * This interface contains all core, forward compatible, OpenGL methods starting from 3.1,
+ClassJavadoc GL3 * inclusive, as well as most of it's extensions defined at the time of this specification.
ClassJavadoc GL3 * Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
ClassJavadoc GL3 * 3.1 specification, hence the {@link GL2GL3} implemented interface.
ClassJavadoc GL3 * Note: OpenGL 3.1 forward compatible no more includes fixed point functionality.
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index 37f0caa00..f2c0c0339 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -12,7 +12,7 @@
bindings to the native OpenGL(R) 3D graphics library profiles:
- Desktop OpenGL 1.0 - 3.0
- - Desktop OpenGL 3.x, with x >= 1
+ - Desktop OpenGL 3.x, with x >= 1, forward compatible, core profile
- Embedded OpenGL ES 1.x, with x >= 0
- Embedded OpenGL ES 2.x, with x >= 0
@@ -55,9 +55,8 @@ bindings to the native OpenGL(R) 3D graphics library profiles:
- {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
- This interface contains all core desktop OpenGL methods starting from 3.1,
-inclusive - forward compatible only, as well as most of it's extensions defined at the
-time of this specification.
+ This interface contains all core, forward compatible, OpenGL methods starting from 3.1,
+inclusive, as well as most of it's extensions defined at the time of this specification.
Note: OpenGL 3.0 forward compatible, non deprecated functionality is included in the
3.1 specification, hence the {@link javax.media.opengl.GL2GL3} implemented interface.
Note: OpenGL 3.1 forward compatible no more includes fixed point functionality.
@@ -323,7 +322,7 @@ according the following rules:
- {@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
- - All functions in core OpenGL 3.1 - forward compatible, inclusive, have been included,
+
- All functions in core, forward compatible, OpenGL 3.1, inclusive, have been included,
as described in the header files
GL3/gl3.h
.
- Reason for starting a new profile beginning with 3.1 are:
@@ -335,6 +334,7 @@ according the following rules:
- It shares a commont subset with ES2.x
- It is not guaranteed to be provided by all vendors.
- It is not guaranteed to be provided in future versions.
+ - OpenGL 3.2 core profile is compatible with OpenGL 3.1 forward compatible spec.
@@ -469,6 +469,15 @@ javax.media.opengl namespace via future maintenance updates to the API.
href="http://www.khronos.org/registry/cl/">
http://www.khronos.org/registry/cl/
+
+ - OpenGL 3.2 Core Specification
+
+
+
+
+http://www.opengl.org/registry/doc/glspec32.core.20090803.pdf
+
- OpenGL 3.1 Specification
--
cgit v1.2.3
From 33c4fbf49ff5d91925d3653dd5d5f034825954e7 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Mon, 3 Aug 2009 13:18:17 -0700
Subject: Doc: OpenGL 3.1 .. 3.2 profile clarification
GLX_ARB_create_context: Add 3.2 context
WGL_ARB_create_context: Add 3.2 context
Add: Trying to use 3.2 core profile creation for GL3,
disabled by default.
(Disabled per default due to a freezing JVM on Linux
_after_ the Java main thread and Hotspot finishes.)
Experimental: You may try '3.2 core profile creation'
setting the java system property 'jogl.GLContext.3_2'.
---
make/doc/jogl/spec-overview.html | 3 +-
make/stub_includes/opengl/GL/glxext.h | 7 +-
make/stub_includes/opengl/GL/wglext.h | 7 +-
.../classes/com/sun/opengl/impl/GLContextImpl.java | 1 +
.../opengl/impl/windows/wgl/WindowsWGLContext.java | 81 ++++++++++++++--------
.../com/sun/opengl/impl/x11/glx/X11GLXContext.java | 76 ++++++++++++++------
6 files changed, 120 insertions(+), 55 deletions(-)
(limited to 'make')
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index f2c0c0339..5d4779c57 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -329,12 +329,13 @@ according the following rules:
- OpenGL 3.1 requires a new native context, incompatible with prior versions.
- OpenGL 3.1 forward compatible profile drops fixed functionality.
- - Forward compatibility, dropping fixed functionality, is choosen because:
+
- Forward compatibility, aka core, ie a context without
GL_ARB_compatibility
, is chosen because:
- It shares a commont subset with ES2.x
- It is not guaranteed to be provided by all vendors.
- It is not guaranteed to be provided in future versions.
- OpenGL 3.2 core profile is compatible with OpenGL 3.1 forward compatible spec.
+ - OpenGL 3.2 Spec Appendix E.1: It is not possible to implement both core and compatibility profiles in a single GL context, ..
diff --git a/make/stub_includes/opengl/GL/glxext.h b/make/stub_includes/opengl/GL/glxext.h
index 2d6036bcd..2ed99a824 100644
--- a/make/stub_includes/opengl/GL/glxext.h
+++ b/make/stub_includes/opengl/GL/glxext.h
@@ -77,11 +77,14 @@ extern "C" {
#endif
#ifndef GLX_ARB_create_context
-#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
-#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
#define GLX_CONTEXT_FLAGS_ARB 0x2094
+#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
#endif
#ifndef GLX_SGIS_multisample
diff --git a/make/stub_includes/opengl/GL/wglext.h b/make/stub_includes/opengl/GL/wglext.h
index 6f367c09b..d581756c2 100644
--- a/make/stub_includes/opengl/GL/wglext.h
+++ b/make/stub_includes/opengl/GL/wglext.h
@@ -190,12 +190,15 @@ extern "C" {
#endif
#ifndef WGL_ARB_create_context
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
#define WGL_CONTEXT_FLAGS_ARB 0x2094
-#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001
-#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
#define ERROR_INVALID_VERSION_ARB 0x2095
#endif
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
index 16eb934bd..d1a35b1b6 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
@@ -61,6 +61,7 @@ public abstract class GLContextImpl extends GLContext {
// platforms anyway in particular with the disabling of the
// GLWorkerThread which we found to be necessary in 1.0 beta 4.
protected boolean optimizationEnabled = Debug.isPropertyDefined("jogl.GLContext.optimize", true);
+ protected boolean tryGLContext3_2 = Debug.isPropertyDefined("jogl.GLContext.3_2", true);
// Cache of the functions that are available to be called at the current
// moment in time
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
index 6d810ed39..008dd6ac2 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
@@ -154,13 +154,9 @@ public class WindowsWGLContext extends GLContextImpl {
if( !isFunctionAvailable("wglCreateContextAttribsARB") ||
!isExtensionAvailable("WGL_ARB_create_context") ) {
if(glCaps.getGLProfile().isGL3()) {
- if (!WGL.wglMakeCurrent(0, 0)) {
- throw new GLException("Error freeing temp OpenGL context: " + WGL.GetLastError());
- }
- if (!WGL.wglDeleteContext(temp_hglrc)) {
- throw new GLException("Unable to delete OpenGL context");
- }
- throw new GLException("Unable to create OpenGL 3.1 context (no WGL_ARB_create_context)");
+ WGL.wglMakeCurrent(0, 0);
+ WGL.wglDeleteContext(temp_hglrc);
+ throw new GLException("Unable to create OpenGL >= 3.1 context (no WGL_ARB_create_context)");
}
// continue with temp context for GL < 3.0
@@ -173,44 +169,71 @@ public class WindowsWGLContext extends GLContextImpl {
// preset with default values
int attribs[] = {
- WGLExt.WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
- WGLExt.WGL_CONTEXT_MINOR_VERSION_ARB, 0,
- WGLExt.WGL_CONTEXT_FLAGS_ARB, 0,
- 0
+ /* 0 */ WGLExt.WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
+ /* 2 */ WGLExt.WGL_CONTEXT_MINOR_VERSION_ARB, 0,
+ /* 4 */ WGLExt.WGL_CONTEXT_FLAGS_ARB, 0 /* WGLExt.WGL_CONTEXT_DEBUG_BIT_ARB */,
+ /* 6 */ 0, 0,
+ /* 8 */ 0
};
if(glCaps.getGLProfile().isGL3()) {
- attribs[1] |= 3;
- attribs[3] |= 1;
- // attribs[5] |= WGLExt.WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB ; // NVidia WGL driver doesn't support this one ..
- // attribs[5] |= WGLExt.WGL_CONTEXT_DEBUG_BIT_ARB ;
+ if(tryGLContext3_2) {
+ // Try >= 3.2 core first !
+ // and verify with a None drawable binding (default framebuffer)
+ attribs[0+1] = 3;
+ attribs[2+1] = 2;
+ attribs[6+0] = WGLExt.WGL_CONTEXT_PROFILE_MASK_ARB;
+ attribs[6+1] = WGLExt.WGL_CONTEXT_CORE_PROFILE_BIT_ARB;
+ hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
+ if(0!=hglrc) {
+ if (!WGL.wglMakeCurrent(0, hglrc)) {
+ if(DEBUG) {
+ System.err.println("WindowsWGLContext.createContext couldn't make >= 3.2 core context current - fallback");
+ }
+ WGL.wglMakeCurrent(0, 0);
+ WGL.wglDeleteContext(hglrc);
+ hglrc = 0;
+ } else if(DEBUG) {
+ System.err.println("WindowsWGLContext.createContext >= 3.2 available 0x"+Long.toHexString(hglrc));
+ }
+ }
+ }
+ if(0==hglrc) {
+ if(tryGLContext3_2 && DEBUG) {
+ System.err.println("WindowsWGLContext.createContext couldn't create >= 3.2 core context");
+ }
+ // Try >= 3.1 forward compatible - last resort for GL3 !
+ attribs[0+1] = 3;
+ attribs[2+1] = 1;
+ attribs[4+1] |= WGLExt.WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
+ attribs[6+0] = 0;
+ attribs[6+1] = 0;
+ }
+ }
+ if(0==hglrc) {
+ // 3.1 or 3.0 ..
+ hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
}
- hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
if(0==hglrc) {
if(glCaps.getGLProfile().isGL3()) {
- if (!WGL.wglMakeCurrent(0, 0)) {
- throw new GLException("Error freeing temp OpenGL context: " + WGL.GetLastError());
- }
- if (!WGL.wglDeleteContext(temp_hglrc)) {
- throw new GLException("Unable to delete OpenGL context");
- }
- throw new GLException("Unable to create OpenGL 3.1 context (have WGL_ARB_create_context)");
+ WGL.wglMakeCurrent(0, 0);
+ WGL.wglDeleteContext(temp_hglrc);
+ throw new GLException("Unable to create OpenGL >= 3.1 context (have WGL_ARB_create_context)");
}
// continue with temp context for GL < 3.0
hglrc = temp_hglrc;
+ if (!WGL.wglMakeCurrent(drawable.getNativeWindow().getSurfaceHandle(), hglrc)) {
+ throw new GLException("Error making old context current: " + WGL.GetLastError());
+ }
if(DEBUG) {
System.err.println("WindowsWGLContext.create done (old ctx < 3.0 - no 3.0) 0x"+Long.toHexString(hglrc));
}
} else {
hglrc2 = 0; // mark as shared ..
- if (!WGL.wglMakeCurrent(0, 0)) {
- throw new GLException("Error freeing temp OpenGL context: " + WGL.GetLastError());
- }
- if (!WGL.wglDeleteContext(temp_hglrc)) {
- throw new GLException("Unable to delete temp OpenGL context");
- }
+ WGL.wglMakeCurrent(0, 0);
+ WGL.wglDeleteContext(temp_hglrc);
if (!WGL.wglMakeCurrent(drawable.getNativeWindow().getSurfaceHandle(), hglrc)) {
throw new GLException("Error making new context current: " + WGL.GetLastError());
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
index da1548d0d..6513fbe29 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
@@ -142,7 +142,7 @@ public abstract class X11GLXContext extends GLContextImpl {
if(config.getFBConfigID()<0) {
// not able to use FBConfig
if(glCaps.getGLProfile().isGL3()) {
- throw new GLException("Unable to create OpenGL 3.1 context");
+ throw new GLException("Unable to create OpenGL >= 3.1 context");
}
context = GLX.glXCreateContext(display, config.getXVisualInfo(), share, direct);
if (context == 0) {
@@ -178,11 +178,9 @@ public abstract class X11GLXContext extends GLContextImpl {
if( !isFunctionAvailable("glXCreateContextAttribsARB") ||
!isExtensionAvailable("GLX_ARB_create_context") ) {
if(glCaps.getGLProfile().isGL3()) {
- if (!GLX.glXMakeContextCurrent(display, 0, 0, 0)) {
- throw new GLException("Error freeing temp OpenGL context");
- }
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
GLX.glXDestroyContext(display, temp_context);
- throw new GLException("Unable to create OpenGL 3.1 context (no GLX_ARB_create_context)");
+ throw new GLException("Unable to create OpenGL >= 3.1 context (no GLX_ARB_create_context)");
}
// continue with temp context for GL < 3.0
@@ -195,38 +193,74 @@ public abstract class X11GLXContext extends GLContextImpl {
// preset with default values
int attribs[] = {
- GLX.GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
- GLX.GLX_CONTEXT_MINOR_VERSION_ARB, 0,
- GLX.GLX_CONTEXT_FLAGS_ARB, 0,
- GLX.GLX_RENDER_TYPE, GLX.GLX_RGBA_TYPE,
- 0
+ /* 0 */ GLX.GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
+ /* 2 */ GLX.GLX_CONTEXT_MINOR_VERSION_ARB, 0,
+ /* 4 */ GLX.GLX_RENDER_TYPE, GLX.GLX_RGBA_TYPE,
+ /* 6 */ GLX.GLX_CONTEXT_FLAGS_ARB, 0 /* GLX.GLX_CONTEXT_DEBUG_BIT_ARB */,
+ /* 8 */ 0, 0,
+ /* 10 */ 0
};
if(glCaps.getGLProfile().isGL3()) {
- attribs[1] |= 3;
- attribs[3] |= 1;
- attribs[5] |= GLX.GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB /* | GLX.GLX_CONTEXT_DEBUG_BIT_ARB */;
+ if(tryGLContext3_2) {
+ // Try >= 3.2 core first
+ // and verify with a None drawable binding (default framebuffer)
+ attribs[0+1] = 3;
+ attribs[2+1] = 2;
+ attribs[8+0] = GLX.GLX_CONTEXT_PROFILE_MASK_ARB;
+ attribs[8+1] = GLX.GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
+
+ context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
+ if(0!=context) {
+ if (!GLX.glXMakeContextCurrent(display, 0, 0, context)) {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't make >= 3.2 core context current - fallback");
+ }
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, context);
+ context = 0;
+ } else if(DEBUG) {
+ System.err.println("X11GLXContext.createContext >= 3.2 available 0x"+Long.toHexString(context));
+ }
+ }
+ }
+ if(0==context) {
+ if(tryGLContext3_2 && DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't create >= 3.2 core context - fallback");
+ }
+ // Try >= 3.1 forward compatible - last resort for GL3 !
+ attribs[0+1] = 3;
+ attribs[2+1] = 1;
+ attribs[6+1] |= GLX.GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
+ attribs[8+0] = 0;
+ attribs[8+1] = 0;
+ }
+ }
+ if(0==context) {
+ // 3.1 or 3.0 ..
+ context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
}
- context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
if(0==context) {
if(glCaps.getGLProfile().isGL3()) {
- if (!GLX.glXMakeContextCurrent(display, 0, 0, 0)) {
- throw new GLException("Error freeing temp OpenGL context");
- }
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
GLX.glXDestroyContext(display, temp_context);
- throw new GLException("Unable to create OpenGL 3.1 context (have GLX_ARB_create_context)");
+ throw new GLException("Unable to create OpenGL >= 3.1 context (have GLX_ARB_create_context)");
}
// continue with temp context for GL < 3.0
context = temp_context;
+ if (!GLX.glXMakeContextCurrent(display,
+ drawable.getNativeWindow().getSurfaceHandle(),
+ drawable.getNativeWindow().getSurfaceHandle(),
+ context)) {
+ throw new GLException("Error making context (old) current: display 0x"+Long.toHexString(display)+", context 0x"+Long.toHexString(context)+", drawable "+drawable);
+ }
if(DEBUG) {
System.err.println("X11GLXContext.createContext done (old ctx < 3.0 - no 3.0) 0x"+Long.toHexString(context));
}
} else {
- if (!GLX.glXMakeContextCurrent(display, 0, 0, 0)) {
- throw new GLException("Error freeing temp OpenGL context");
- }
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
GLX.glXDestroyContext(display, temp_context);
// need to update the GL func table ..
--
cgit v1.2.3
From 0e998e8416b38b084b517c299061856b7ff963d7 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Wed, 5 Aug 2009 11:55:14 -0700
Subject: Update GlueGen to 7dc9c5601d5689dcbc003ca51cfe826942ea3e6b (latest) -
Fixes for OpenGL 3.2 - More strict define/function checking - Better
documentation in source code: extension relation - GL extension marker
exclusion is done by GlueGen now - Adapted gluegen cfg files
Added OpenGL 3.2 extensions for GL3
Revalidation of all OpenGL 2.0/3.0/3.1 and 3.2 extensions
GL2GL3 based on OpenGL 2.0/3.0 headers
EGL shares common egl-common.cfg file
Removed experimental java system property 'jogl.GLContext.3_2',
try a 3.2 context in case of GL3.
X11GLXContext:
- Always try to make a created context current,
to verify it's usability. This is different than under WGL.
- Temporary removed usage: GLX.GLX_CONTEXT_PROFILE_MASK_ARB
NV driver bug.
---
make/build-jogl.xml | 6 +-
make/config/jogl/cgl-macosx.cfg | 4 +-
make/config/jogl/cglext.cfg | 4 +-
make/config/jogl/egl-common.cfg | 46 +++
make/config/jogl/egl.cfg | 22 +-
make/config/jogl/eglext.cfg | 82 +-----
make/config/jogl/gl-common-extensions.cfg | 10 +-
make/config/jogl/gl-common-gl2.cfg | 8 -
make/config/jogl/gl-common.cfg | 101 +++----
make/config/jogl/gl-desktop.cfg | 3 +
make/config/jogl/gl-gl2-set.cfg | 13 -
make/config/jogl/gl-gl2.cfg | 2 +-
make/config/jogl/gl-gl2es12.cfg | 2 +-
make/config/jogl/gl-gl3-set.cfg | 14 +
make/config/jogl/gl-gl3.cfg | 14 +-
make/config/jogl/gl-if-CustomJavaCode-gl2.java | 21 --
make/config/jogl/gl-if-CustomJavaCode-gl3.java | 8 +
make/config/jogl/gl-if-gl2_gl3.cfg | 20 +-
make/config/jogl/gl-impl-CustomJavaCode-gles1.java | 2 +-
make/config/jogl/gl-impl-CustomJavaCode-gles2.java | 2 +-
make/config/jogl/gl3-common.cfg | 24 ++
make/config/jogl/gl3-desktop.cfg | 1 -
make/config/jogl/glu-common.cfg | 2 +
make/config/jogl/glx-x11.cfg | 5 +-
make/config/jogl/glxext.cfg | 5 +-
make/config/jogl/wgl-win32.cfg | 7 +-
make/config/jogl/wglext.cfg | 7 +-
make/stub_includes/egl/EGL/egl.h | 7 +
make/stub_includes/egl/EGL/eglext.h | 58 ++--
make/stub_includes/opengl/GL/glext.h | 74 ++---
make/stub_includes/opengl/GL/glu.h | 19 +-
make/stub_includes/opengl/GL/glx.h | 10 +-
make/stub_includes/opengl/GL/glxext.h | 11 +-
make/stub_includes/opengl/GL3/gl3.h | 4 +-
make/stub_includes/opengl/GL3/gl3ext.h | 309 ++++++++++++++++++++-
make/stub_includes/opengl/GLES/gl.h | 10 +
make/stub_includes/opengl/GLES/glext.h | 2 -
make/stub_includes/opengl/GLES2/gl2.h | 8 +-
make/stub_includes/opengl/GLES2/gl2ext.h | 11 +-
make/stub_includes/opengl/gl2es12.c | 5 -
make/stub_includes/opengl/gl3-64bit-types.h | 41 +++
make/stub_includes/opengl/glu-impl.c | 3 -
make/stub_includes/win32/wingdi.h | 9 +
.../classes/com/sun/opengl/impl/GLContextImpl.java | 1 -
.../impl/macosx/cgl/MacOSXPbufferCGLContext.java | 2 +-
.../impl/macosx/cgl/MacOSXPbufferCGLDrawable.java | 2 +-
.../opengl/impl/windows/wgl/WindowsWGLContext.java | 12 +-
.../com/sun/opengl/impl/x11/glx/X11GLXContext.java | 69 +++--
48 files changed, 748 insertions(+), 354 deletions(-)
create mode 100644 make/config/jogl/egl-common.cfg
delete mode 100644 make/config/jogl/gl-common-gl2.cfg
delete mode 100644 make/config/jogl/gl-gl2-set.cfg
create mode 100644 make/config/jogl/gl-gl3-set.cfg
create mode 100644 make/config/jogl/gl-if-CustomJavaCode-gl3.java
create mode 100644 make/config/jogl/gl3-common.cfg
create mode 100644 make/stub_includes/opengl/gl3-64bit-types.h
delete mode 100644 make/stub_includes/opengl/glu-impl.c
(limited to 'make')
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index e5bb1ab38..846779fed 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -640,14 +640,14 @@
-
-
Include ../intptr.cfg
diff --git a/make/config/jogl/eglext.cfg b/make/config/jogl/eglext.cfg
index 857eb5804..fedff35e9 100755
--- a/make/config/jogl/eglext.cfg
+++ b/make/config/jogl/eglext.cfg
@@ -9,54 +9,17 @@ JavaClass EGLExt
ImplPackage com.sun.opengl.impl.egl
ImplJavaClass EGLExtImpl
# Shouldn't matter which one of these we pick up
+Include egl-common.cfg
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
@@ -66,9 +29,14 @@ CustomCCode #include
Include ../intptr.cfg
# There are some #defines in eglext.h that GlueGen and PCPP don't currently handle
+CustomJavaCode EGLExt /** Part of EGL_KHR_image
*/
CustomJavaCode EGLExt public static final long EGL_NO_IMAGE = 0;
+CustomJavaCode EGLExt /** Part of EGL_NV_perfmon
*/
CustomJavaCode EGLExt public static final long EGL_NO_PERFMONITOR = 0;
+CustomJavaCode EGLExt /** Part of EGL_NV_perfmon
*/
CustomJavaCode EGLExt public static final long EGL_DEFAULT_PERFMARKER = 0;
+CustomJavaCode EGLExt /** Part of EGL_KHR_sync
*/
+CustomJavaCode EGLExt public static final long EGL_FOREVER_KHR = 0xFFFFFFFFFFFFFFFFL ;
CustomJavaCode EGLExt public boolean isFunctionAvailable(String glFunctionName);
CustomJavaCode EGLExt public boolean isExtensionAvailable(String glExtensionName);
@@ -88,39 +56,3 @@ 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
diff --git a/make/config/jogl/gl-common-extensions.cfg b/make/config/jogl/gl-common-extensions.cfg
index fb46e43ca..e28ff43c8 100644
--- a/make/config/jogl/gl-common-extensions.cfg
+++ b/make/config/jogl/gl-common-extensions.cfg
@@ -1,8 +1,8 @@
-# Note: we keep the Apple, ATI and NVidia extensions since they are generally
+# Note: we keep the Apple, AMD/ATI and NVidia extensions since they are generally
# the most useful and up-to-date
DropUniqVendorExtensions 3DFX
-DropUniqVendorExtensions AMD
+# DropUniqVendorExtensions AMD
# DropUniqVendorExtensions APPLE
# DropUniqVendorExtensions ATI
DropUniqVendorExtensions HP
@@ -51,11 +51,6 @@ IgnoreExtension GL_NV_present_video
IgnoreExtension GL_NV_coverage_sample
IgnoreExtension GL_NV_framebuffer_vertex_attrib_array
-# Remove extension suffixes from extensions which are common
-RenameExtensionIntoCore GL_ARB_framebuffer_object
-IgnoreExtension GL_EXT_framebuffer_object
-RenameExtensionIntoCore GL_OES_framebuffer_object
-
# Remove extension suffixes from extensions which are common between OpenGL and OpenGL ES
RenameExtensionIntoCore GL_ARB_half_float_pixel
RenameExtensionIntoCore GL_ARB_point_sprite
@@ -65,6 +60,7 @@ RenameExtensionIntoCore GL_OES_blend_subtract
RenameExtensionIntoCore GL_OES_compressed_paletted_texture
RenameExtensionIntoCore GL_OES_depth24
RenameExtensionIntoCore GL_OES_depth32
+RenameExtensionIntoCore GL_OES_framebuffer_object
RenameExtensionIntoCore GL_OES_mapbuffer
RenameExtensionIntoCore GL_OES_point_sprite
RenameExtensionIntoCore GL_OES_rgb8_rgba8
diff --git a/make/config/jogl/gl-common-gl2.cfg b/make/config/jogl/gl-common-gl2.cfg
deleted file mode 100644
index 4d86d74cd..000000000
--- a/make/config/jogl/gl-common-gl2.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-# This .cfg file provides common options used among all GL glue code
-# generated for Jogl on Windows.
-
-HierarchicalNativeOutput false
-Include gl-common.cfg
-
-# XID needs to be treated as a long for 32/64 bit compatibility
-Opaque long XID
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
index efa4c7bdd..4d3a05d63 100644
--- a/make/config/jogl/gl-common.cfg
+++ b/make/config/jogl/gl-common.cfg
@@ -1,6 +1,8 @@
# This .cfg file provides common options used among all glue code
# generated for Jogl on all platforms.
+HierarchicalNativeOutput false
+
# Raise GLException instead of RuntimeException in glue code
RuntimeExceptionType GLException
UnsupportedExceptionType GLException
@@ -38,7 +40,6 @@ Ignore glTracePointerRangeMESA
# Manually implement glMapBuffer as the size of the returned buffer
# can only be computed by calling another routine
ManuallyImplement glMapBuffer
-ManuallyImplement glMapBufferOES
# Ignore the ATI_map_object_buffer extension for now unless someone
# claims they need it, as it will undoubtedly require a similar
@@ -49,36 +50,6 @@ Ignore glUnmapObjectBufferATI
# Ignore some GL functions that have outgoing void** parameters; we cannot yet deal with them
Ignore glGetVariantPointervEXT
-# Don't output #defines of GL name strings as constants, because we
-# don't need them java-side.
-# Format of name strings is found at:
-# http://oss.sgi.com/projects/ogl-sample/registry/doc/template.txt
-
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_EXT_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_ARB_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_OES_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_PGI_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGI_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGIS_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGIX_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_MESA_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_HP_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_ATI_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_NV_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_IBM_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_WIN_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_REND_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_APPLE_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_INTEL_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_INGR_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SUN_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SUNX_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_3DFX_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_OML_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_I3D_.+
-Ignore (GL|GLU|GLX|WGL|AGL|CGL)_S3_.+
-Ignore GL_KTX_buffer_region
-
# FIXME: these extensions require either a handle to a device context
# or take void** parameters or both. Until we think through the
# semantics of each of these individually we need to disable them.
@@ -234,47 +205,79 @@ IgnoreExtension GL_EXT_texture_sRGB
# <<< OpenGL 2.1
# >>> OpenGL 3.0
-# Ignore extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N)
-IgnoreExtension GL_EXT_gpu_shader4
+# Ignore/Rename extensions subsumed in OpenGL 3.0 (from OpenGL 3.0 spec, Appendix N)
+RenameExtensionIntoCore GL_EXT_gpu_shader4
-IgnoreExtension GL_NV_conditional_render
+RenameExtensionIntoCore GL_NV_conditional_render
-#Not promoted in header files: GL_APPLE_flush_buffer_range
+RenameExtensionIntoCore GL_APPLE_flush_buffer_range
-IgnoreExtension GL_ARB_color_buffer_float
-#Not promoted in header files: GL_NV_depth_buffer_float
-IgnoreExtension GL_ARB_texture_float
-IgnoreExtension GL_EXT_packed_float
-IgnoreExtension GL_EXT_texture_shared_exponent
+RenameExtensionIntoCore GL_ARB_color_buffer_float
+# gl.h uses GL_ARB_depth_buffer_float
+RenameExtensionIntoCore GL_ARB_depth_buffer_float
+IgnoreExtension GL_NV_depth_buffer_float
+RenameExtensionIntoCore GL_ARB_texture_float
+RenameExtensionIntoCore GL_EXT_packed_float
+RenameExtensionIntoCore GL_EXT_texture_shared_exponent
+# gl.h uses GL_ARB_framebuffer_object
+# GL_*_geometry_shader4 is included here, due to a naming collision otherwise.
+# glFramebufferTextureLayerARB is ignored due to it's existence in GL_ARB_framebuffer_object and GL_ARB_geometry_shader4
+RenameExtensionIntoCore GL_ARB_framebuffer_object
IgnoreExtension GL_EXT_framebuffer_object
+RenameExtensionIntoCore GL_ARB_geometry_shader4
+IgnoreExtension GL_EXT_geometry_shader4
+Ignore glFramebufferTextureLayerARB
-# GL_NV_half_float, GL_NV_half_float_pixel: these are also not usable for Java ..
-IgnoreExtension GL_NV_half_float
-IgnoreExtension GL_NV_half_float_pixel
+RenameExtensionIntoCore GL_NV_half_float
+RenameExtensionIntoCore GL_ARB_half_float_pixel
-IgnoreExtension GL_EXT_framebuffer_multisample
-IgnoreExtension GL_EXT_framebuffer_blit
+RenameExtensionIntoCore GL_EXT_framebuffer_multisample
+RenameExtensionIntoCore GL_EXT_framebuffer_blit
#Big gap of promoted tokens and functions: GL_EXT_texture_integer
+RenameExtensionIntoCore GL_EXT_texture_integer
-IgnoreExtension GL_EXT_texture_array
+RenameExtensionIntoCore GL_EXT_texture_array
-IgnoreExtension GL_EXT_packed_depth_stencil
+RenameExtensionIntoCore GL_EXT_packed_depth_stencil
-#Not promoted in header files: GL_EXT_draw_buffers2
+RenameExtensionIntoCore GL_EXT_draw_buffers2
+# gl.h uses GL_ARB_texture_compression_rgtc
+RenameExtensionIntoCore GL_ARB_texture_compression_rgtc
IgnoreExtension GL_EXT_texture_compression_rgtc
-IgnoreExtension GL_EXT_transform_feedback
+RenameExtensionIntoCore GL_EXT_transform_feedback
IgnoreExtension GL_NV_transform_feedback
+# gl.h uses GL_ARB_vertex_array_object
+RenameExtensionIntoCore GL_ARB_vertex_array_object
IgnoreExtension GL_APPLE_vertex_array_object
+# gl.h uses GL_ARB_framebuffer_sRGB
+RenameExtensionIntoCore GL_ARB_framebuffer_sRGB
IgnoreExtension GL_EXT_framebuffer_sRGB
+RenameExtensionIntoCore GL_ARB_map_buffer_range
+
# <<< OpenGL 3.0
+# >>> OpenGL 3.1
+# Rename extension suffices (if exist) subsumed in OpenGL 3.1 (from OpenGL 3.1 spec, Appendix G.1)
+# We alias 3.1 subsumed extension even for GL2, due to the convenience of the common GL2GL3 profile!
+RenameExtensionIntoCore GL_ARB_draw_instanced
+IgnoreExtension GL_EXT_draw_instanced
+RenameExtensionIntoCore GL_ARB_copy_buffer
+RenameExtensionIntoCore GL_NV_primitive_restart
+RenameExtensionIntoCore GL_ARB_texture_buffer_object
+IgnoreExtension GL_EXT_texture_buffer_object
+# Actually GL_ARB_texture_rectangle, but let's be convenient
+RenameExtensionIntoCore GL_EXT_texture_rectangle
+IgnoreExtension GL_NV_texture_rectangle
+RenameExtensionIntoCore GL_ARB_uniform_buffer_object
+# <<< OpenGL 3.1
+
# Ignore a few obsolete versions of extensions that have been subsumed into the core or ARB extensions
diff --git a/make/config/jogl/gl-desktop.cfg b/make/config/jogl/gl-desktop.cfg
index d6a610c59..7e500a4f0 100755
--- a/make/config/jogl/gl-desktop.cfg
+++ b/make/config/jogl/gl-desktop.cfg
@@ -26,6 +26,9 @@ Opaque boolean BOOL
Opaque long PROC
Opaque long void **
+# XID needs to be treated as a long for 32/64 bit compatibility
+Opaque long XID
+
#
# Directives needed when processing cglext.h on MacOSX and other platforms
#
diff --git a/make/config/jogl/gl-gl2-set.cfg b/make/config/jogl/gl-gl2-set.cfg
deleted file mode 100644
index bce9cc731..000000000
--- a/make/config/jogl/gl-gl2-set.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-# This .cfg file is used to generate the GL interface and implementing class.
-JavaOutputDir ../../build-temp/gluegen-set
-
-Package javax.media.opengl
-Style InterfaceOnly
-JavaClass GL2Set
-Include gl-common-gl2.cfg
-Include gl-common-extensions.cfg
-Include gl-desktop.cfg
-
-EmitProcAddressTable false
-ProcAddressTableClassName DontGenerateProcAddressTableStuff
-GetProcAddressTableExpr DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-gl2.cfg b/make/config/jogl/gl-gl2.cfg
index 7b689093a..50574598a 100644
--- a/make/config/jogl/gl-gl2.cfg
+++ b/make/config/jogl/gl-gl2.cfg
@@ -26,7 +26,7 @@ Implements GL2Impl GL
Implements GL2Impl GL2ES1
Implements GL2Impl GL2ES2
Implements GL2Impl GL2GL3
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg
index 36bab82ed..9e36da2ea 100644
--- a/make/config/jogl/gl-gl2es12.cfg
+++ b/make/config/jogl/gl-gl2es12.cfg
@@ -18,7 +18,7 @@ Implements GL2ES12Impl GL
Implements GL2ES12Impl GL2ES1
Implements GL2ES12Impl GL2ES2
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
diff --git a/make/config/jogl/gl-gl3-set.cfg b/make/config/jogl/gl-gl3-set.cfg
new file mode 100644
index 000000000..ac1edac47
--- /dev/null
+++ b/make/config/jogl/gl-gl3-set.cfg
@@ -0,0 +1,14 @@
+# This .cfg file is used to generate the GL interface and implementing class.
+JavaOutputDir ../../build-temp/gluegen-set
+
+Package javax.media.opengl
+Style InterfaceOnly
+JavaClass GL3Set
+Include gl-common.cfg
+Include gl-common-extensions.cfg
+Include gl3-common.cfg
+Include gl3-desktop.cfg
+
+EmitProcAddressTable false
+ProcAddressTableClassName DontGenerateProcAddressTableStuff
+GetProcAddressTableExpr DontGenerateProcAddressTableStuff
diff --git a/make/config/jogl/gl-gl3.cfg b/make/config/jogl/gl-gl3.cfg
index c5354cba4..576cd7cad 100644
--- a/make/config/jogl/gl-gl3.cfg
+++ b/make/config/jogl/gl-gl3.cfg
@@ -20,14 +20,26 @@ Implements GL3Impl GLBase
Implements GL3Impl GL
Implements GL3Impl GL2ES2
Implements GL3Impl GL2GL3
-Include gl-common-gl2.cfg
+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
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl2.java b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
index fe6388cbe..4d1d0e048 100644
--- a/make/config/jogl/gl-if-CustomJavaCode-gl2.java
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl2.java
@@ -10,30 +10,9 @@ public static final int GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8;
/** Missed in the GL_EXT_gpu_shader4 promotion to 3.0 core */
public static final int GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD;
-/** Missed in the GL_ARB_color_buffer_float promotion to 3.0 core */
-public static final int GL_RGBA_FLOAT_MODE_ARB = 0x8820;
-
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_ALPHA32F_ARB = 0x8816;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_INTENSITY32F_ARB = 0x8817;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_LUMINANCE32F_ARB = 0x8818;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_ALPHA16F_ARB = 0x881C;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_INTENSITY16F_ARB = 0x881D;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_LUMINANCE16F_ARB = 0x881E;
-/** Missed in the GL_ARB_texture_float promotion to 3.0 core */
-public static final int GL_LUMINANCE_ALPHA16F_ARB = 0x881F;
-
/** Missed in the GL_EXT_packed_float promotion to 3.0 core */
public static final int GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C;
-/** Missed in the GL_EXT_texture_array promotion to 3.0 core */
-public static final int GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E;
-
/** Missed in the GL_EXT_framebuffer_sRGB promotion to 3.0 core */
public static final int GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA;
diff --git a/make/config/jogl/gl-if-CustomJavaCode-gl3.java b/make/config/jogl/gl-if-CustomJavaCode-gl3.java
new file mode 100644
index 000000000..1777c1557
--- /dev/null
+++ b/make/config/jogl/gl-if-CustomJavaCode-gl3.java
@@ -0,0 +1,8 @@
+
+/** Part of GL_ARB_uniform_buffer_object
*/
+public static final int GL_INVALID_INDEX = 0xFFFFFFFF ;
+
+/** Part of GL_ARB_sync
*/
+public static final long GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFL ;
+
+
diff --git a/make/config/jogl/gl-if-gl2_gl3.cfg b/make/config/jogl/gl-if-gl2_gl3.cfg
index 0afe5d5b5..7f6903dd6 100644
--- a/make/config/jogl/gl-if-gl2_gl3.cfg
+++ b/make/config/jogl/gl-if-gl2_gl3.cfg
@@ -10,18 +10,18 @@ ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/G
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java
ExtendedInterfaceSymbolsIgnore ../src/jogl/classes/javax/media/opengl/GLBase.java
-ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL2Set.java
+ExtendedInterfaceSymbolsOnly ../build-temp/gluegen-set/javax/media/opengl/GL3Set.java
HierarchicalNativeOutput false
Include gl-common.cfg
Include gl-common-extensions.cfg
+Include gl-desktop.cfg
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl
#
# Same name but different signature ..
-#
# No collisions found .. good!
EmitProcAddressTable false
@@ -30,10 +30,22 @@ GetProcAddressTableExpr DontGenerateProcAddressTableStuff
# Inform the glue code generator of the association between #defines
# and functions and the extensions in which they are defined
-GLHeader GL3/gl3.h
-GLHeader GL3/gl3ext.h
+GLHeader GL/gl.h
+GLHeader GL/glext.h
+
+# 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
+# Ignore extensions that are already picked up via the GL2ES1 interface
+IgnoreExtension GL_EXT_point_parameters
+
Import java.io.PrintStream
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
index 65236676a..c5831f426 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles1.java
@@ -292,7 +292,7 @@ private Map/**/ arbVBOCache = new HashMap();
/** Entry point to C language function:
LPVOID glMapBuffer(GLenum target, GLenum access);
*/
public java.nio.ByteBuffer glMapBuffer(int target, int access) {
- final long __addr_ = ((GLES1ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBufferOES;
+ final long __addr_ = ((GLES1ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBuffer;
if (__addr_ == 0) {
throw new GLException("Method \"glMapBuffer\" not available");
}
diff --git a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
index 2f69905a9..7e9b786b0 100755
--- a/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
+++ b/make/config/jogl/gl-impl-CustomJavaCode-gles2.java
@@ -302,7 +302,7 @@ private Map/**/ arbVBOCache = new HashMap();
/** Entry point to C language function:
LPVOID glMapBuffer(GLenum target, GLenum access);
*/
public java.nio.ByteBuffer glMapBuffer(int target, int access) {
- final long __addr_ = ((GLES2ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBufferOES;
+ final long __addr_ = ((GLES2ProcAddressTable)_context.getGLProcAddressTable())._addressof_glMapBuffer;
if (__addr_ == 0) {
throw new GLException("Method \"glMapBuffer\" not available");
}
diff --git a/make/config/jogl/gl3-common.cfg b/make/config/jogl/gl3-common.cfg
new file mode 100644
index 000000000..fac8323bb
--- /dev/null
+++ b/make/config/jogl/gl3-common.cfg
@@ -0,0 +1,24 @@
+
+# >>> OpenGL 3.1
+# See gl-common.cfg !
+# <<< OpenGL 3.1
+
+# >>> OpenGL 3.2
+# Rename extension suffices (if exist) subsumed in OpenGL 3.2 (from OpenGL 3.2 spec, Appendix H.1)
+RenameExtensionIntoCore GL_ARB_vertex_array_bgra
+RenameExtensionIntoCore GL_ARB_draw_elements_base_vertex
+RenameExtensionIntoCore GL_ARB_fragment_coord_conventions
+RenameExtensionIntoCore GL_ARB_provoking_vertex
+RenameExtensionIntoCore GL_ARB_seamless_cube_map
+RenameExtensionIntoCore GL_ARB_texture_multisample
+RenameExtensionIntoCore GL_ARB_depth_clamp
+RenameExtensionIntoCore GL_ARB_geometry_shader4
+RenameExtensionIntoCore GL_ARB_sync
+# <<< OpenGL 3.2
+
+# Ignore GL functions that deal with explicit pointer values in such a
+# way that we cannot implement the functionality in Java
+Ignore glMultiDrawElementsBaseVertex
+
+Opaque long GLsync
+
diff --git a/make/config/jogl/gl3-desktop.cfg b/make/config/jogl/gl3-desktop.cfg
index 2d34ade30..c3dd180bb 100755
--- a/make/config/jogl/gl3-desktop.cfg
+++ b/make/config/jogl/gl3-desktop.cfg
@@ -8,7 +8,6 @@ GLHeader GL3/gl3ext.h
#Include gl-desktop-tracker.cfg
-
#
# Directives needed when processing wglext.h on Windows and other platforms
#
diff --git a/make/config/jogl/glu-common.cfg b/make/config/jogl/glu-common.cfg
index 3b5a1160a..df59175bb 100644
--- a/make/config/jogl/glu-common.cfg
+++ b/make/config/jogl/glu-common.cfg
@@ -1,3 +1,5 @@
+GLHeader GL/glu.h
+
# This .cfg file provides common options used among all GLU glue code
HierarchicalNativeOutput false
diff --git a/make/config/jogl/glx-x11.cfg b/make/config/jogl/glx-x11.cfg
index 3ef151c44..c9079b84f 100644
--- a/make/config/jogl/glx-x11.cfg
+++ b/make/config/jogl/glx-x11.cfg
@@ -6,10 +6,13 @@ NativeOutputDir gensrc/native/jogl/X11
Package com.sun.opengl.impl.x11.glx
JavaClass GLX
Style allstatic
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+GLHeader GL/glx.h
+GLHeader GL/glxext.h
+
EmitProcAddressTable true
ProcAddressTableClassName GLXProcAddressTable
GetProcAddressTableExpr glxProcAddressTable
diff --git a/make/config/jogl/glxext.cfg b/make/config/jogl/glxext.cfg
index ea4b6fe47..39ba379c4 100755
--- a/make/config/jogl/glxext.cfg
+++ b/make/config/jogl/glxext.cfg
@@ -10,9 +10,12 @@ ImplPackage com.sun.opengl.impl.x11.glx
ImplJavaClass GLXExtImpl
ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/sun/opengl/impl/x11/glx/GLX.java
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-desktop.cfg
+GLHeader GL/glx.h
+GLHeader GL/glxext.h
+
EmitProcAddressTable true
ProcAddressTableClassName GLXExtProcAddressTable
GetProcAddressTableExpr _context.getGLXExtProcAddressTable()
diff --git a/make/config/jogl/wgl-win32.cfg b/make/config/jogl/wgl-win32.cfg
index f86f1adcc..6cd4fd412 100644
--- a/make/config/jogl/wgl-win32.cfg
+++ b/make/config/jogl/wgl-win32.cfg
@@ -6,10 +6,15 @@ NativeOutputDir gensrc/native/jogl/Windows
Package com.sun.opengl.impl.windows.wgl
JavaClass WGL
Style allstatic
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg
+AllowNonGLExtensions true
+
+GLHeader wingdi.h
+GLHeader GL/wglext.h
+
# Implement the first argument to wglGetProcAddress as String instead
# of byte[]
ArgumentIsString wglGetProcAddress 0
diff --git a/make/config/jogl/wglext.cfg b/make/config/jogl/wglext.cfg
index af4430bbe..ea9a0257e 100644
--- a/make/config/jogl/wglext.cfg
+++ b/make/config/jogl/wglext.cfg
@@ -8,9 +8,14 @@ Style InterfaceAndImpl
JavaClass WGLExt
ImplPackage com.sun.opengl.impl.windows.wgl
ImplJavaClass WGLExtImpl
-Include gl-common-gl2.cfg
+Include gl-common.cfg
Include gl-desktop.cfg
+AllowNonGLExtensions true
+
+GLHeader wingdi.h
+GLHeader GL/wglext.h
+
EmitProcAddressTable true
ProcAddressTableClassName WGLExtProcAddressTable
GetProcAddressTableExpr _context.getWGLExtProcAddressTable()
diff --git a/make/stub_includes/egl/EGL/egl.h b/make/stub_includes/egl/EGL/egl.h
index 86ca4818f..fc6cc4c87 100755
--- a/make/stub_includes/egl/EGL/egl.h
+++ b/make/stub_includes/egl/EGL/egl.h
@@ -39,6 +39,8 @@ typedef void *EGLClientBuffer;
#define EGL_VERSION_1_3 1
#define EGL_VERSION_1_4 1
+#ifndef EGL_VERSION_1_X
+
/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
* enums are assigned unique values starting at 0x3000.
*/
@@ -226,7 +228,10 @@ typedef void *EGLClientBuffer;
* a bug in Khronos Bugzilla against task "Registry".
*/
+#endif /* EGL_VERSION_1_X */
+#ifndef EGL_VERSION_1_X
+#define EGL_VERSION_1_X 1
/* EGL Functions */
@@ -300,6 +305,8 @@ EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
typedef void (* EGLAPIENTRY __EGLFuncPtr)(void);
EGLAPI __EGLFuncPtr eglGetProcAddress(const char *procname);
+#endif /* EGL_VERSION_1_X */
+
#ifdef __cplusplus
}
#endif
diff --git a/make/stub_includes/egl/EGL/eglext.h b/make/stub_includes/egl/EGL/eglext.h
index 5afa60118..7d7347e71 100755
--- a/make/stub_includes/egl/EGL/eglext.h
+++ b/make/stub_includes/egl/EGL/eglext.h
@@ -90,7 +90,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display
#define EGL_KHR_image 1
#define EGL_NATIVE_PIXMAP_KHR 0x30B0 /* eglCreateImageKHR target */
typedef void *EGLImageKHR;
-#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0)
+/* Manual: #define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) */
#ifdef EGL_EGLEXT_PROTOTYPES
EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, EGLint *attr_list);
EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
@@ -160,8 +160,8 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGL
#define EGL_RAW_VALUE_NV 0x1239
#define EGL_PERCENTAGE_VALUE_NV 0x1240
#define EGL_BAD_CURRENT_PERFMONITOR_NV 0x1241
-#define EGL_NO_PERFMONITOR_NV ((EGLPerfMonitorNV)0)
-#define EGL_DEFAULT_PERFMARKER_NV ((EGLPerfMarkerNV)0)
+/* Manual: #define EGL_NO_PERFMONITOR_NV ((EGLPerfMonitorNV)0) */
+/* Manual: #define EGL_DEFAULT_PERFMARKER_NV ((EGLPerfMarkerNV)0) */
typedef void *EGLPerfMonitorNV;
typedef void *EGLPerfMarkerNV;
#ifdef USE_GLUEGEN
@@ -272,31 +272,10 @@ EGLAPI EGLBoolean EGLAPIENTRY eglNvmaOutputSurfacePbufferUnlock(EGLDisplay displ
#endif
-/* EGL_KHR_sync
+/**
+ * EGL_KHR_sync
*/
#ifndef EGL_KHR_sync
-#define EGL_KHR_sync 1
-typedef void* EGLSyncKHR;
-typedef void* NativeSyncKHR;
-typedef uint64_t EGLTimeKHR;
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLSyncKHR eglCreateFenceSyncKHR( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
-NativeSyncKHR eglCreateNativeSyncKHR( EGLSyncKHR sync );
-EGLBoolean eglDestroySyncKHR( EGLSyncKHR sync );
-EGLBoolean eglFenceKHR( EGLSyncKHR sync );
-EGLint eglClientWaitSyncKHR( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
-EGLBoolean eglSignalSyncKHR( EGLSyncKHR sync, EGLenum mode );
-EGLBoolean eglGetSyncAttribKHR( EGLSyncKHR sync, EGLint attribute, EGLint *value );
-#else
-typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATEFENCESYNCKHRPROC)( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
-typedef NativeSyncKHR (EGLAPIENTRYP PFNEGLCREATENATIVESYNCKHRPROC)( EGLSyncKHR sync );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC)( EGLSyncKHR sync );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCEKHRPROC)( EGLSyncKHR sync );
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC)( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC)( EGLSyncKHR sync, EGLenum mode );
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, EGLint attribute, EGLint *value );
-#endif
-
/* !!!!! TODO: Get correct values for these defines !!!!
Do not rely on these values...THEY WILL CHANGE!
And it WILL BREAK binary compatibility when they do! */
@@ -306,7 +285,7 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, E
#define EGL_SIGNALED_KHR 0x3103
#define EGL_UNSIGNALED_KHR 0x3104
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
-#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
+/* Manual: #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull */
#define EGL_ALREADY_SIGNALED_KHR 0x3105
#define EGL_TIMEOUT_EXPIRED_KHR 0x3106
#define EGL_CONDITION_SATISFIED_KHR 0x3107
@@ -314,9 +293,32 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, E
#define EGL_SYNC_CONDITION_KHR 0x3109
#define EGL_SYNC_FENCE_KHR 0x310A
#define EGL_NO_SYNC_KHR 0x0000
-#endif
+typedef void* EGLSyncKHR;
+typedef void* NativeSyncKHR;
+typedef uint64_t EGLTimeKHR;
+
+#endif
+#ifndef EGL_KHR_sync
+#define EGL_KHR_sync 1
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLSyncKHR eglCreateFenceSyncKHR( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
+NativeSyncKHR eglCreateNativeSyncKHR( EGLSyncKHR sync );
+EGLBoolean eglDestroySyncKHR( EGLSyncKHR sync );
+EGLBoolean eglFenceKHR( EGLSyncKHR sync );
+EGLint eglClientWaitSyncKHR( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
+EGLBoolean eglSignalSyncKHR( EGLSyncKHR sync, EGLenum mode );
+EGLBoolean eglGetSyncAttribKHR( EGLSyncKHR sync, EGLint attribute, EGLint *value );
+#endif
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATEFENCESYNCKHRPROC)( EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list );
+typedef NativeSyncKHR (EGLAPIENTRYP PFNEGLCREATENATIVESYNCKHRPROC)( EGLSyncKHR sync );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC)( EGLSyncKHR sync );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCEKHRPROC)( EGLSyncKHR sync );
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC)( EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC)( EGLSyncKHR sync, EGLenum mode );
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC)( EGLSyncKHR sync, EGLint attribute, EGLint *value );
+#endif
/* EGL_NV_omx_il_sink
*/
diff --git a/make/stub_includes/opengl/GL/glext.h b/make/stub_includes/opengl/GL/glext.h
index 68bf425cf..b2c23a822 100644
--- a/make/stub_includes/opengl/GL/glext.h
+++ b/make/stub_includes/opengl/GL/glext.h
@@ -1185,6 +1185,13 @@ extern "C" {
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
#endif
+#ifndef GL_EXT_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
+#endif
+
#ifndef GL_ARB_color_buffer_float
#define GL_RGBA_FLOAT_MODE_ARB 0x8820
#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
@@ -3150,16 +3157,6 @@ extern "C" {
#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
#endif
-/* Support for GL_EXT_texture_rectangle on non-nVidia cards */
-#ifndef GL_EXT_texture_rectangle
-#define GL_EXT_texture_rectangle 1
-#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
-#endif /* GL_TEXTURE_RECTANGLE_EXT */
-
-
#ifndef GL_ATI_vertex_streams
#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
#define GL_VERTEX_STREAM0_ATI 0x876C
@@ -3318,6 +3315,23 @@ extern "C" {
#define GL_MODULATE_SUBTRACT_ATI 0x8746
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_HALF_APPLE 0x140B
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
+#endif
+
#ifndef GL_ATI_texture_float
#define GL_RGBA_FLOAT32_ATI 0x8814
#define GL_RGB_FLOAT32_ATI 0x8815
@@ -3792,7 +3806,7 @@ extern "C" {
#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
#endif
-#ifndef NV_parameter_buffer_object
+#ifndef GL_NV_parameter_buffer_object
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
@@ -3810,9 +3824,9 @@ extern "C" {
#endif
#ifndef GL_EXT_texture_compression_rgtc
-#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
-#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
-#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
#endif
@@ -5142,6 +5156,10 @@ typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs)
#define GL_ARB_texture_rectangle 1
#endif
+#ifndef GL_EXT_texture_rectangle
+#define GL_EXT_texture_rectangle 1
+#endif
+
#ifndef GL_ARB_color_buffer_float
#define GL_ARB_color_buffer_float 1
#ifdef GL_GLEXT_PROTOTYPES
@@ -7329,6 +7347,10 @@ typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs)
#define GL_ATI_texture_env_combine3 1
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#endif
+
#ifndef GL_ATI_texture_float
#define GL_ATI_texture_float 1
#endif
@@ -8035,7 +8057,7 @@ GLAPI void APIENTRY glBindBufferRangeEXT (GLenum, GLuint, GLuint, GLintptr, GLsi
GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum, GLuint, GLuint, GLintptr);
GLAPI void APIENTRY glBindBufferBaseEXT (GLenum, GLuint, GLuint);
GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint, GLsizei, const GLchar **, GLenum);
-GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLint *);
+GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
@@ -8043,7 +8065,7 @@ typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint inde
typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
-typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLint *location);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
#endif
#ifndef GL_EXT_direct_state_access
@@ -8436,6 +8458,7 @@ typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenu
/**
* http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
*/
+
#ifndef GL_AMD_vertex_shader_tessellator
#define GL_SAMPLER_BUFFER_AMD 0x9001
#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
@@ -8447,7 +8470,7 @@ typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenu
#endif
#ifndef GL_AMD_vertex_shader_tessellator
-#define GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator 1
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor);
GLAPI void APIENTRY glTessellationModeAMD(GLenum mode);
@@ -8522,23 +8545,6 @@ typedef void (APIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei len
typedef void (APIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params);
#endif
-#ifndef GL_APPLE_float_pixels
-#define GL_HALF_APPLE 0x140B
-#define GL_COLOR_FLOAT_APPLE 0x8A0F
-#define GL_RGBA_FLOAT32_APPLE 0x8814
-#define GL_RGB_FLOAT32_APPLE 0x8815
-#define GL_ALPHA_FLOAT32_APPLE 0x8816
-#define GL_INTENSITY_FLOAT32_APPLE 0x8817
-#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
-#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
-#define GL_RGBA_FLOAT16_APPLE 0x881A
-#define GL_RGB_FLOAT16_APPLE 0x881B
-#define GL_ALPHA_FLOAT16_APPLE 0x881C
-#define GL_INTENSITY_FLOAT16_APPLE 0x881D
-#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
-#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
-#endif
-
#ifndef GL_APPLE_pixel_buffer
#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
#endif
diff --git a/make/stub_includes/opengl/GL/glu.h b/make/stub_includes/opengl/GL/glu.h
index bccda7f8e..e3a16f304 100644
--- a/make/stub_includes/opengl/GL/glu.h
+++ b/make/stub_includes/opengl/GL/glu.h
@@ -62,6 +62,13 @@ extern "C" {
/*************************************************************/
+/* Version */
+#define GLU_VERSION_1_1 1
+#define GLU_VERSION_1_2 1
+#define GLU_VERSION_1_3 1
+
+#ifndef GLU_VERSION_1_X
+
/* Extensions */
#define GLU_EXT_object_space_tess 1
#define GLU_EXT_nurbs_tessellator 1
@@ -70,11 +77,6 @@ extern "C" {
#define GLU_FALSE 0
#define GLU_TRUE 1
-/* Version */
-#define GLU_VERSION_1_1 1
-#define GLU_VERSION_1_2 1
-#define GLU_VERSION_1_3 1
-
/* StringName */
#define GLU_VERSION 100800
#define GLU_EXTENSIONS 100801
@@ -280,6 +282,11 @@ typedef GLUtesselator GLUtriangulatorObj;
/* Internal convenience typedefs */
typedef void (GLAPIENTRY *_GLUfuncptr)();
+#endif /* GLX_VERSION_1_X */
+
+#ifndef GLU_VERSION_1_X
+#define GLU_VERSION_1_X 1
+
GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb);
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb);
@@ -401,6 +408,8 @@ typedef void (GLAPIENTRY * PFNGLUTESSVERTEXPROC) (GLUtesselator* tess, GLdouble
typedef GLint (GLAPIENTRY * PFNGLUUNPROJECTPROC) (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
typedef GLint (GLAPIENTRY * PFNGLUUNPROJECT4PROC) (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
+#endif /* GLU_VERSION_1_X */
+
#ifdef __cplusplus
}
#endif
diff --git a/make/stub_includes/opengl/GL/glx.h b/make/stub_includes/opengl/GL/glx.h
index 4032f45da..67225e043 100644
--- a/make/stub_includes/opengl/GL/glx.h
+++ b/make/stub_includes/opengl/GL/glx.h
@@ -66,9 +66,9 @@ extern "C" {
#define GLX_VERSION_1_4 1
*/
-#define GLX_EXTENSION_NAME "GLX"
-
+#ifndef GLX_VERSION_1_X
+#define GLX_EXTENSION_NAME "GLX"
/*
* Tokens for glXChooseVisual and glXGetConfig:
@@ -192,8 +192,12 @@ typedef XID GLXContextID;
typedef XID GLXWindow;
typedef XID GLXPbuffer;
+#endif /* GLX_VERSION_1_X */
+#ifndef GLX_VERSION_1_X
+#define GLX_VERSION_1_X 1
+
extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
int *attribList );
@@ -300,6 +304,8 @@ extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
/* GLX 1.4 and later */
extern void (*glXGetProcAddress(const GLubyte *procname))();
+#endif /* GLX_VERSION_1_X */
+
#ifndef GLX_GLXEXT_LEGACY
#include
diff --git a/make/stub_includes/opengl/GL/glxext.h b/make/stub_includes/opengl/GL/glxext.h
index 2ed99a824..ad580022e 100644
--- a/make/stub_includes/opengl/GL/glxext.h
+++ b/make/stub_includes/opengl/GL/glxext.h
@@ -266,16 +266,13 @@ extern "C" {
typedef void (*__GLXextFuncPtr)(void);
-#ifdef GLX_GLXEXT_PROTOTYPES
-extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
-#endif /* GLX_GLXEXT_PROTOTYPES */
-typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
-
#ifndef GLX_ARB_get_proc_address
#define GLX_ARB_get_proc_address 1
#ifdef GLX_GLXEXT_PROTOTYPES
+extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
#endif
@@ -868,9 +865,9 @@ typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy,
#endif
#ifndef GLX_NV_present_video
-#define GLX_NV_present_video
+#define GLX_NV_present_video 1
#ifdef GLX_GLXEXT_PROTOTYPES
-extern unsigned int *glXEnumerateVideoDevicesNV(Display *dpy,
+extern unsigned int* glXEnumerateVideoDevicesNV(Display *dpy,
int screen,
int *nelements);
extern int glXBindVideoDeviceNV(Display *dpy,
diff --git a/make/stub_includes/opengl/GL3/gl3.h b/make/stub_includes/opengl/GL3/gl3.h
index 41ed2ad2e..7db3851bd 100755
--- a/make/stub_includes/opengl/GL3/gl3.h
+++ b/make/stub_includes/opengl/GL3/gl3.h
@@ -1059,7 +1059,7 @@ typedef void GLvoid;
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
-#define GL_INVALID_INDEX 0xFFFFFFFFu
+/** Manual: #define GL_INVALID_INDEX -1 == (int) 0xFFFFFFFFu */
#endif
#ifndef GL_ARB_copy_buffer
@@ -1103,8 +1103,6 @@ typedef unsigned short GLhalfARB;
typedef unsigned short GLhalfNV;
#endif
-#include "glext-64bit-types.h"
-
#ifndef GL_VERSION_1_0
#define GL_VERSION_1_0 1
#ifdef GL3_PROTOTYPES
diff --git a/make/stub_includes/opengl/GL3/gl3ext.h b/make/stub_includes/opengl/GL3/gl3ext.h
index 8dcc9b4a3..7d391921f 100644
--- a/make/stub_includes/opengl/GL3/gl3ext.h
+++ b/make/stub_includes/opengl/GL3/gl3ext.h
@@ -1,6 +1,185 @@
#ifndef __gl3ext_h_
#define __gl3ext_h_
+#include "gl3-64bit-types.h"
+
+/*
+ * ------------------------------------------------
+ * Everything here and below was added manually
+ * to the version of glext.h obtained from:
+ * http://oss.sgi.com/projects/ogl-sample/registry/index.html
+ * ------------------------------------------------
+ *
+ * Structure is:
+ * #ifndef GL_EXTENSION_NAME
+ * Add DEFINES here
+ * #endif
+ * #ifndef GL_EXTENSION_NAME
+ * Add TYPEDEFS here
+ * #endif
+ * #ifndef GL_EXTENSION_NAME
+ * #define GL_EXTENSION_NAME 1
+ * #ifdef GL_GL3EXT_PROTOTYPES
+ * Add FUNCTION DECLARATIONS here
+ * #endif
+ * FUNCTION POINTER DECLARATIONS NOT NEEDED
+ * #endif
+ */
+
+#ifndef GL_VERSION_3_2
+#define GL_VERSION_3_2 1
+/* OpenGL 3.2 also reuses entry points from these extensions: */
+/* ARB_vertex_array_bgra */
+/* ARB_draw_elements_base_vertex */
+/* ARB_fragment_coord_conventions */
+/* ARB_provoking_vertex */
+/* ARB_seamless_cube_map */
+/* ARB_texture_multisample */
+/* ARB_depth_clamp */
+/* ARB_geometry_shader4 */
+/* ARB_sync */
+#ifdef GL_GL3EXT_PROTOTYPES
+#endif /* GL3_PROTOTYPES */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt
+ */
+#ifndef GL_ARB_vertex_array_bgra
+#define GL_BGRA 0x80E1
+#endif
+#ifndef GL_ARB_vertex_array_bgra
+#define GL_ARB_vertex_array_bgra 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No FUNCTIONS */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
+ */
+#ifndef GL_ARB_draw_elements_base_vertex
+/* No TOKENS */
+#endif
+#ifndef GL_ARB_draw_elements_base_vertex
+#define GL_ARB_draw_elements_base_vertex 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
+ GLvoid *indices, GLint basevertex);
+GLAPI void APIENTRY glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end,
+ GLsizei count, GLenum type, GLvoid *indices, GLint basevertex);
+GLAPI void APIENTRY glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count,
+ GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
+GLAPI void APIENTRY glMultiDrawElementsBaseVertex(GLenum mode, GLsizei *count, GLenum type,
+ GLvoid **indices, GLsizei primcount, GLint *basevertex);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/fragment_coord_conventions.txt
+ */
+#ifndef GL_ARB_fragment_coord_conventions
+/* No Tokens */
+#endif
+#ifndef GL_ARB_fragment_coord_conventions
+#define GL_ARB_fragment_coord_conventions 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No Functions */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt
+ */
+#ifndef GL_ARB_provoking_vertex
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#endif
+#ifndef GL_ARB_provoking_vertex
+#define GL_ARB_provoking_vertex 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glProvokingVertex(GLenum mode);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt
+ */
+#ifndef GL_ARB_seamless_cube_map
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#endif
+#ifndef GL_ARB_seamless_cube_map
+#define GL_ARB_seamless_cube_map 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No Functions */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/texture_multisample.txt
+ */
+#ifndef GL_ARB_texture_multisample
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#endif
+#ifndef GL_ARB_texture_multisample
+#define GL_ARB_texture_multisample 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
+GLAPI void APIENTRY glSampleMaski(GLuint index, GLbitfield mask);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/depth_clamp.txt
+ */
+#ifndef GL_ARB_depth_clamp
+#define GL_DEPTH_CLAMP 0x864F
+#endif
+#ifndef GL_ARB_depth_clamp
+#define GL_ARB_depth_clamp 1
+#ifdef GL_GL3EXT_PROTOTYPES
+/* No FUNCTIONS */
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
+
+/**
+ * http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
+ */
#ifndef GL_ARB_geometry_shader4
#define GL_LINES_ADJACENCY_ARB 0x000A
#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
@@ -23,7 +202,6 @@
/* reuse GL_MAX_VARYING_COMPONENTS */
/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
#endif
-
#ifndef GL_ARB_geometry_shader4
#define GL_ARB_geometry_shader4 1
#ifdef GL_GL3EXT_PROTOTYPES
@@ -31,22 +209,62 @@ GLAPI void APIENTRY glProgramParameteriARB (GLuint, GLenum, GLint);
GLAPI void APIENTRY glFramebufferTextureARB (GLenum, GLenum, GLuint, GLint);
GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum, GLenum, GLuint, GLint, GLint);
GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum, GLenum, GLuint, GLint, GLenum);
-#endif /* GL_GL3EXT_PROTOTYPES */
-typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
#endif
+/**
+ * http://www.opengl.org/registry/specs/ARB/sync.txt
+ */
+#ifndef GL_ARB_sync
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_OBJECT_TYPE 0x9112
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_UNSIGNALED 0x9118
+#define GL_SIGNALED 0x9119
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+/* Manual: #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFul */
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_WAIT_FAILED 0x911D
+#endif
+#ifndef GL_ARB_sync
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef struct __GLsync *GLsync;
+#endif
+#ifndef GL_ARB_sync
+#define GL_ARB_sync 1
+#ifdef GL_GL3EXT_PROTOTYPES
+GLAPI GLsync APIENTRY glFenceSync(GLenum condition, GLbitfield flags);
+GLAPI GLboolean APIENTRY glIsSync(GLsync sync);
+GLAPI void APIENTRY glDeleteSync(GLsync sync);
+GLAPI GLenum APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLAPI void APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLAPI void APIENTRY glGetInteger64v(GLenum pname, GLint64 *params);
+GLAPI void APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+#endif
+/* No need for explicit function pointer: we force generation of ProcAddress .. */
+#endif
-/*
- * ------------------------------------------------
- * Everything here and below was added manually
- * to the version of glext.h obtained from:
- * http://oss.sgi.com/projects/ogl-sample/registry/index.html
- * ------------------------------------------------
+/**
+ * Convenient names only .. actually subsumed into core
*/
-
+#ifndef GL_ARB_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+#endif
+
+#ifndef GL_ARB_texture_rectangle
+#define GL_ARB_texture_rectangle 1
+#endif
/**
* http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
@@ -60,9 +278,8 @@ typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLen
#define GL_TESSELLATION_MODE_AMD 0x9004
#define GL_TESSELLATION_FACTOR_AMD 0x9005
#endif
-
#ifndef GL_AMD_vertex_shader_tessellator
-#define GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator 1
#ifdef GL_GL3EXT_PROTOTYPES
GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor);
GLAPI void APIENTRY glTessellationModeAMD(GLenum mode);
@@ -71,5 +288,67 @@ typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_HALF_APPLE 0x140B
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
#endif
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#endif
+
+#ifndef GL_ATI_texture_float
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+#endif
+
+#ifndef GL_ATI_texture_float
+#define GL_ATI_texture_float 1
+#endif
+
+#ifndef GL_NV_float_buffer
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+#endif
+
+#ifndef GL_NV_float_buffer
+#define GL_NV_float_buffer 1
+#endif
+
+#endif /* __gl3ext_h_ */
+
diff --git a/make/stub_includes/opengl/GLES/gl.h b/make/stub_includes/opengl/GLES/gl.h
index da71230b5..41afe2239 100755
--- a/make/stub_includes/opengl/GLES/gl.h
+++ b/make/stub_includes/opengl/GLES/gl.h
@@ -71,6 +71,8 @@ typedef int GLsizeiptr;
#define GL_VERSION_ES_CM_1_1 1
#define GL_VERSION_ES_CL_1_1 1
+#ifndef GL_VERSION_ES_1_0
+
/* ClearBufferMask */
#define GL_DEPTH_BUFFER_BIT 0x00000100
#define GL_STENCIL_BUFFER_BIT 0x00000400
@@ -576,6 +578,8 @@ typedef int GLsizeiptr;
#define GL_DOT3_RGB 0x86AE
#define GL_DOT3_RGBA 0x86AF
+#endif /* GL_VERSION_ES_1_0 */
+
/*------------------------------------------------------------------------*
* required OES extension tokens
*------------------------------------------------------------------------*/
@@ -617,6 +621,8 @@ typedef int GLsizeiptr;
/*************************************************************/
+#ifndef GL_VERSION_ES_CM
+#define GL_VERSION_ES_CM 1
/* Available only in Common profile */
GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLclampf ref);
GL_API void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
@@ -658,7 +664,10 @@ GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *
GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
+#endif /* GL_VERSION_ES_CM */
+#ifndef GL_VERSION_ES_CL_CM
+#define GL_VERSION_ES_CL 1
/* Available in both Common and Common-Lite profiles */
GL_API void GL_APIENTRY glActiveTexture (GLenum texture);
GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref);
@@ -768,6 +777,7 @@ GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffs
GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z);
GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif /* GL_VERSION_ES_CL */
/*------------------------------------------------------------------------*
* Required OES extension functions
diff --git a/make/stub_includes/opengl/GLES/glext.h b/make/stub_includes/opengl/GLES/glext.h
index ee6ebae20..f9e181dd0 100755
--- a/make/stub_includes/opengl/GLES/glext.h
+++ b/make/stub_includes/opengl/GLES/glext.h
@@ -244,7 +244,6 @@ typedef void* GLeglImageOES;
#define GL_3DC_XY_AMD 0x87FA
#endif
-/* GL_AMD_compressed_ATC_texture */
#ifndef GL_AMD_compressed_ATC_texture
#define GL_ATC_RGB_AMD 0x8C92
#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
@@ -634,7 +633,6 @@ typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum
#define GL_AMD_compressed_3DC_texture 1
#endif
-/* GL_AMD_compressed_ATC_texture */
#ifndef GL_AMD_compressed_ATC_texture
#define GL_AMD_compressed_ATC_texture 1
#endif
diff --git a/make/stub_includes/opengl/GLES2/gl2.h b/make/stub_includes/opengl/GLES2/gl2.h
index 9c68b1e7a..44338000e 100755
--- a/make/stub_includes/opengl/GLES2/gl2.h
+++ b/make/stub_includes/opengl/GLES2/gl2.h
@@ -99,8 +99,7 @@ typedef int GLclampx;
typedef int GLintptr;
typedef int GLsizeiptr;
-/* OpenGL ES core versions */
-#define GL_ES_VERSION_2_0 1
+#ifndef GL_ES_VERSION_2_0
/* ClearBufferMask */
#define GL_DEPTH_BUFFER_BIT 0x00000100
@@ -532,10 +531,14 @@ typedef int GLsizeiptr;
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#endif /* GL_ES_VERSION_2_0 */
+
/*-------------------------------------------------------------------------
* GL core functions.
*-----------------------------------------------------------------------*/
+#ifndef GL_ES_VERSION_2_0
+#define GL_ES_VERSION_2_0 1
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const char* name);
@@ -678,6 +681,7 @@ GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GL
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif /* GL_ES_VERSION_2_0 */
#ifdef __cplusplus
}
diff --git a/make/stub_includes/opengl/GLES2/gl2ext.h b/make/stub_includes/opengl/GLES2/gl2ext.h
index 8580e2bdf..e3bbede8a 100755
--- a/make/stub_includes/opengl/GLES2/gl2ext.h
+++ b/make/stub_includes/opengl/GLES2/gl2ext.h
@@ -61,9 +61,7 @@ extern "C" {
#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B
-#define GL_OES_EGL_image 1
-
-#ifdef GL_OES_EGL_image
+#ifndef GL_OES_EGL_image
/** sgothel: wrong defines and/or numbers:
*
#define GL_TEXTURE_2D_OES 0x1
@@ -76,12 +74,17 @@ extern "C" {
#define GL_RENDERBUFFER_OES 0x9
#define GL_TEXTURE_RECTANGLE_NV_OES 0xb
*/
+#endif /* GL_OES_EGL_image */
+#ifndef GL_OES_EGL_image
typedef void *GLeglImageOES;
+#endif /* GL_OES_EGL_image */
+
+#ifndef GL_OES_EGL_image
+#define GL_OES_EGL_image 1
GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
#ifdef GL_GLEXT_PROTOTYPES
typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-
#endif
#endif
diff --git a/make/stub_includes/opengl/gl2es12.c b/make/stub_includes/opengl/gl2es12.c
index 75cb4acfc..bc9d24ace 100644
--- a/make/stub_includes/opengl/gl2es12.c
+++ b/make/stub_includes/opengl/gl2es12.c
@@ -6,8 +6,3 @@
#include
-// removed due to renaming and the fact that the renamed version is not included
-// in the super interfaces ..
-GLAPI void APIENTRY glWeightPointer (GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glMatrixIndexPointer (GLint, GLenum, GLsizei, const GLvoid *);
-GLAPI void APIENTRY glCurrentPaletteMatrix (GLint);
diff --git a/make/stub_includes/opengl/gl3-64bit-types.h b/make/stub_includes/opengl/gl3-64bit-types.h
new file mode 100644
index 000000000..fc8b4ce05
--- /dev/null
+++ b/make/stub_includes/opengl/gl3-64bit-types.h
@@ -0,0 +1,41 @@
+#ifndef __gl3_64bit_types_h_
+#define __gl3_64bit_types_h_
+
+#ifndef GL3_64_TYPES_DEFINED
+ /* This code block is duplicated in glext.h, so must be protected */
+ #define GL3_64_TYPES_DEFINED
+ /* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+ /* (as used in the GL_EXT_timer_query extension). */
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ #include
+ #elif defined(__sun__)
+ #include
+ #if defined(__STDC__)
+ #if defined(__arch64__)
+ typedef long int int64_t;
+ typedef unsigned long int uint64_t;
+ #else
+ typedef long long int int64_t;
+ typedef unsigned long long int uint64_t;
+ #endif /* __arch64__ */
+ #endif /* __STDC__ */
+ #elif defined( __VMS )
+ #include
+ #elif defined(__SCO__) || defined(__USLC__)
+ #include
+ #elif defined(__UNIXOS2__) || defined(__SOL64__)
+ typedef long int int32_t;
+ typedef long long int int64_t;
+ typedef unsigned long long int uint64_t;
+ #elif defined(WIN32) && defined(__GNUC__)
+ #include
+ #elif defined(_WIN32)
+ typedef __int32 int32_t;
+ typedef __int64 int64_t;
+ typedef unsigned __int64 uint64_t;
+ #else
+ #include /* Fallback option */
+ #endif
+#endif
+
+#endif /* __gl3_64bit_types_h_ */
diff --git a/make/stub_includes/opengl/glu-impl.c b/make/stub_includes/opengl/glu-impl.c
deleted file mode 100644
index 2328639d8..000000000
--- a/make/stub_includes/opengl/glu-impl.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include
-
-
diff --git a/make/stub_includes/win32/wingdi.h b/make/stub_includes/win32/wingdi.h
index 4d980755b..46aeec2b6 100644
--- a/make/stub_includes/win32/wingdi.h
+++ b/make/stub_includes/win32/wingdi.h
@@ -6,6 +6,8 @@
*
*/
+#ifndef WGL_GDI_VERSION_1_X
+
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
@@ -163,6 +165,11 @@ typedef struct tagPIXELFORMATDESCRIPTOR
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
+#endif /* WGL_GDI_VERSION_1_X */
+
+#ifndef WGL_GDI_VERSION_1_X
+#define WGL_GDI_VERSION_1_X
+
// Windows routines
WINBASEAPI DWORD WINAPI GetLastError(VOID);
WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
@@ -214,3 +221,5 @@ WINUSERAPI BOOL WINAPI DestroyWindow(HWND hWnd);
// Routines for changing gamma ramp of display device
WINGDIAPI BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
WINGDIAPI BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
+
+#endif /* WGL_GDI_VERSION_1_X */
diff --git a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
index d1a35b1b6..16eb934bd 100644
--- a/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
+++ b/src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java
@@ -61,7 +61,6 @@ public abstract class GLContextImpl extends GLContext {
// platforms anyway in particular with the disabling of the
// GLWorkerThread which we found to be necessary in 1.0 beta 4.
protected boolean optimizationEnabled = Debug.isPropertyDefined("jogl.GLContext.optimize", true);
- protected boolean tryGLContext3_2 = Debug.isPropertyDefined("jogl.GLContext.3_2", true);
// Cache of the functions that are available to be called at the current
// moment in time
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
index 4ea3519bf..0754c4b57 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java
@@ -86,7 +86,7 @@ public class MacOSXPbufferCGLContext extends MacOSXCGLContext {
rect = false;
}
}
- textureTarget = (rect ? GL2.GL_TEXTURE_RECTANGLE_EXT: GL.GL_TEXTURE_2D);
+ textureTarget = (rect ? GL2.GL_TEXTURE_RECTANGLE : GL.GL_TEXTURE_2D);
int[] tmp = new int[1];
gl.glGenTextures(1, tmp, 0);
texture = tmp[0];
diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
index 0d031ffff..2d7b3ea34 100644
--- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
+++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java
@@ -98,7 +98,7 @@ public class MacOSXPbufferCGLDrawable extends MacOSXCGLDrawable {
GLProfile glProfile = capabilities.getGLProfile();
int renderTarget;
if (glProfile.isGL2() && capabilities.getPbufferRenderToTextureRectangle()) {
- renderTarget = GL2.GL_TEXTURE_RECTANGLE_EXT;
+ renderTarget = GL2.GL_TEXTURE_RECTANGLE;
} else {
int w = getNextPowerOf2(getWidth());
int h = getNextPowerOf2(getHeight());
diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
index e459d0c5a..9a3860ae2 100644
--- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java
@@ -178,7 +178,8 @@ public class WindowsWGLContext extends GLContextImpl {
if(glCaps.getGLProfile().isGL3()) {
// Try >= 3.2 core first !
- // In contrast to GLX no verify with a None drawable binding (default framebuffer) is necessary.
+ // In contrast to GLX no verify with a None drawable binding (default framebuffer) is necessary,
+ // if no 3.2 is available creation fails already!
attribs[0+1] = 3;
attribs[2+1] = 2;
attribs[6+0] = WGLExt.WGL_CONTEXT_PROFILE_MASK_ARB;
@@ -186,7 +187,7 @@ public class WindowsWGLContext extends GLContextImpl {
hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
if(0==hglrc) {
if(DEBUG) {
- System.err.println("WindowsWGLContext.createContext couldn't create >= 3.2 core context");
+ System.err.println("WindowsWGLContext.createContext couldn't create >= 3.2 core context - fallback");
}
// Try >= 3.1 forward compatible - last resort for GL3 !
attribs[0+1] = 3;
@@ -201,6 +202,13 @@ public class WindowsWGLContext extends GLContextImpl {
if(0==hglrc) {
// 3.1 or 3.0 ..
hglrc = wglExt.wglCreateContextAttribsARB(drawable.getNativeWindow().getSurfaceHandle(), hglrc2, attribs, 0);
+ if(DEBUG) {
+ if(0==hglrc) {
+ System.err.println("WindowsWGLContext.createContext couldn't create >= 3.0 context - fallback");
+ } else {
+ System.err.println("WindowsWGLContext.createContext >= 3.0 available 0x"+Long.toHexString(hglrc));
+ }
+ }
}
if(0==hglrc) {
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
index 126062d27..d5a5f3433 100644
--- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
+++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java
@@ -202,27 +202,30 @@ public abstract class X11GLXContext extends GLContextImpl {
};
if(glCaps.getGLProfile().isGL3()) {
- if(tryGLContext3_2) {
- // Try >= 3.2 core first
- // and verify with a None drawable binding (default framebuffer)
- attribs[0+1] = 3;
- attribs[2+1] = 2;
- // FIXME: attribs[8+0] = GLX.GLX_CONTEXT_PROFILE_MASK_ARB;
- // FIXME: attribs[8+1] = GLX.GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
-
- context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
- if(0!=context) {
- if (!GLX.glXMakeContextCurrent(display, 0, 0, context)) {
- if(DEBUG) {
- System.err.println("X11GLXContext.createContext couldn't make >= 3.2 core context current - fallback");
- }
- GLX.glXMakeContextCurrent(display, 0, 0, 0);
- GLX.glXDestroyContext(display, context);
- context = 0;
- } else if(DEBUG) {
- System.err.println("X11GLXContext.createContext >= 3.2 available 0x"+Long.toHexString(context));
+ // Try >= 3.2 core first
+ // and verify with a None drawable binding (default framebuffer)
+ attribs[0+1] = 3;
+ attribs[2+1] = 2;
+ // FIXME NV Bug: attribs[8+0] = GLX.GLX_CONTEXT_PROFILE_MASK_ARB;
+ // FIXME NV Bug: attribs[8+1] = GLX.GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
+
+ context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
+ if(0!=context) {
+ if (!GLX.glXMakeContextCurrent(display,
+ drawable.getNativeWindow().getSurfaceHandle(),
+ drawable.getNativeWindow().getSurfaceHandle(),
+ context)) {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't make >= 3.2 core context current - fallback");
}
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, context);
+ context = 0;
} else if(DEBUG) {
+ System.err.println("X11GLXContext.createContext >= 3.2 available 0x"+Long.toHexString(context));
+ }
+ } else {
+ if(DEBUG) {
System.err.println("X11GLXContext.createContext couldn't create >= 3.2 core context - fallback");
}
}
@@ -238,6 +241,25 @@ public abstract class X11GLXContext extends GLContextImpl {
if(0==context) {
// 3.1 or 3.0 ..
context = glXExt.glXCreateContextAttribsARB(display, config.getFBConfig(), share, direct, attribs, 0);
+ if(0!=context) {
+ if (!GLX.glXMakeContextCurrent(display,
+ drawable.getNativeWindow().getSurfaceHandle(),
+ drawable.getNativeWindow().getSurfaceHandle(),
+ context)) {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't make >= 3.0 core context current - fallback");
+ }
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, context);
+ context = 0;
+ } else if(DEBUG) {
+ System.err.println("X11GLXContext.createContext >= 3.0 available 0x"+Long.toHexString(context));
+ }
+ } else {
+ if(DEBUG) {
+ System.err.println("X11GLXContext.createContext couldn't create >= 3.0 core context - fallback");
+ }
+ }
}
if(0==context) {
@@ -253,22 +275,17 @@ public abstract class X11GLXContext extends GLContextImpl {
drawable.getNativeWindow().getSurfaceHandle(),
drawable.getNativeWindow().getSurfaceHandle(),
context)) {
+ GLX.glXMakeContextCurrent(display, 0, 0, 0);
+ GLX.glXDestroyContext(display, temp_context);
throw new GLException("Error making context (old) current: display 0x"+Long.toHexString(display)+", context 0x"+Long.toHexString(context)+", drawable "+drawable);
}
if(DEBUG) {
System.err.println("X11GLXContext.createContext done (old ctx < 3.0 - no 3.0) 0x"+Long.toHexString(context));
}
} else {
- GLX.glXMakeContextCurrent(display, 0, 0, 0);
GLX.glXDestroyContext(display, temp_context);
// need to update the GL func table ..
- if (!GLX.glXMakeContextCurrent(display,
- drawable.getNativeWindow().getSurfaceHandle(),
- drawable.getNativeWindow().getSurfaceHandle(),
- context)) {
- throw new GLException("Error making context (new) current: display 0x"+Long.toHexString(display)+", context 0x"+Long.toHexString(context)+", drawable "+drawable);
- }
updateGLProcAddressTable();
if(DEBUG) {
System.err.println("X11GLXContext.createContext done (new ctx >= 3.0) 0x"+Long.toHexString(context));
--
cgit v1.2.3
From 85c9f961226f017a34b31031bb37ca25c0d906c6 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Wed, 5 Aug 2009 15:49:50 -0700
Subject: Unify GL: glUnmapBuffer, glBlend*, glGenerateMipmap; Analyze script
for collisions: lsGL23_commons.sh
---
make/config/jogl/gl-if-gl-ignores.cfg | 18 +++++++++---------
make/lsGL23_commons.sh | 18 ++++++++++++++++++
make/lsGL23_unique.sh | 18 ++++++++++++++++++
make/lsGL23toGL2ES1_commons.sh | 2 +-
make/lsGL2toGL3_commons.sh | 16 ----------------
make/lsGL2toGL3_unique.sh | 16 ----------------
6 files changed, 46 insertions(+), 42 deletions(-)
create mode 100644 make/lsGL23_commons.sh
create mode 100644 make/lsGL23_unique.sh
delete mode 100644 make/lsGL2toGL3_commons.sh
delete mode 100644 make/lsGL2toGL3_unique.sh
(limited to 'make')
diff --git a/make/config/jogl/gl-if-gl-ignores.cfg b/make/config/jogl/gl-if-gl-ignores.cfg
index 1fa439702..5deb828e6 100644
--- a/make/config/jogl/gl-if-gl-ignores.cfg
+++ b/make/config/jogl/gl-if-gl-ignores.cfg
@@ -354,7 +354,7 @@ Ignore GL_WRITE_ONLY_OES
Ignore GL_XOR
Ignore glIsProgram
Ignore glIsShader
-Ignore glUnmapBufferOES
+#Ignore glUnmapBufferOES
Ignore glCreateProgram
Ignore glCreateShader
Ignore glGetAttribLocation
@@ -363,12 +363,12 @@ Ignore glAlphaFunc
Ignore glAttachShader
Ignore glBindAttribLocation
Ignore glBlendColor
-Ignore glBlendEquation
-Ignore glBlendEquationOES
-Ignore glBlendEquationSeparate
-Ignore glBlendEquationSeparateOES
-Ignore glBlendFuncSeparate
-Ignore glBlendFuncSeparateOES
+#Ignore glBlendEquation
+#Ignore glBlendEquationOES
+#Ignore glBlendEquationSeparate
+#Ignore glBlendEquationSeparateOES
+#Ignore glBlendFuncSeparate
+#Ignore glBlendFuncSeparateOES
Ignore glClearDepthfOES
Ignore glClientActiveTexture
Ignore glClipPlanef
@@ -401,8 +401,8 @@ Ignore glFogxvOES
Ignore glFramebufferVertexAttribArrayNV
Ignore glFrustumf
Ignore glFrustumfOES
-Ignore glGenerateMipmap
-Ignore glGenerateMipmapOES
+#Ignore glGenerateMipmap
+#Ignore glGenerateMipmapOES
Ignore glGetActiveAttrib
Ignore glGetActiveUniform
Ignore glGetAttachedShaders
diff --git a/make/lsGL23_commons.sh b/make/lsGL23_commons.sh
new file mode 100644
index 000000000..7c7161717
--- /dev/null
+++ b/make/lsGL23_commons.sh
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+BUILDDIR=$1
+shift
+if [ -z "$BUILDDIR" ] ; then
+ echo "usage $0 "
+ exit 1
+fi
+
+idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
+
+SOURCE="$idir/GL.java $idir/GL2ES1.java $idir/GL2ES2.java $idir/GLES1.java $idir/GLES2.java $idir/GL2GL3.java $idir/GL2.java $idir/GL3.java"
+
+echo GL GL2ES1 GL2ES2 GLES1 GLES2 GL2GL3 GL2 GL3 defines
+sort $SOURCE | uniq -d | grep GL_ | grep -v "Part of "
+
+echo GL GL2ES1 GL2ES2 GLES1 GLES2 GL2GL3 GL2 GL3 functions
+sort $SOURCE | uniq -d | grep "public [a-z0-9_]* gl"
diff --git a/make/lsGL23_unique.sh b/make/lsGL23_unique.sh
new file mode 100644
index 000000000..e21112ecc
--- /dev/null
+++ b/make/lsGL23_unique.sh
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+BUILDDIR=$1
+shift
+if [ -z "$BUILDDIR" ] ; then
+ echo "usage $0 "
+ exit 1
+fi
+
+idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
+
+SOURCE="$idir/GL.java $idir/GLES2.java $idir/GL2ES2.java $idir/GL3.java $idir/GL2.java $idir/GL2GL3.java"
+
+echo GL2GL3 to GL2 GL3 Gl2ES2 GLES2 GL defines
+sort $SOURCE | uniq -u | grep GL_ | grep -v "Part of " | awk ' { print $5 } '
+
+echo GL2GL3 to GL2 GL3 Gl2ES2 GLES2 GL functions
+sort $SOURCE | uniq -u | grep "public [a-z0-9_]* gl"
diff --git a/make/lsGL23toGL2ES1_commons.sh b/make/lsGL23toGL2ES1_commons.sh
index b91edb794..83a543b3c 100644
--- a/make/lsGL23toGL2ES1_commons.sh
+++ b/make/lsGL23toGL2ES1_commons.sh
@@ -11,7 +11,7 @@ idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
echo GL2GL3 to GL2ES1 enums
# sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep GL_ | awk ' { print $5 } '
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep GL_
+sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep GL_ | grep -v "Part of "
echo GL2GL3 to GL2ES1 functions
# sort $idir/GL2.java $idir/GL3.java $idir/GL2ES1.java $idir/GL2GL3.java | uniq -d | grep "public [a-z0-9_]* gl"
diff --git a/make/lsGL2toGL3_commons.sh b/make/lsGL2toGL3_commons.sh
deleted file mode 100644
index 7f2a276de..000000000
--- a/make/lsGL2toGL3_commons.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /bin/sh
-
-BUILDDIR=$1
-shift
-if [ -z "$BUILDDIR" ] ; then
- echo "usage $0 "
- exit 1
-fi
-
-idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
-
-echo GL2 to GL3 enums
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -d | grep GL_ | awk ' { print $5 } '
-
-echo GL2 to GL3 functions
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -d | grep "public [a-z0-9_]* gl"
diff --git a/make/lsGL2toGL3_unique.sh b/make/lsGL2toGL3_unique.sh
deleted file mode 100644
index 20d821332..000000000
--- a/make/lsGL2toGL3_unique.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /bin/sh
-
-BUILDDIR=$1
-shift
-if [ -z "$BUILDDIR" ] ; then
- echo "usage $0 "
- exit 1
-fi
-
-idir=$BUILDDIR/jogl/gensrc/classes/javax/media/opengl
-
-echo GL2 to GL3 enums
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -u | grep GL_ | awk ' { print $5 } '
-
-echo GL2 to GL3 functions
-sort $idir/GL2.java $idir/GL3.java $idir/GL2ES2.java $idir/GL2GL3.java | uniq -u | grep "public [a-z0-9_]* gl"
--
cgit v1.2.3
From ea30ed4e6424737e29c157de4a37422e1f63a328 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Thu, 6 Aug 2009 23:45:06 -0700
Subject: Javadoc API: Add link to UML Diagram
---
doc/bouml/jogl/69.session | 2 +-
make/doc/jogl/spec-overview.html | 18 ++++++++++++------
2 files changed, 13 insertions(+), 7 deletions(-)
(limited to 'make')
diff --git a/doc/bouml/jogl/69.session b/doc/bouml/jogl/69.session
index ae6631e25..246d70031 100644
--- a/doc/bouml/jogl/69.session
+++ b/doc/bouml/jogl/69.session
@@ -1,7 +1,7 @@
window_sizes 1800 1050 450 1344 851 120
diagrams
active classdiagram_ref 128069 // OpenGL Interfaces
- 1135 830 100 15 57 0
+ 1135 830 100 15 0 0
end
show_stereotypes
selected classdiagram_ref 128069 // OpenGL Interfaces
diff --git a/make/doc/jogl/spec-overview.html b/make/doc/jogl/spec-overview.html
index 5d4779c57..26936e63e 100644
--- a/make/doc/jogl/spec-overview.html
+++ b/make/doc/jogl/spec-overview.html
@@ -43,6 +43,12 @@ bindings to the native OpenGL(R) 3D graphics library profiles:
+OpenGL Profile Model
+ OpenGL today is not just a single set of functionality, it offers many profiles for different
+ purposes, e.g. ES1 and ES2 for mobile, etc.
+ JOGL reflects these profiles with an OO abstraction model,
+ specifying interfaces encapsulating common subsets.
+
Package Structure
The packages defined by this specification include:
@@ -68,12 +74,12 @@ inclusive, as well as most of it's extensions defined at the time of this specif
This interface contains all core desktop OpenGL methods through
version 3.0, inclusive, as well as most of it's extensions defined at the
-time of this specification. Early OpenGL extensions whose functionality
-was incorporated into core OpenGL by version 3.0, inclusive, are specifically
-excluded.
- Note: OpenGL 3.0 is the last subsumed version in the specification.
+time of this specification. OpenGL extensions whose functionality
+was incorporated into core OpenGL until version 3.1, inclusive, are subsumed into the core namespace.
+ Note: OpenGL 3.0 is the last completly subsumed version in the specification.
You need to use a {@link javax.media.opengl.GL3} OpenGL 3.1+ context to benefit
from new functionality and versions.
+ Note: Intersecting OpenGL 3.1 subsumed extensions are subsumed in GL2 as well, to offer the best common GL2GL3 intersection.
See GL2 Inclusion Criteria.
See GL2 Runtime Requirements.
Future extensions will be added with a maintenance update
@@ -119,7 +125,7 @@ time of this specification.
{@link javax.media.opengl.GL2GL3 javax.media.opengl.GL2GL3} interface
- Interface containing the common subset of GL3 (OpenGL 3.1+) and GL2 (OpenGL 2.0),
+ Interface containing the common subset of GL3 (OpenGL 3.1+) and GL2 (OpenGL 3.0),
also known as the OpenGL 3.0 forward compatible, non deprecated subset.
This interface reflects only the programmable shader functionality of desktop OpenGL
@@ -322,7 +328,7 @@ according the following rules:
{@link javax.media.opengl.GL3 javax.media.opengl.GL3} interface
- - All functions in core, forward compatible, OpenGL 3.1, inclusive, have been included,
+
- All functions in core, forward compatible, OpenGL 3.1 - 3.2, inclusive, have been included,
as described in the header files
GL3/gl3.h
.
- Reason for starting a new profile beginning with 3.1 are: