Added support for OpenGL 4.3 and OpenGL ES 3.0.

Modified the generator process to use relative paths. We were hitting the command line length limit on Windows.
Some extension improvements, fixes and spec updates.
This commit is contained in:
Ioannis Tsakpinis 2012-08-07 15:14:03 +00:00
parent b4cc6176e7
commit 929817a4eb
66 changed files with 5411 additions and 106 deletions

View File

@ -177,7 +177,7 @@
<!-- ================================================================== -->
<!-- Generate a list of the OpenGL extension classes -->
<!-- ================================================================== -->
<fileset id="opengl-template-fileset" dir="${lwjgl.src}/generated" includes="${opengl-template-pattern}"/>
<fileset id="opengl-template-fileset" dir="${lwjgl.src}/generated/org/lwjgl/opengl" includes="${opengl-template-pattern}"/>
<property name="opengl-template-files" refid="opengl-template-fileset"/>
<tempfile property="temp.file"/>
@ -187,7 +187,7 @@
<filterchain>
<tokenfilter delimoutput=",">
<stringtokenizer delims=";"/>
<replaceregex pattern="org\${file.separator}lwjgl\${file.separator}opengl\${file.separator}(.+)[.]java"
<replaceregex pattern="(.+)[.]java"
replace="org/lwjgl/opengl/\1.class"/>
</tokenfilter>
</filterchain>
@ -350,6 +350,7 @@
<class name="org.lwjgl.opengles.EGLKHRReusableSync"/>
<class name="org.lwjgl.opengles.EGLNVSync"/>
<class name="org.lwjgl.opengles.GLContext"/>
<class name="org.lwjgl.opengles.CallbackUtil"/>
</javah>
</target>
@ -626,7 +627,7 @@
<bottom><![CDATA[<i>Copyright &#169; 2002-2009 lwjgl.org. All Rights Reserved.</i>]]></bottom>
</javadoc>
</target>
<!-- get and copy nightly binaries into libs folder -->
<target name="copy-nightly-binaries" depends="-initialize" description="Copies latest successful nightly binaries into appropriate libs folder">
<delete file="${lwjgl.temp}/lwjgl-${lwjgl.version}.zip" failonerror="false"/>
@ -635,7 +636,7 @@
<patternset>
<include name="**/native/**/*lwjgl*"/>
</patternset>
<globmapper from="lwjgl-${lwjgl.version}/native/*" to="*"/>
<globmapper from="lwjgl-${lwjgl.version}/native/*" to="*"/>
</unzip>
</target>
</target>
</project>

View File

@ -15,10 +15,16 @@
<property name="lwjgl.version" value="2.8.5" />
<property name="lwjgl.web" location="www" />
<property name="opengl-template-pattern" value="org/lwjgl/opengl/GL*.java,org/lwjgl/opengl/ARB*.java,org/lwjgl/opengl/AMD*.java,org/lwjgl/opengl/APPLE*.java,org/lwjgl/opengl/ATI*.java,org/lwjgl/opengl/EXT*.java,org/lwjgl/opengl/NV*.java,org/lwjgl/opengl/NVX*.java,org/lwjgl/opengl/HP*.java,org/lwjgl/opengl/IBM*.java,org/lwjgl/opengl/SUN*.java,org/lwjgl/opengl/SGIS*.java,org/lwjgl/opengl/GREMEDY*.java"/>
<property name="opengles-template-pattern" value="org/lwjgl/opengles/GLES*.java,org/lwjgl/opengles/ARB*.java,org/lwjgl/opengles/EXT*.java,org/lwjgl/opengles/AMD*.java,org/lwjgl/opengles/ANGLE*.java,org/lwjgl/opengles/APPLE*.java,org/lwjgl/opengles/ARM*.java,org/lwjgl/opengles/DMP*.java,org/lwjgl/opengles/IMG*.java,org/lwjgl/opengles/NV*.java,org/lwjgl/opengles/OES*.java,org/lwjgl/opengles/QCOM*.java,org/lwjgl/opengles/VIV*.java"/>
<property name="opencl-template-pattern-extensions" value="org/lwjgl/opencl/KHR*.java,org/lwjgl/opencl/EXT*.java,org/lwjgl/opencl/APPLE*.java,org/lwjgl/opencl/AMD*.java,org/lwjgl/opencl/INTEL*.java,org/lwjgl/opencl/NV*.java"/>
<property name="opencl-template-pattern" value="org/lwjgl/opencl/CL*.java,${opencl-template-pattern-extensions}"/>
<property name="lwjgl.src.templates.al" location="${lwjgl.src.templates}/org/lwjgl/openal"/>
<property name="lwjgl.src.templates.gl" location="${lwjgl.src.templates}/org/lwjgl/opengl"/>
<property name="lwjgl.src.templates.gles" location="${lwjgl.src.templates}/org/lwjgl/opengles"/>
<property name="lwjgl.src.templates.cl" location="${lwjgl.src.templates}/org/lwjgl/opencl"/>
<property name="openal-template-pattern" value="AL*.java,EFX*.java"/>
<property name="opengl-template-pattern" value="GL*.java,ARB*.java,EXT*.java,KHR*.java,AMD*.java,APPLE*.java,ATI*.java,NV*.java,NVX*.java,HP*.java,IBM*.java,SUN*.java,SGIS*.java,GREMEDY*.java"/>
<property name="opengles-template-pattern" value="GLES*.java,ARB*.java,EXT*.java,KHR*.java,AMD*.java,ANGLE*.java,APPLE*.java,ARM*.java,DMP*.java,IMG*.java,NV*.java,OES*.java,QCOM*.java,VIV*.java"/>
<property name="opencl-template-pattern-extensions" value="KHR*.java,EXT*.java,APPLE*.java,AMD*.java,INTEL*.java,NV*.java"/>
<property name="opencl-template-pattern" value="CL*.java,${opencl-template-pattern-extensions}"/>
<!-- ================================================================== -->
<!-- Filesets used for targets -->

View File

@ -30,8 +30,10 @@
<include name="org/lwjgl/opengl/GLSync.java"/>
<include name="org/lwjgl/opengl/AMDDebugOutputCallback.java"/>
<include name="org/lwjgl/opengl/ARBDebugOutputCallback.java"/>
<include name="org/lwjgl/opengl/KHRDebugCallback.java"/>
<!-- OpenGL ES -->
<include name="org/lwjgl/opengles/EGLImageOES.java"/>
<include name="org/lwjgl/opengles/KHRDebugCallback.java"/>
<!-- OpenCL -->
<include name="org/lwjgl/opencl/CLPlatform.java"/>
<include name="org/lwjgl/opencl/CLDevice.java"/>
@ -57,7 +59,7 @@
<!-- Generate OpenAL -->
<target name="generate-openal" depends="generators" description="Generates java and native source for AL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.al}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -67,14 +69,15 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/openal"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Atypemap=org.lwjgl.util.generator.openal.ALTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="org/lwjgl/openal/AL10.java, org/lwjgl/openal/AL11.java, org/lwjgl/openal/EFX10.java"/>
<fileset dir="${lwjgl.src.templates.al}" includes="${openal-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenAL [DEBUG] -->
<target name="generate-openal-debug" depends="generators" description="Generates java and native source for AL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.al}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -84,9 +87,10 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/openal"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Atypemap=org.lwjgl.util.generator.openal.ALTypeMap"/>
<arg value="-Ageneratechecks"/>
<fileset dir="${lwjgl.src.templates}" includes="org/lwjgl/openal/AL10.java, org/lwjgl/openal/AL11.java, org/lwjgl/openal/EFX10.java"/>
<fileset dir="${lwjgl.src.templates.al}" includes="${openal-template-pattern}"/>
</apply>
</target>
@ -98,7 +102,7 @@
<!-- Generate OpenGL -->
<target name="generate-opengl" depends="generators" description="Generates java and native source for GL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -108,15 +112,16 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/opengl"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Acontextspecific"/>
<arg value="-Atypemap=org.lwjgl.util.generator.opengl.GLTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gl}" includes="${opengl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL [DEBUG] -->
<target name="generate-opengl-debug" depends="generators" description="Generates debug java and native source for GL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -126,16 +131,17 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/opengl"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Ageneratechecks"/>
<arg value="-Acontextspecific"/>
<arg value="-Atypemap=org.lwjgl.util.generator.opengl.GLTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gl}" includes="${opengl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL references -->
<target name="generate-opengl-references" depends="generators" description="Generates java and native source for GL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opengl.GLReferencesGeneratorProcessorFactory"/>
@ -143,13 +149,13 @@
<arg path="${lwjgl.src}/java:${lwjgl.src.templates}:${lwjgl.bin}:${java.class.path}"/>
<arg value="-s"/>
<arg path="${lwjgl.src}/generated"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gl}" includes="${opengl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL context capabilities -->
<target name="generate-opengl-capabilities" depends="generators" description="Generates java and native source for GL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opengl.GLGeneratorProcessorFactory"/>
@ -158,13 +164,13 @@
<arg value="-s"/>
<arg path="${lwjgl.src}/generated"/>
<arg value="-Acontextspecific"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gl}" includes="${opengl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL context capabilities [DEBUG] -->
<target name="generate-opengl-capabilities-debug" depends="generators" description="Generates debug java and native source for GL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opengl.GLGeneratorProcessorFactory"/>
@ -174,7 +180,7 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-Ageneratechecks"/>
<arg value="-Acontextspecific"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gl}" includes="${opengl-template-pattern}"/>
</apply>
</target>
@ -186,7 +192,7 @@
<!-- Generate OpenGL ES -->
<target name="generate-opengles" depends="generators" description="Generates java and native source for GL ES">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gles}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -196,15 +202,16 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/opengles"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<!--<arg value="-Acontextspecific"/>-->
<arg value="-Atypemap=org.lwjgl.util.generator.opengl.GLESTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengles-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gles}" includes="${opengles-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL ES [DEBUG] -->
<target name="generate-opengles-debug" depends="generators" description="Generates debug java and native source for GL ES">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gles}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -214,16 +221,17 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/opengles"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Ageneratechecks"/>
<!--<arg value="-Acontextspecific"/>-->
<arg value="-Atypemap=org.lwjgl.util.generator.opengl.GLESTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="${opengles-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gles}" includes="${opengles-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL ES context capabilities -->
<target name="generate-opengles-capabilities" depends="generators" description="Generates java and native source for GL ES">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gles}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opengl.GLESGeneratorProcessorFactory"/>
@ -232,13 +240,13 @@
<arg value="-s"/>
<arg path="${lwjgl.src}/generated"/>
<!--<arg value="-Acontextspecific"/>-->
<fileset dir="${lwjgl.src.templates}" includes="${opengles-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gles}" includes="${opengles-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenGL ES context capabilities [DEBUG] -->
<target name="generate-opengles-capabilities-debug" depends="generators" description="Generates debug java and native source for GL ES">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.gles}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opengl.GLESGeneratorProcessorFactory"/>
@ -248,7 +256,7 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-Ageneratechecks"/>
<!--<arg value="-Acontextspecific"/>-->
<fileset dir="${lwjgl.src.templates}" includes="${opengles-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.gles}" includes="${opengles-template-pattern}"/>
</apply>
</target>
@ -260,7 +268,7 @@
<!-- Generate OpenCL -->
<target name="generate-opencl" depends="generators" description="Generates java and native source for CL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.cl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -270,15 +278,16 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/opencl"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Acontextspecific"/>
<arg value="-Atypemap=org.lwjgl.util.generator.opencl.CLTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="${opencl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.cl}" includes="${opencl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenCL [DEBUG] -->
<target name="generate-opencl-debug" depends="generators" description="Generates debug java and native source for CL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.cl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.GeneratorProcessorFactory"/>
@ -288,16 +297,17 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-d"/>
<arg path="${lwjgl.src.native}/generated/opencl"/>
<arg value="-Abinpath=${lwjgl.bin}"/>
<arg value="-Ageneratechecks"/>
<arg value="-Acontextspecific"/>
<arg value="-Atypemap=org.lwjgl.util.generator.opencl.CLTypeMap"/>
<fileset dir="${lwjgl.src.templates}" includes="${opencl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.cl}" includes="${opencl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenCL capabilities -->
<target name="generate-opencl-capabilities" depends="generators" description="Generates capabilities for CL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.cl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opencl.CLGeneratorProcessorFactory"/>
@ -306,13 +316,13 @@
<arg value="-s"/>
<arg path="${lwjgl.src}/generated"/>
<arg value="-Acontextspecific"/>
<fileset dir="${lwjgl.src.templates}" includes="${opencl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.cl}" includes="${opencl-template-pattern}"/>
</apply>
</target>
<!-- Generate OpenCL capabilities [DEBUG] -->
<target name="generate-opencl-capabilities-debug" depends="generators" description="Generates debug capabilities for CL">
<apply executable="apt" parallel="true">
<apply executable="apt" parallel="true" dir="${lwjgl.src.templates.cl}" relative="true">
<arg value="-nocompile"/>
<arg value="-factory"/>
<arg value="org.lwjgl.util.generator.opencl.CLGeneratorProcessorFactory"/>
@ -322,7 +332,7 @@
<arg path="${lwjgl.src}/generated"/>
<arg value="-Ageneratechecks"/>
<arg value="-Acontextspecific"/>
<fileset dir="${lwjgl.src.templates}" includes="${opencl-template-pattern}"/>
<fileset dir="${lwjgl.src.templates.cl}" includes="${opencl-template-pattern}"/>
</apply>
</target>
</project>

View File

@ -45,6 +45,8 @@ final class CallbackUtil {
private static final Map<ContextCapabilities, Long> contextUserParamsARB = new HashMap<ContextCapabilities, Long>();
/** Context -> Long */
private static final Map<ContextCapabilities, Long> contextUserParamsAMD = new HashMap<ContextCapabilities, Long>();
/** Context -> Long */
private static final Map<ContextCapabilities, Long> contextUserParamsKHR = new HashMap<ContextCapabilities, Long>();
private CallbackUtil() {}
@ -115,6 +117,10 @@ final class CallbackUtil {
userParam = contextUserParamsAMD.remove(caps);
if ( userParam != null )
deleteGlobalRef(userParam);
userParam = contextUserParamsKHR.remove(caps);
if ( userParam != null )
deleteGlobalRef(userParam);
}
// --------- [ ARB_debug_output ] ---------
@ -157,4 +163,24 @@ final class CallbackUtil {
registerContextCallback(userParam, contextUserParamsAMD);
}
// --------- [ KHR_debug ] ---------
/**
* Returns the memory address of the native function we pass to glDebugMessageCallback.
*
* @return the callback function address
*/
static native long getDebugCallbackKHR();
/**
* Associates the current OpenGL context with the specified global reference. If there
* is no context current, the global reference is deleted and an exception is thrown.
* Any previous callback registrations will be cleared.
*
* @param userParam the global reference pointer
*/
static void registerContextCallbackKHR(final long userParam) {
registerContextCallback(userParam, contextUserParamsKHR);
}
}

View File

@ -63,11 +63,13 @@ public final class ContextAttribs {
// Same values for GLX & WGL
private static final int CONTEXT_ES2_PROFILE_BIT_EXT = 0x00000004;
private static final int CONTEXT_ROBUST_ACCESS_BIT_ARB = 0x00000004;
private static final int CONTEXT_ROBUST_ACCESS_BIT_ARB = 0x00000004;
private static final int CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256;
private static final int
NO_RESET_NOTIFICATION_ARB = 0x8261,
LOSE_CONTEXT_ON_RESET_ARB = 0x8252;
NO_RESET_NOTIFICATION_ARB = 0x8261,
LOSE_CONTEXT_ON_RESET_ARB = 0x8252;
private static final int CONTEXT_RESET_ISOLATION_BIT_ARB = 0x00000008;
private int majorVersion;
private int minorVersion;
@ -83,6 +85,7 @@ public final class ContextAttribs {
private boolean profileES;
private boolean loseContextOnReset;
private boolean contextResetIsolation;
public ContextAttribs() {
this(1, 0);
@ -91,7 +94,7 @@ public final class ContextAttribs {
public ContextAttribs(final int majorVersion, final int minorVersion) {
if ( majorVersion < 0 || 4 < majorVersion ||
minorVersion < 0 ||
(majorVersion == 4 && 2 < minorVersion) ||
(majorVersion == 4 && 3 < minorVersion) ||
(majorVersion == 3 && 3 < minorVersion) ||
(majorVersion == 2 && 1 < minorVersion) ||
(majorVersion == 1 && 5 < minorVersion) )
@ -241,6 +244,15 @@ public final class ContextAttribs {
return attribs;
}
public ContextAttribs withContextResetIsolation(final boolean contextResetIsolation) {
if ( contextResetIsolation == this.contextResetIsolation )
return this;
final ContextAttribs attribs = new ContextAttribs(this);
attribs.contextResetIsolation = contextResetIsolation;
return attribs;
}
private static ContextAttribsImplementation getImplementation() {
switch ( LWJGLUtil.getPlatform() ) {
case LWJGLUtil.PLATFORM_LINUX:
@ -272,6 +284,8 @@ public final class ContextAttribs {
flags |= implementation.getForwardCompatibleBit();
if ( robustAccess )
flags |= CONTEXT_ROBUST_ACCESS_BIT_ARB;
if ( contextResetIsolation )
flags |= CONTEXT_RESET_ISOLATION_BIT_ARB;
if ( 0 < flags )
attribCount++;
@ -285,6 +299,9 @@ public final class ContextAttribs {
if ( 0 < profileMask )
attribCount++;
if ( loseContextOnReset )
attribCount++;
if ( attribCount == 0 )
return null;

View File

@ -0,0 +1,205 @@
/*
* Copyright (c) 2002-2008 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.PointerWrapperAbstract;
/**
* Instances of this class are needed to use the callback functionality of the KHR_debug extension.
* Users of this class may provide implementations of the {@code Handler} interface to receive notifications.
* The same {@code Handler} instance may be used by different contexts but it is not recommended.
* Handler notifications are synchronized.
*
* @author Spasi
*/
public final class KHRDebugCallback extends PointerWrapperAbstract {
/** Severity levels. */
private static final int
GL_DEBUG_SEVERITY_HIGH = 0x9146,
GL_DEBUG_SEVERITY_MEDIUM = 0x9147,
GL_DEBUG_SEVERITY_LOW = 0x9148,
GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B;
/** Sources. */
private static final int
GL_DEBUG_SOURCE_API = 0x8246,
GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247,
GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248,
GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249,
GL_DEBUG_SOURCE_APPLICATION = 0x824A,
GL_DEBUG_SOURCE_OTHER = 0x824B;
/** Types. */
private static final int
GL_DEBUG_TYPE_ERROR = 0x824C,
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E,
GL_DEBUG_TYPE_PORTABILITY = 0x824F,
GL_DEBUG_TYPE_PERFORMANCE = 0x8250,
GL_DEBUG_TYPE_OTHER = 0x8251,
GL_DEBUG_TYPE_MARKER = 0x8268;
private static final long CALLBACK_POINTER;
static {
long pointer = 0;
try {
// Call reflectively so that we can compile this class for the Generator.
pointer = (Long)Class.forName("org.lwjgl.opengl.CallbackUtil").getDeclaredMethod("getDebugCallbackKHR").invoke(null);
} catch (Exception e) {
// ignore
}
CALLBACK_POINTER = pointer;
}
private final Handler handler;
/**
* Creates an KHRebugCallback with a default callback handler.
* The default handler will simply print the message on System.err.
*/
public KHRDebugCallback() {
this(new Handler() {
public void handleMessage(final int source, final int type, final int id, final int severity, final String message) {
System.err.println("[LWJGL] KHR_debug message");
System.err.println("\tID: " + id);
String description;
switch ( source ) {
case GL_DEBUG_SOURCE_API:
description = "API";
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
description = "WINDOW SYSTEM";
break;
case GL_DEBUG_SOURCE_SHADER_COMPILER:
description = "SHADER COMPILER";
break;
case GL_DEBUG_SOURCE_THIRD_PARTY:
description = "THIRD PARTY";
break;
case GL_DEBUG_SOURCE_APPLICATION:
description = "APPLICATION";
break;
case GL_DEBUG_SOURCE_OTHER:
description = "OTHER";
break;
default:
description = "Unknown (" + Integer.toHexString(source) + ")";
}
System.err.println("\tSource: " + description);
switch ( type ) {
case GL_DEBUG_TYPE_ERROR:
description = "ERROR";
break;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
description = "DEPRECATED BEHAVIOR";
break;
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
description = "UNDEFINED BEHAVIOR";
break;
case GL_DEBUG_TYPE_PORTABILITY:
description = "PORTABILITY";
break;
case GL_DEBUG_TYPE_PERFORMANCE:
description = "PERFORMANCE";
break;
case GL_DEBUG_TYPE_OTHER:
description = "OTHER";
break;
case GL_DEBUG_TYPE_MARKER:
description = "MARKER";
break;
default:
description = "Unknown (" + Integer.toHexString(source) + ")";
}
System.err.println("\tType: " + description);
switch ( severity ) {
case GL_DEBUG_SEVERITY_HIGH:
description = "HIGH";
break;
case GL_DEBUG_SEVERITY_MEDIUM:
description = "MEDIUM";
break;
case GL_DEBUG_SEVERITY_LOW:
description = "LOW";
break;
case GL_DEBUG_SEVERITY_NOTIFICATION:
description = "NOTIFICATION";
break;
default:
description = "Unknown (" + Integer.toHexString(source) + ")";
}
System.err.println("\tSeverity: " + description);
System.err.println("\tMessage: " + message);
}
});
}
/**
* Creates an ARBDebugOutputCallback with the specified callback handler.
* The handler's {@code handleMessage} method will be called whenever
* debug output is generated by the GL.
*
* @param handler the callback handler
*/
public KHRDebugCallback(final Handler handler) {
super(CALLBACK_POINTER);
this.handler = handler;
}
Handler getHandler() {
return handler;
}
/** Implementations of this interface can be used to receive ARB_debug_output notifications. */
public interface Handler {
/**
* This method will be called when an ARB_debug_output message is generated.
*
* @param id the message ID
* @param source the message source
* @param type the message type
* @param severity the message severity
* @param message the string representation of the message.
*/
void handleMessage(int source, int type, int id, int severity, String message);
}
}

View File

@ -39,6 +39,7 @@ import org.lwjgl.PointerBuffer;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.nio.LongBuffer;
/**
* Utility class for OpenGL ES API calls.
@ -143,6 +144,8 @@ final class APIUtil {
static IntBuffer getBufferInt() { return buffersTL.get().ints; }
static LongBuffer getBufferLong() { return buffersTL.get().longs; }
static FloatBuffer getBufferFloat() { return buffersTL.get().floats; }
static IntBuffer getLengths() {
@ -312,10 +315,12 @@ final class APIUtil {
private static class Buffers {
final IntBuffer ints;
final LongBuffer longs;
final FloatBuffer floats;
Buffers() {
ints = BufferUtils.createIntBuffer(BUFFERS_SIZE);
longs = BufferUtils.createLongBuffer(BUFFERS_SIZE);
floats = BufferUtils.createFloatBuffer(BUFFERS_SIZE);
}

View File

@ -0,0 +1,134 @@
/*
* Copyright (c) 2002-2010 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
import java.util.HashMap;
import java.util.Map;
/**
* Utility class that handles OpenGL API callbacks.
*
* @author Spasi
*/
final class CallbackUtil {
/** Context -> Long */
private static final Map<ContextCapabilities, Long> contextUserParamsKHR = new HashMap<ContextCapabilities, Long>();
private CallbackUtil() {}
/**
* Creates a new global reference to the specified Object.
*
* @param obj the Object
*
* @return the GlobalRef memory address or 0 if the Object is null.
*/
static long createGlobalRef(final Object obj) {
return obj == null ? 0 : ncreateGlobalRef(obj);
}
/**
* Creates a new global reference to the specified Object.
*
* @param obj the Object
*
* @return the GlobalRef memory address.
*/
private static native long ncreateGlobalRef(Object obj);
/**
* Deletes a global reference.
*
* @param ref the GlobalRef memory address.
*/
private static native void deleteGlobalRef(long ref);
// --------- [ XXX_debug_output ] ---------
/**
* Associates the current OpenGL context with the specified global reference. If there
* is no context current, the global reference is deleted and an exception is thrown.
* Any previous callback registrations will be cleared.
*
* @param userParam the global reference pointer
*/
private static void registerContextCallback(final long userParam, final Map<ContextCapabilities, Long> contextUserData) {
ContextCapabilities caps = GLContext.getCapabilities();
if ( caps == null ) {
deleteGlobalRef(userParam);
throw new IllegalStateException("No context is current.");
}
final Long userParam_old = contextUserData.remove(caps);
if ( userParam_old != null )
deleteGlobalRef(userParam_old);
if ( userParam != 0 )
contextUserData.put(caps, userParam);
}
/**
* Releases references to any callbacks associated with the specified GL context.
*
* @param context the Context to unregister
*/
static void unregisterCallbacks(final Object context) {
// TODO: This is never called for custom contexts. Need to fix for LWJGL 3.0
final ContextCapabilities caps = GLContext.getCapabilities();
Long userParam = contextUserParamsKHR.remove(caps);
if ( userParam != null )
deleteGlobalRef(userParam);
}
// --------- [ KHR_debug ] ---------
/**
* Returns the memory address of the native function we pass to glDebugMessageCallback.
*
* @return the callback function address
*/
static native long getDebugCallbackKHR();
/**
* Associates the current OpenGL context with the specified global reference. If there
* is no context current, the global reference is deleted and an exception is thrown.
* Any previous callback registrations will be cleared.
*
* @param userParam the global reference pointer
*/
static void registerContextCallbackKHR(final long userParam) {
registerContextCallback(userParam, contextUserParamsKHR);
}
}

View File

@ -39,7 +39,7 @@ import static org.lwjgl.opengles.EGL.*;
/**
* This class represents the context attributes passed to EGL's eglCreateContext.
* The only attribute allowed is EGL_CONTEXT_CLIENT_VERSION and it must be 2 (LWJGL does not support GLES 1.x).
* The only attribute allowed is EGL_CONTEXT_CLIENT_VERSION and it must be 2 or 3 (LWJGL does not support GLES 1.x).
*/
public final class ContextAttribs {
@ -50,7 +50,7 @@ public final class ContextAttribs {
}
public ContextAttribs(final int version) {
if ( version != 2 )
if ( 3 < version )
throw new IllegalArgumentException("Invalid OpenGL ES version specified: " + version);
this.version = version;

View File

@ -0,0 +1,238 @@
/*
* Copyright 2002-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.lwjgl.opengles;
import java.util.Iterator;
/**
* A hash map using primitive ints as keys rather than objects.
*
* @author Justin Couch
* @author Alex Chaffee (alex@apache.org)
* @author Stephen Colebourne
* @author Nathan Sweet
*/
final class FastIntMap<V> implements Iterable<FastIntMap.Entry<V>> {
private Entry[] table;
private int size, mask, capacity, threshold;
/** Same as: FastIntMap(16, 0.75f); */
FastIntMap() {
this(16, 0.75f);
}
/** Same as: FastIntMap(initialCapacity, 0.75f); */
FastIntMap(int initialCapacity) {
this(initialCapacity, 0.75f);
}
FastIntMap(int initialCapacity, float loadFactor) {
if ( initialCapacity > 1 << 30 ) throw new IllegalArgumentException("initialCapacity is too large.");
if ( initialCapacity < 0 ) throw new IllegalArgumentException("initialCapacity must be greater than zero.");
if ( loadFactor <= 0 ) throw new IllegalArgumentException("initialCapacity must be greater than zero.");
capacity = 1;
while ( capacity < initialCapacity )
capacity <<= 1;
this.threshold = (int)(capacity * loadFactor);
this.table = new Entry[capacity];
this.mask = capacity - 1;
}
private int index(final int key) {
return index(key, mask);
}
private static int index(final int key, final int mask) {
return key & mask;
}
public V put(int key, V value) {
final Entry<V>[] table = this.table;
int index = index(key);
// Check if key already exists.
for ( Entry<V> e = table[index]; e != null; e = e.next ) {
if ( e.key != key ) continue;
V oldValue = e.value;
e.value = value;
return oldValue;
}
table[index] = new Entry<V>(key, value, table[index]);
if ( size++ >= threshold )
rehash(table);
return null;
}
private void rehash(final Entry<V>[] table) {
final int newCapacity = 2 * capacity;
final int newMask = newCapacity - 1;
final Entry<V>[] newTable = new Entry[newCapacity];
for ( int i = 0, index; i < table.length; i++ ) {
Entry<V> e = table[i];
if ( e == null ) continue;
do {
final Entry<V> next = e.next;
index = index(e.key, newMask);
e.next = newTable[index];
newTable[index] = e;
e = next;
} while ( e != null );
}
this.table = newTable;
capacity = newCapacity;
mask = newMask;
threshold *= 2;
}
public V get(int key) {
final int index = index(key);
for ( Entry<V> e = table[index]; e != null; e = e.next )
if ( e.key == key ) return e.value;
return null;
}
public boolean containsValue(Object value) {
final Entry<V>[] table = this.table;
for ( int i = table.length - 1; i >= 0; i-- )
for ( Entry<V> e = table[i]; e != null; e = e.next )
if ( e.value.equals(value) ) return true;
return false;
}
public boolean containsKey(int key) {
final int index = index(key);
for ( Entry<V> e = table[index]; e != null; e = e.next )
if ( e.key == key ) return true;
return false;
}
public V remove(int key) {
final int index = index(key);
Entry<V> prev = table[index];
Entry<V> e = prev;
while ( e != null ) {
Entry<V> next = e.next;
if ( e.key == key ) {
size--;
if ( prev == e )
table[index] = next;
else
prev.next = next;
return e.value;
}
prev = e;
e = next;
}
return null;
}
public int size() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
public void clear() {
final Entry<V>[] table = this.table;
for ( int index = table.length - 1; index >= 0; index-- )
table[index] = null;
size = 0;
}
public EntryIterator iterator() {
return new EntryIterator();
}
public class EntryIterator implements Iterator<Entry<V>> {
private int nextIndex;
private Entry<V> current;
EntryIterator() {
reset();
}
public void reset() {
current = null;
// Find first bucket.
final Entry<V>[] table = FastIntMap.this.table;
int i;
for ( i = table.length - 1; i >= 0; i-- )
if ( table[i] != null ) break;
nextIndex = i;
}
public boolean hasNext() {
if ( nextIndex >= 0 ) return true;
Entry e = current;
return e != null && e.next != null;
}
public Entry<V> next() {
// Next entry in current bucket.
Entry<V> e = current;
if ( e != null ) {
e = e.next;
if ( e != null ) {
current = e;
return e;
}
}
// Use the bucket at nextIndex and find the next nextIndex.
final Entry<V>[] table = FastIntMap.this.table;
int i = nextIndex;
e = current = table[i];
while ( --i >= 0 )
if ( table[i] != null ) break;
nextIndex = i;
return e;
}
public void remove() {
FastIntMap.this.remove(current.key);
}
}
static final class Entry<T> {
final int key;
T value;
Entry<T> next;
Entry(int key, T value, Entry<T> next) {
this.key = key;
this.value = value;
this.next = next;
}
public int getKey() {
return key;
}
public T getValue() {
return value;
}
}
}

View File

@ -86,6 +86,30 @@ class GLChecks {
throw new OpenGLException("Cannot use offsets when Element Array Buffer Object is disabled");
}
/** Helper method to ensure that pixel pack buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */
static void ensurePackPBOdisabled() {
if ( LWJGLUtil.CHECKS && StateTracker.getTracker().pixelPackBuffer != 0 )
throw new OpenGLException("Cannot use Buffers when Pixel Pack Buffer Object is enabled");
}
/** Helper method to ensure that pixel pack buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */
static void ensurePackPBOenabled() {
if ( LWJGLUtil.CHECKS && StateTracker.getTracker().pixelPackBuffer == 0 )
throw new OpenGLException("Cannot use offsets when Pixel Pack Buffer Object is disabled");
}
/** Helper method to ensure that pixel unpack buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */
static void ensureUnpackPBOdisabled() {
if ( LWJGLUtil.CHECKS && StateTracker.getTracker().pixelUnpackBuffer != 0 )
throw new OpenGLException("Cannot use Buffers when Pixel Unpack Buffer Object is enabled");
}
/** Helper method to ensure that pixel unpack buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */
static void ensureUnpackPBOenabled() {
if ( LWJGLUtil.CHECKS && StateTracker.getTracker().pixelUnpackBuffer == 0 )
throw new OpenGLException("Cannot use offsets when Pixel Unpack Buffer Object is disabled");
}
/**
* Calculate the storage required for an image in elements
*

View File

@ -180,6 +180,8 @@ public final class GLContext {
}
// ----------------------[ 2.X ]----------------------
if ( 3 <= majorVersion )
supported_extensions.add("OpenGLES30");
if ( 2 <= majorVersion )
supported_extensions.add("OpenGLES20");

View File

@ -0,0 +1,47 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
import org.lwjgl.PointerWrapperAbstract;
/**
* This class is a wrapper around a GLsync pointer.
*
* @author spasi <spasi@users.sourceforge.net>
*/
public final class GLSync extends PointerWrapperAbstract {
GLSync(final long sync) {
super(sync);
}
}

View File

@ -0,0 +1,205 @@
/*
* Copyright (c) 2002-2008 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
import org.lwjgl.PointerWrapperAbstract;
/**
* Instances of this class are needed to use the callback functionality of the KHR_debug extension.
* Users of this class may provide implementations of the {@code Handler} interface to receive notifications.
* The same {@code Handler} instance may be used by different contexts but it is not recommended.
* Handler notifications are synchronized.
*
* @author Spasi
*/
public final class KHRDebugCallback extends PointerWrapperAbstract {
/** Severity levels. */
private static final int
GL_DEBUG_SEVERITY_HIGH = 0x9146,
GL_DEBUG_SEVERITY_MEDIUM = 0x9147,
GL_DEBUG_SEVERITY_LOW = 0x9148,
GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B;
/** Sources. */
private static final int
GL_DEBUG_SOURCE_API = 0x8246,
GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247,
GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248,
GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249,
GL_DEBUG_SOURCE_APPLICATION = 0x824A,
GL_DEBUG_SOURCE_OTHER = 0x824B;
/** Types. */
private static final int
GL_DEBUG_TYPE_ERROR = 0x824C,
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E,
GL_DEBUG_TYPE_PORTABILITY = 0x824F,
GL_DEBUG_TYPE_PERFORMANCE = 0x8250,
GL_DEBUG_TYPE_OTHER = 0x8251,
GL_DEBUG_TYPE_MARKER = 0x8268;
private static final long CALLBACK_POINTER;
static {
long pointer = 0;
try {
// Call reflectively so that we can compile this class for the Generator.
pointer = (Long)Class.forName("org.lwjgl.opengles.CallbackUtil").getDeclaredMethod("getDebugCallbackKHR").invoke(null);
} catch (Exception e) {
// ignore
}
CALLBACK_POINTER = pointer;
}
private final Handler handler;
/**
* Creates an KHRebugCallback with a default callback handler.
* The default handler will simply print the message on System.err.
*/
public KHRDebugCallback() {
this(new Handler() {
public void handleMessage(final int source, final int type, final int id, final int severity, final String message) {
System.err.println("[LWJGL] KHR_debug message");
System.err.println("\tID: " + id);
String description;
switch ( source ) {
case GL_DEBUG_SOURCE_API:
description = "API";
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
description = "WINDOW SYSTEM";
break;
case GL_DEBUG_SOURCE_SHADER_COMPILER:
description = "SHADER COMPILER";
break;
case GL_DEBUG_SOURCE_THIRD_PARTY:
description = "THIRD PARTY";
break;
case GL_DEBUG_SOURCE_APPLICATION:
description = "APPLICATION";
break;
case GL_DEBUG_SOURCE_OTHER:
description = "OTHER";
break;
default:
description = "Unknown (" + Integer.toHexString(source) + ")";
}
System.err.println("\tSource: " + description);
switch ( type ) {
case GL_DEBUG_TYPE_ERROR:
description = "ERROR";
break;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
description = "DEPRECATED BEHAVIOR";
break;
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
description = "UNDEFINED BEHAVIOR";
break;
case GL_DEBUG_TYPE_PORTABILITY:
description = "PORTABILITY";
break;
case GL_DEBUG_TYPE_PERFORMANCE:
description = "PERFORMANCE";
break;
case GL_DEBUG_TYPE_OTHER:
description = "OTHER";
break;
case GL_DEBUG_TYPE_MARKER:
description = "MARKER";
break;
default:
description = "Unknown (" + Integer.toHexString(source) + ")";
}
System.err.println("\tType: " + description);
switch ( severity ) {
case GL_DEBUG_SEVERITY_HIGH:
description = "HIGH";
break;
case GL_DEBUG_SEVERITY_MEDIUM:
description = "MEDIUM";
break;
case GL_DEBUG_SEVERITY_LOW:
description = "LOW";
break;
case GL_DEBUG_SEVERITY_NOTIFICATION:
description = "NOTIFICATION";
break;
default:
description = "Unknown (" + Integer.toHexString(source) + ")";
}
System.err.println("\tSeverity: " + description);
System.err.println("\tMessage: " + message);
}
});
}
/**
* Creates an ARBDebugOutputCallback with the specified callback handler.
* The handler's {@code handleMessage} method will be called whenever
* debug output is generated by the GL.
*
* @param handler the callback handler
*/
public KHRDebugCallback(final Handler handler) {
super(CALLBACK_POINTER);
this.handler = handler;
}
Handler getHandler() {
return handler;
}
/** Implementations of this interface can be used to receive ARB_debug_output notifications. */
public interface Handler {
/**
* This method will be called when an ARB_debug_output message is generated.
*
* @param id the message ID
* @param source the message source
* @param type the message type
* @param severity the message severity
* @param message the string representation of the message.
*/
void handleMessage(int source, int type, int id, int severity, String message);
}
}

View File

@ -32,8 +32,10 @@
package org.lwjgl.opengles;
import java.nio.Buffer;
import java.nio.IntBuffer;
import static org.lwjgl.opengles.GLES20.*;
import static org.lwjgl.opengles.GLES30.*;
final class StateTracker {
@ -41,9 +43,15 @@ final class StateTracker {
int elementArrayBuffer;
int arrayBuffer;
int pixelPackBuffer;
int pixelUnpackBuffer;
Buffer[] glVertexAttribPointer_buffer;
private final FastIntMap<VAOState> vaoMap = new FastIntMap<VAOState>();
int vertexArrayObject;
StateTracker() {
}
@ -65,7 +73,44 @@ final class StateTracker {
case GL_ELEMENT_ARRAY_BUFFER:
tracker.elementArrayBuffer = buffer;
break;
case GL_PIXEL_PACK_BUFFER:
tracker.pixelPackBuffer = buffer;
break;
case GL_PIXEL_UNPACK_BUFFER:
tracker.pixelUnpackBuffer = buffer;
break;
}
}
static void bindVAO(final int array) {
final FastIntMap<VAOState> vaoMap = tracker.vaoMap;
if ( !vaoMap.containsKey(array) )
vaoMap.put(array, new VAOState());
tracker.vertexArrayObject = array;
}
static void deleteVAO(final IntBuffer arrays) {
for ( int i = arrays.position(); i < arrays.limit(); i++ )
deleteVAO(arrays.get(i));
}
static void deleteVAO(final int array) {
tracker.vaoMap.remove(array);
if ( tracker.vertexArrayObject == array )
tracker.vertexArrayObject = 0;
}
/**
* Simple class to help us track VAO state. Currently
* only ELEMENT_ARRAY_BUFFER_BINDING is tracked, since
* that's the only state we check from tables 6.6-6.9.
*/
private static class VAOState {
int elementArrayBuffer;
}
}

View File

@ -97,22 +97,30 @@ public class GeneratorProcessorFactory implements AnnotationProcessorFactory, Ro
public void process() {
Map<String, String> options = env.getOptions();
String typemap_classname = null;
String bin_path = null;
boolean generate_error_checks = options.containsKey("-Ageneratechecks");
boolean context_specific = options.containsKey("-Acontextspecific");
for ( String k : options.keySet() ) {
if ( !k.startsWith("-A") )
continue;
int delimiter = k.indexOf('=');
if ( delimiter != -1 ) {
if ( k.startsWith("-Atypemap") ) {
typemap_classname = k.substring(delimiter + 1);
} else if ( k.startsWith("-Abinpath") ) {
bin_path = k.substring(delimiter + 1);
}
}
}
if ( typemap_classname == null )
throw new RuntimeException("No TypeMap class name specified with -Atypemap=<class-name>");
if ( bin_path == null )
throw new RuntimeException("No path specified for the bin directory with -Abinpath=<path>");
TypeDeclaration lastFile = null;
try {
long generatorLM = getGeneratorLastModified();
long generatorLM = getGeneratorLastModified(bin_path);
TypeMap type_map = (TypeMap)(Class.forName(typemap_classname).newInstance());
for ( TypeDeclaration typedecl : env.getSpecifiedTypeDeclarations() ) {
lastFile = typedecl;
@ -131,17 +139,17 @@ public class GeneratorProcessorFactory implements AnnotationProcessorFactory, Ro
*
* @return time of the latest change
*/
private static long getGeneratorLastModified() {
long lastModified = getDirectoryLastModified("/bin/org/lwjgl/util/generator");
lastModified = Math.max(lastModified, getDirectoryLastModified("/bin/org/lwjgl/util/generator/openal"));
lastModified = Math.max(lastModified, getDirectoryLastModified("/bin/org/lwjgl/util/generator/opengl"));
lastModified = Math.max(lastModified, getDirectoryLastModified("/bin/org/lwjgl/util/generator/opencl"));
private static long getGeneratorLastModified(final String bin_path) {
long lastModified = getDirectoryLastModified(bin_path, "/org/lwjgl/util/generator");
lastModified = Math.max(lastModified, getDirectoryLastModified(bin_path, "/org/lwjgl/util/generator/openal"));
lastModified = Math.max(lastModified, getDirectoryLastModified(bin_path, "/org/lwjgl/util/generator/opengl"));
lastModified = Math.max(lastModified, getDirectoryLastModified(bin_path, "/org/lwjgl/util/generator/opencl"));
return lastModified;
}
private static long getDirectoryLastModified(final String path) {
final File pck = new File(System.getProperty("user.dir") + path);
private static long getDirectoryLastModified(final String bin_path, final String path) {
final File pck = new File(bin_path + path);
if ( !pck.exists() || !pck.isDirectory() )
return Long.MAX_VALUE;

View File

@ -269,15 +269,15 @@ public class GeneratorVisitor extends SimpleDeclarationVisitor {
generateJavaSource(d, java_writer);
if ( methods.size() > 0 ) {
boolean hasNative = false;
boolean noNative = true;
for ( final MethodDeclaration method : methods ) {
Alternate alt_annotation = method.getAnnotation(Alternate.class);
if ( (alt_annotation == null || alt_annotation.nativeAlt()) && method.getAnnotation(Reuse.class) == null ) {
hasNative = true;
noNative = false;
break;
}
}
if ( !hasNative )
if ( noNative )
return;
final String outputPath = env.getOptions().get("-d") + '/' + Utils.getNativeQualifiedName(Utils.getQualifiedClassName(d));

View File

@ -196,7 +196,15 @@ public class NativeTypeTranslator implements TypeVisitor {
}
public void visitInterfaceType(InterfaceType t) {
throw new RuntimeException(t + " is not allowed");
// See ARB_debug_label.glObjectPtrLabel
Class<?> c = getClassFromType(t);
if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(c) ) {
native_types = new ArrayList<Class>();
native_types.add(PointerWrapper.class);
is_indirect = false;
} else
throw new RuntimeException(t + " is not allowed");
}
// Check if the annotation is itself annotated with a certain annotation type

View File

@ -107,7 +107,11 @@ class SignatureTranslator implements TypeVisitor {
}
public void visitInterfaceType(InterfaceType t) {
throw new RuntimeException(t + " is not allowed");
Class type = NativeTypeTranslator.getClassFromType(t);
if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) )
signature.append("J");
else
throw new RuntimeException(t + " is not allowed");
}
public void visitPrimitiveType(PrimitiveType t) {

View File

@ -152,7 +152,7 @@ public class GLESGeneratorProcessorFactory implements AnnotationProcessorFactory
}
for ( TypeDeclaration typedecl : interface_decls ) {
InterfaceDeclaration interface_decl = (InterfaceDeclaration)typedecl;
if ( interface_decl.getSimpleName().startsWith("GLES") )
if ( "GLES20".equals(interface_decl.getSimpleName()) )
continue;
GLESCapabilitiesGenerator.generateInitStubs(writer, interface_decl, context_specific);
}

View File

@ -42,6 +42,7 @@ package org.lwjgl.util.generator.opengl;
*/
import org.lwjgl.util.generator.NativeTypeTranslator;
import org.lwjgl.util.generator.PointerWrapper;
import org.lwjgl.util.generator.Signedness;
import org.lwjgl.util.generator.TypeMap;
@ -80,6 +81,8 @@ public class GLESTypeMap implements TypeMap {
native_types_to_primitive.put(GLvoid.class, PrimitiveType.Kind.BYTE);
native_types_to_primitive.put(EGLint64NV.class, PrimitiveType.Kind.LONG);
native_types_to_primitive.put(EGLuint64NV.class, PrimitiveType.Kind.LONG);
native_types_to_primitive.put(GLint64.class, PrimitiveType.Kind.LONG);
native_types_to_primitive.put(GLuint64.class, PrimitiveType.Kind.LONG);
}
public PrimitiveType.Kind getPrimitiveTypeFromNativeType(Class<? extends Annotation> native_type) {
@ -131,7 +134,9 @@ public class GLESTypeMap implements TypeMap {
}
public String translateAnnotation(Class annotation_type) {
if ( annotation_type.equals(GLuint.class) || annotation_type.equals(GLint.class) )
if ( annotation_type.equals(GLuint64.class) || annotation_type.equals(GLint64.class) )
return "i64";
else if ( annotation_type.equals(GLuint.class) || annotation_type.equals(GLint.class) )
return "i";
else if ( annotation_type.equals(GLushort.class) || annotation_type.equals(GLshort.class) )
return "s";
@ -167,6 +172,9 @@ public class GLESTypeMap implements TypeMap {
case BOOLEAN:
type = GLboolean.class;
break;
case LONG:
type = GLint64.class;
break;
default:
throw new RuntimeException(kind + " is not allowed");
}
@ -199,14 +207,14 @@ public class GLESTypeMap implements TypeMap {
else if ( type.equals(ShortBuffer.class) )
return new Class[] { GLhalf.class, GLshort.class, GLushort.class };
else if ( type.equals(LongBuffer.class) )
return new Class[] { EGLint64NV.class, EGLuint64NV.class };
return new Class[] { GLint64.class, GLuint64.class, EGLint64NV.class, EGLuint64NV.class };
else
return new Class[] { };
}
private static Class[] getValidPrimitiveTypes(Class type) {
if ( type.equals(long.class) )
return new Class[] { GLintptr.class, GLsizeiptr.class, EGLuint64NV.class, EGLint64NV.class };
return new Class[] { GLintptr.class, GLsizeiptr.class, GLint64.class, GLuint64.class, EGLuint64NV.class, EGLint64NV.class };
else if ( type.equals(int.class) )
return new Class[] { GLbitfield.class, GLenum.class, GLint.class, GLuint.class, GLsizei.class };
else if ( type.equals(float.class) )
@ -244,7 +252,7 @@ public class GLESTypeMap implements TypeMap {
else if ( String.class.equals(type) )
valid_types = new Class[] { GLubyte.class };
else if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) )
valid_types = new Class[] { org.lwjgl.PointerWrapper.class };
valid_types = new Class[] { PointerWrapper.class };
else if ( void.class.equals(type) )
valid_types = new Class[] { GLreturn.class };
else
@ -253,6 +261,8 @@ public class GLESTypeMap implements TypeMap {
}
public Class<? extends Annotation> getInverseType(Class<? extends Annotation> type) {
if ( GLuint64.class.equals(type) )
return GLint64.class;
if ( GLuint.class.equals(type) )
return GLint.class;
else if ( GLint.class.equals(type) )

View File

@ -95,6 +95,9 @@ typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum sever
/* ARB_debug_output callback function pointer. */
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam);
/* KHR_debug callback function pointer. */
typedef void (APIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam);
/* initializes everything, call this right after the rc is created. the function returns true if successful */
extern bool extgl_Open(JNIEnv *env);
extern void extgl_Close(void);

View File

@ -31,7 +31,7 @@
*/
/**
* JNI implementation of the AMD_debug_output function callback.
* JNI implementation of the ARB/AMD_debug_output & KHR_debug function callbacks.
*
* @author Spasi
*/
@ -43,6 +43,7 @@
static jmethodID debugOutputCallbackARBJ;
static jmethodID debugOutputCallbackAMDJ;
static jmethodID debugCallbackKHRJ;
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_CallbackUtil_ncreateGlobalRef(JNIEnv *env, jclass clazz, jobject obj) {
return (jlong)(intptr_t)(*env)->NewGlobalRef(env, obj);
@ -109,4 +110,34 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_CallbackUtil_getDebugOutputCallbac
}
return (jlong)(intptr_t)&debugOutputCallbackAMD;
}
// ----------------- [ KHR_debug ] -----------------
static void APIENTRY debugCallbackKHR(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam) {
JNIEnv *env = attachCurrentThread();
if ( env != NULL && !(*env)->ExceptionOccurred(env) && debugCallbackKHRJ != NULL ) {
(*env)->CallVoidMethod(env, (jobject)userParam, debugCallbackKHRJ,
(jint)source,
(jint)type,
(jint)id,
(jint)severity,
NewStringNativeWithLength(env, message, length)
);
}
detachCurrentThread();
}
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_CallbackUtil_getDebugCallbackKHR(JNIEnv *env, jclass clazz) {
// Cache the callback methodID
jclass callbackClass;
if ( debugCallbackKHRJ == NULL ) {
callbackClass = (*env)->FindClass(env, "org/lwjgl/opengl/KHRDebugCallback$Handler");
if ( callbackClass != NULL )
debugCallbackKHRJ = (*env)->GetMethodID(env, callbackClass, "handleMessage", "(IIIILjava/lang/String;)V");
}
return (jlong)(intptr_t)&debugCallbackKHRJ;
}

View File

@ -78,6 +78,9 @@ THE POSSIBILITY OF SUCH DAMAGE.
#include "extgl_types.h"
/* KHR_debug callback function pointer. */
typedef void (APIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam);
/* initializes everything, call this right after the rc is created. the function returns true if successful */
extern bool extgl_Open(JNIEnv *env);
extern void extgl_Close(void);

View File

@ -54,6 +54,12 @@ typedef khronos_float_t GLfloat;
typedef khronos_float_t GLclampf;
typedef khronos_int32_t GLfixed;
// OpenGL ES 3.0
typedef unsigned short GLhalf;
typedef khronos_int64_t GLint64;
typedef khronos_uint64_t GLuint64;
typedef struct __GLsync *GLsync;
/* GL types for handling large vertex buffer objects */
typedef khronos_intptr_t GLintptr;
typedef khronos_ssize_t GLsizeiptr;

View File

@ -0,0 +1,82 @@
/*
* Copyright (c) 2002-2008 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* JNI implementation of the ARB/AMD_debug_output & KHR_debug function callbacks.
*
* @author Spasi
*/
#include <jni.h>
#include "common_tools.h"
#include "extgl.h"
#include "org_lwjgl_opengles_CallbackUtil.h"
static jmethodID debugCallbackKHRJ;
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_CallbackUtil_ncreateGlobalRef(JNIEnv *env, jclass clazz, jobject obj) {
return (jlong)(intptr_t)(*env)->NewGlobalRef(env, obj);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CallbackUtil_deleteGlobalRef(JNIEnv *env, jclass clazz, jlong globalRef) {
(*env)->DeleteGlobalRef(env, (jobject)(intptr_t)globalRef);
}
// ----------------- [ KHR_debug ] -----------------
static void APIENTRY debugCallbackKHR(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam) {
JNIEnv *env = attachCurrentThread();
if ( env != NULL && !(*env)->ExceptionOccurred(env) && debugCallbackKHRJ != NULL ) {
(*env)->CallVoidMethod(env, (jobject)userParam, debugCallbackKHRJ,
(jint)source,
(jint)type,
(jint)id,
(jint)severity,
NewStringNativeWithLength(env, message, length)
);
}
detachCurrentThread();
}
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_CallbackUtil_getDebugCallbackKHR(JNIEnv *env, jclass clazz) {
// Cache the callback methodID
jclass callbackClass;
if ( debugCallbackKHRJ == NULL ) {
callbackClass = (*env)->FindClass(env, "org/lwjgl/opengles/KHRDebugCallback$Handler");
if ( callbackClass != NULL )
debugCallbackKHRJ = (*env)->GetMethodID(env, callbackClass, "handleMessage", "(IIIILjava/lang/String;)V");
}
return (jlong)(intptr_t)&debugCallbackKHRJ;
}

View File

@ -31,7 +31,7 @@
*/
/**
* JNI implementation of the AMD_debug_output function callback.
* JNI implementation of the OpenCL function callbacks.
*
* @author Spasi
*/

View File

@ -36,6 +36,7 @@ import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLsizei;
import org.lwjgl.util.generator.opengl.GLvoid;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import com.sun.mirror.type.PrimitiveType;
@ -43,13 +44,26 @@ import com.sun.mirror.type.PrimitiveType;
public interface AMD_multi_draw_indirect {
void glMultiDrawArraysIndirectAMD(@GLenum int mode,
@BufferObject(BufferKind.IndirectBO) @Check("4 * primcount") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@BufferObject(BufferKind.IndirectBO) @Check("4 * primcount") @Const @GLvoid ByteBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Alternate("glMultiDrawArraysIndirectAMD")
void glMultiDrawArraysIndirectAMD(@GLenum int mode,
@BufferObject(BufferKind.IndirectBO) @Check("4 * primcount") @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
void glMultiDrawElementsIndirectAMD(@GLenum int mode,
@GLenum int type,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @Const @GLvoid ByteBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Alternate("glMultiDrawElementsIndirectAMD")
void glMultiDrawElementsIndirectAMD(@GLenum int mode,
@GLenum int type,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);

View File

@ -0,0 +1,60 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_ES3_compatibility {
/** Accepted by the &lt;internalformat&gt; parameter of CompressedTexImage2D */
int GL_COMPRESSED_RGB8_ETC2 = 0x9274,
GL_COMPRESSED_SRGB8_ETC2 = 0x9275,
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276,
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277,
GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278,
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279,
GL_COMPRESSED_R11_EAC = 0x9270,
GL_COMPRESSED_SIGNED_R11_EAC = 0x9271,
GL_COMPRESSED_RG11_EAC = 0x9272,
GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273;
/** Accepted by the &lt;target&gt; parameter of Enable and Disable: */
int GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69;
/**
* Accepted by the &lt;target&gt; parameter of BeginQuery, EndQuery,
* GetQueryIndexediv and GetQueryiv:
*/
int GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;
/** Accepted by the &lt;value&gt; parameter of the GetInteger* functions: */
int GL_MAX_ELEMENT_INDEX = 0x8D6B;
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_arrays_of_arrays {
}

View File

@ -0,0 +1,74 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
@Dependent
public interface ARB_clear_buffer_object {
@Reuse("GL43")
void glClearBufferData(@GLenum int target,
@GLenum int internalformat,
@GLenum int format,
@GLenum int type,
@Check("1") @Const @GLvoid ByteBuffer data);
@Reuse("GL43")
void glClearBufferSubData(@GLenum int target,
@GLenum int internalformat,
@GLintptr long offset,
@AutoSize("data") @GLsizeiptr long size,
@GLenum int format,
@GLenum int type,
@Const @GLvoid ByteBuffer data);
@Dependent("GL_EXT_direct_state_access")
void glClearNamedBufferDataEXT(@GLuint int buffer,
@GLenum int internalformat,
@GLenum int format,
@GLenum int type,
@Check("1") @Const @GLvoid ByteBuffer data);
@Dependent("GL_EXT_direct_state_access")
void glClearNamedBufferSubDataEXT(@GLuint int buffer,
@GLenum int internalformat,
@GLintptr long offset,
@AutoSize("data") @GLsizeiptr long size,
@GLenum int format,
@GLenum int type,
@Const @GLvoid ByteBuffer data);
}

View File

@ -0,0 +1,101 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLintptr;
import org.lwjgl.util.generator.opengl.GLuint;
public interface ARB_compute_shader {
/**
* Accepted by the &lt;type&gt; parameter of CreateShader and returned in the
* &lt;params&gt; parameter by GetShaderiv:
*/
int GL_COMPUTE_SHADER = 0x91B9;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetBooleanv, GetFloatv,
* GetDoublev and GetInteger64v:
*/
int GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB,
GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC,
GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD,
GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262,
GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263,
GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264,
GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265,
GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266,
GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegeri_v, GetBooleani_v,
* GetFloati_v, GetDoublei_v and GetInteger64i_v:
*/
int GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE,
GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF;
/** Accepted by the &lt;pname&gt; parameter of GetProgramiv: */
int GL_COMPUTE_WORK_GROUP_SIZE = 0x8267;
/** Accepted by the &lt;pname&gt; parameter of GetActiveUniformBlockiv: */
int GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC;
/** Accepted by the &lt;pname&gt; parameter of GetActiveAtomicCounterBufferiv: */
int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED;
/**
* Accepted by the &lt;target&gt; parameters of BindBuffer, BufferData,
* BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and
* GetBufferPointerv:
*/
int GL_DISPATCH_INDIRECT_BUFFER = 0x90EE;
/**
* Accepted by the &lt;value&gt; parameter of GetIntegerv, GetBooleanv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF;
/** Accepted by the &lt;stages&gt; parameter of UseProgramStages: */
int GL_COMPUTE_SHADER_BIT = 0x00000020;
@Reuse("GL43")
void glDispatchCompute(@GLuint int num_groups_x,
@GLuint int num_groups_y,
@GLuint int num_groups_z);
@Reuse("GL43")
void glDispatchComputeIndirect(@GLintptr long indirect);
}

View File

@ -0,0 +1,49 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLsizei;
import org.lwjgl.util.generator.opengl.GLuint;
public interface ARB_copy_image {
@Reuse("GL43")
void glCopyImageSubData(
@GLuint int srcName, @GLenum int srcTarget, int srcLevel,
int srcX, int srcY, int srcZ,
@GLuint int dstName, @GLenum int dstTarget, int dstLevel,
int dstX, int dstY, int dstZ,
@GLsizei int srcWidth, @GLsizei int srcHeight, @GLsizei int srcDepth);
}

View File

@ -0,0 +1,90 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.GLchar;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLsizei;
import org.lwjgl.util.generator.opengl.GLuint;
import java.nio.ByteBuffer;
public interface ARB_debug_group {
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl, DebugMessageInsertand DEBUGPROC,
* and the &lt;types&gt; parameter of GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_MARKER = 0x8268;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl and DEBUGPROC, and the &lt;types&gt; parameter of
* GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_PUSH_GROUP = 0x8269,
GL_DEBUG_TYPE_POP_GROUP = 0x826A;
/**
* Tokens accepted or provided by the &lt;severity&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC
* callback functions, and the &lt;severities&gt; parameter of
* GetDebugMessageLog:
*/
int GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev, and GetInteger64v:
*/
int GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C,
GL_DEBUG_GROUP_STACK_DEPTH = 0x826D;
/** Returned by GetError: */
int GL_STACK_UNDERFLOW = 0x0504,
GL_STACK_OVERFLOW = 0x0503;
@Reuse("GL43")
void glPushDebugGroup(@GLenum int source, @GLuint int id, @AutoSize("message") @GLsizei int length,
@Const @GLchar ByteBuffer message);
@Reuse("GL43")
@Alternate("glPushDebugGroup")
void glPushDebugGroup(@GLenum int source, @GLuint int id, @Constant("message.length()") @GLsizei int length,
CharSequence message);
@Reuse("GL43")
void glPopDebugGroup();
}

View File

@ -0,0 +1,102 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
public interface ARB_debug_label {
/**
* Tokens accepted or provided by the &lt;identifier&gt; parameters of
* ObjectLabel and GetObjectLabel:
*/
int GL_BUFFER = 0x82E0,
GL_SHADER = 0x82E1,
GL_PROGRAM = 0x82E2,
GL_QUERY = 0x82E3,
GL_PROGRAM_PIPELINE = 0x82E4,
GL_SAMPLER = 0x82E6,
GL_DISPLAY_LIST = 0x82E7;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev, and GetInteger64v:
*/
int GL_MAX_LABEL_LENGTH = 0x82E8;
@Reuse("GL43")
void glObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glObjectLabel")
void glObjectLabel(@GLenum int identifier, @GLuint int name, @Constant("label.length()") @GLsizei int length,
CharSequence label);
@Reuse("GL43")
void glGetObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glGetObjectLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectLabel2(@GLenum int identifier, @GLuint int name, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Reuse("GL43")
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glObjectPtrLabel")
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @Constant("label.length()") @GLsizei int length,
CharSequence label);
@Reuse("GL43")
void glGetObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glGetObjectPtrLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectPtrLabel2(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
}

View File

@ -0,0 +1,45 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_debug_output2 {
/** Returned by GetIntegerv when &lt;pname&gt; is CONTEXT_FLAGS: */
int GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002;
/**
* Tokens accepted by the &lt;target&gt; parameters of Enable, Disable,
* and IsEnabled:
*/
int GL_DEBUG_OUTPUT = 0x92E0;
}

View File

@ -35,6 +35,7 @@ import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLvoid;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import com.sun.mirror.type.PrimitiveType;
@ -57,9 +58,17 @@ public interface ARB_draw_indirect {
int GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43;
@Reuse("GL40")
void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @NullTerminated @Const @GLvoid ByteBuffer indirect);
@Reuse("GL40")
@Alternate("glDrawArraysIndirect")
void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect);
@Reuse("GL40")
void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @NullTerminated @Const @GLvoid ByteBuffer indirect);
@Reuse("GL40")
@Alternate("glDrawElementsIndirect")
void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect);
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_explicit_uniform_location {
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev, and GetInteger64v:
*/
int GL_MAX_UNIFORM_LOCATIONS = 0x826E;
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_fragment_layer_viewport {
}

View File

@ -0,0 +1,94 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLreturn;
import org.lwjgl.util.generator.opengl.GLuint;
import java.nio.IntBuffer;
@Dependent
@Extension(postfix = "")
public interface ARB_framebuffer_no_attachments {
/**
* Accepted by the &lt;pname&gt; parameter of FramebufferParameteri,
* GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and
* GetNamedFramebufferParameterivEXT:
*/
int GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310,
GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311,
GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312,
GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313,
GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetBooleanv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_MAX_FRAMEBUFFER_WIDTH = 0x9315,
GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316,
GL_MAX_FRAMEBUFFER_LAYERS = 0x9317,
GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318;
@Reuse("GL43")
void glFramebufferParameteri(@GLenum int target, @GLenum int pname, int param);
@Reuse("GL43")
@StripPostfix("params")
void glGetFramebufferParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
@Reuse("GL43")
@Alternate("glGetFramebufferParameteriv")
@GLreturn("params")
@StripPostfix("params")
void glGetFramebufferParameteriv2(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params);
@Dependent("GL_EXT_direct_state_access")
void glNamedFramebufferParameteriEXT(@GLuint int framebuffer, @GLenum int pname,
int param);
@Dependent("GL_EXT_direct_state_access")
@StripPostfix(value = "params", extension = "EXT")
void glGetNamedFramebufferParameterivEXT(@GLuint int framebuffer, @GLenum int pname,
@OutParameter @Check("1") IntBuffer params);
@Alternate("glGetNamedFramebufferParameterivEXT")
@GLreturn("params")
@Dependent("GL_EXT_direct_state_access")
@StripPostfix(value = "params", extension = "EXT")
void glGetNamedFramebufferParameterivEXT2(@GLuint int framebuffer, @GLenum int pname,
@OutParameter IntBuffer params);
}

View File

@ -0,0 +1,187 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLint64;
import org.lwjgl.util.generator.opengl.GLreturn;
import org.lwjgl.util.generator.opengl.GLsizei;
import java.nio.LongBuffer;
@Extension(postfix = "")
public interface ARB_internalformat_query2 {
/**
* Accepted by the &lt;target&gt; parameter of GetInternalformativ
* and GetInternalformati64v:
*/
int GL_TEXTURE_1D = 0x0DE0,
GL_TEXTURE_1D_ARRAY = 0x8C18,
GL_TEXTURE_2D = 0x0DE1,
GL_TEXTURE_2D_ARRAY = 0x8C1A,
GL_TEXTURE_3D = 0x806F,
GL_TEXTURE_CUBE_MAP = 0x8513,
GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009,
GL_TEXTURE_RECTANGLE = 0x84F5,
GL_TEXTURE_BUFFER = 0x8C2A,
GL_RENDERBUFFER = 0x8D41,
GL_TEXTURE_2D_MULTISAMPLE = 0x9100,
GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102;
/**
* Accepted by the &lt;pname&gt; parameter of GetInternalformativ
* and GetInternalformati64v:
*/
int GL_SAMPLES = 0x80A9,
GL_NUM_SAMPLE_COUNTS = 0x9380,
GL_INTERNALFORMAT_SUPPORTED = 0x826F,
GL_INTERNALFORMAT_PREFERRED = 0x8270,
GL_INTERNALFORMAT_RED_SIZE = 0x8271,
GL_INTERNALFORMAT_GREEN_SIZE = 0x8272,
GL_INTERNALFORMAT_BLUE_SIZE = 0x8273,
GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274,
GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275,
GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276,
GL_INTERNALFORMAT_SHARED_SIZE = 0x8277,
GL_INTERNALFORMAT_RED_TYPE = 0x8278,
GL_INTERNALFORMAT_GREEN_TYPE = 0x8279,
GL_INTERNALFORMAT_BLUE_TYPE = 0x827A,
GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B,
GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C,
GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D,
GL_MAX_WIDTH = 0x827E,
GL_MAX_HEIGHT = 0x827F,
GL_MAX_DEPTH = 0x8280,
GL_MAX_LAYERS = 0x8281,
GL_MAX_COMBINED_DIMENSIONS = 0x8282,
GL_COLOR_COMPONENTS = 0x8283,
GL_DEPTH_COMPONENTS = 0x8284,
GL_STENCIL_COMPONENTS = 0x8285,
GL_COLOR_RENDERABLE = 0x8286,
GL_DEPTH_RENDERABLE = 0x8287,
GL_STENCIL_RENDERABLE = 0x8288,
GL_FRAMEBUFFER_RENDERABLE = 0x8289,
GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A,
GL_FRAMEBUFFER_BLEND = 0x828B,
GL_READ_PIXELS = 0x828C,
GL_READ_PIXELS_FORMAT = 0x828D,
GL_READ_PIXELS_TYPE = 0x828E,
GL_TEXTURE_IMAGE_FORMAT = 0x828F,
GL_TEXTURE_IMAGE_TYPE = 0x8290,
GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291,
GL_GET_TEXTURE_IMAGE_TYPE = 0x8292,
GL_MIPMAP = 0x8293,
GL_MANUAL_GENERATE_MIPMAP = 0x8294,
GL_AUTO_GENERATE_MIPMAP = 0x8295,
GL_COLOR_ENCODING = 0x8296,
GL_SRGB_READ = 0x8297,
GL_SRGB_WRITE = 0x8298,
GL_SRGB_DECODE_ARB = 0x8299,
GL_FILTER = 0x829A,
GL_VERTEX_TEXTURE = 0x829B,
GL_TESS_CONTROL_TEXTURE = 0x829C,
GL_TESS_EVALUATION_TEXTURE = 0x829D,
GL_GEOMETRY_TEXTURE = 0x829E,
GL_FRAGMENT_TEXTURE = 0x829F,
GL_COMPUTE_TEXTURE = 0x82A0,
GL_TEXTURE_SHADOW = 0x82A1,
GL_TEXTURE_GATHER = 0x82A2,
GL_TEXTURE_GATHER_SHADOW = 0x82A3,
GL_SHADER_IMAGE_LOAD = 0x82A4,
GL_SHADER_IMAGE_STORE = 0x82A5,
GL_SHADER_IMAGE_ATOMIC = 0x82A6,
GL_IMAGE_TEXEL_SIZE = 0x82A7,
GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8,
GL_IMAGE_PIXEL_FORMAT = 0x82A9,
GL_IMAGE_PIXEL_TYPE = 0x82AA,
GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7,
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC,
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD,
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE,
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF,
GL_TEXTURE_COMPRESSED = 0x86A1,
GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1,
GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2,
GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3,
GL_CLEAR_BUFFER = 0x82B4,
GL_TEXTURE_VIEW = 0x82B5,
GL_VIEW_COMPATIBILITY_CLASS = 0x82B6;
/**
* Returned as possible responses for various &lt;pname&gt; queries
* to GetInternalformativ and GetInternalformati64v
*/
int GL_FULL_SUPPORT = 0x82B7,
GL_CAVEAT_SUPPORT = 0x82B8,
GL_IMAGE_CLASS_4_X_32 = 0x82B9,
GL_IMAGE_CLASS_2_X_32 = 0x82BA,
GL_IMAGE_CLASS_1_X_32 = 0x82BB,
GL_IMAGE_CLASS_4_X_16 = 0x82BC,
GL_IMAGE_CLASS_2_X_16 = 0x82BD,
GL_IMAGE_CLASS_1_X_16 = 0x82BE,
GL_IMAGE_CLASS_4_X_8 = 0x82BF,
GL_IMAGE_CLASS_2_X_8 = 0x82C0,
GL_IMAGE_CLASS_1_X_8 = 0x82C1,
GL_IMAGE_CLASS_11_11_10 = 0x82C2,
GL_IMAGE_CLASS_10_10_10_2 = 0x82C3,
GL_VIEW_CLASS_128_BITS = 0x82C4,
GL_VIEW_CLASS_96_BITS = 0x82C5,
GL_VIEW_CLASS_64_BITS = 0x82C6,
GL_VIEW_CLASS_48_BITS = 0x82C7,
GL_VIEW_CLASS_32_BITS = 0x82C8,
GL_VIEW_CLASS_24_BITS = 0x82C9,
GL_VIEW_CLASS_16_BITS = 0x82CA,
GL_VIEW_CLASS_8_BITS = 0x82CB,
GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC,
GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD,
GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE,
GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF,
GL_VIEW_CLASS_RGTC1_RED = 0x82D0,
GL_VIEW_CLASS_RGTC2_RG = 0x82D1,
GL_VIEW_CLASS_BPTC_UNORM = 0x82D2,
GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3;
@Reuse("GL43")
@StripPostfix("params")
void glGetInternalformati64v(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @AutoSize("params") @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params);
@Reuse("GL43")
@Alternate("glGetInternalformati64v")
@GLreturn("params")
@StripPostfix("params")
void glGetInternalformati64v2(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @Constant("1") @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params);
}

View File

@ -0,0 +1,68 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.AutoSize;
import org.lwjgl.util.generator.Const;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.*;
import java.nio.IntBuffer;
public interface ARB_invalidate_subdata {
@Reuse("GL43")
void glInvalidateTexSubImage(@GLuint int texture, int level,
int xoffset, int yoffset, int zoffset,
@GLsizei int width, @GLsizei int height, @GLsizei int depth);
@Reuse("GL43")
void glInvalidateTexImage(@GLuint int texture, int level);
@Reuse("GL43")
void glInvalidateBufferSubData(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length);
@Reuse("GL43")
void glInvalidateBufferData(@GLuint int buffer);
@Reuse("GL43")
void glInvalidateFramebuffer(@GLenum int target,
@AutoSize("attachments") @GLsizei int numAttachments,
@Const @GLenum IntBuffer attachments);
@Reuse("GL43")
void glInvalidateSubFramebuffer(@GLenum int target,
@AutoSize("attachments") @GLsizei int numAttachments,
@Const @GLenum IntBuffer attachments,
int x, int y, @GLsizei int width, @GLsizei int height);
}

View File

@ -0,0 +1,74 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLsizei;
import org.lwjgl.util.generator.opengl.GLvoid;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import com.sun.mirror.type.PrimitiveType;
public interface ARB_multi_draw_indirect {
@Reuse("GL43")
void glMultiDrawArraysIndirect(@GLenum int mode,
@BufferObject(BufferKind.IndirectBO) @Check("4 * 4 * primcount") @Const @GLvoid ByteBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Reuse("GL43")
@Alternate("glMultiDrawArraysIndirect")
void glMultiDrawArraysIndirect(@GLenum int mode,
@BufferObject(BufferKind.IndirectBO) @Check("4 * primcount") @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Reuse("GL43")
void glMultiDrawElementsIndirect(@GLenum int mode,
@GLenum int type,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @Const @GLvoid ByteBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Reuse("GL43")
@Alternate("glMultiDrawElementsIndirect")
void glMultiDrawElementsIndirect(@GLenum int mode,
@GLenum int type,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
}

View File

@ -0,0 +1,161 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
@Extension(postfix = "")
public interface ARB_program_interface_query {
/**
* Accepted by the &lt;programInterface&gt; parameter of GetProgramInterfaceiv,
* GetProgramResourceIndex, GetProgramResourceName, GetProgramResourceiv,
* GetProgramResourceLocation, and GetProgramResourceLocationIndex:
*/
int GL_UNIFORM = 0x92E1,
GL_UNIFORM_BLOCK = 0x92E2,
GL_PROGRAM_INPUT = 0x92E3,
GL_PROGRAM_OUTPUT = 0x92E4,
GL_BUFFER_VARIABLE = 0x92E5,
GL_SHADER_STORAGE_BLOCK = 0x92E6,
GL_VERTEX_SUBROUTINE = 0x92E8,
GL_TESS_CONTROL_SUBROUTINE = 0x92E9,
GL_TESS_EVALUATION_SUBROUTINE = 0x92EA,
GL_GEOMETRY_SUBROUTINE = 0x92EB,
GL_FRAGMENT_SUBROUTINE = 0x92EC,
GL_COMPUTE_SUBROUTINE = 0x92ED,
GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE,
GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF,
GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0,
GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1,
GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2,
GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3,
GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4;
/** Accepted by the &lt;pname&gt; parameter of GetProgramInterfaceiv: */
int GL_ACTIVE_RESOURCES = 0x92F5,
GL_MAX_NAME_LENGTH = 0x92F6,
GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7,
GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8;
/** Accepted in the &lt;props&gt; array of GetProgramResourceiv: */
int GL_NAME_LENGTH = 0x92F9,
GL_TYPE = 0x92FA,
GL_ARRAY_SIZE = 0x92FB,
GL_OFFSET = 0x92FC,
GL_BLOCK_INDEX = 0x92FD,
GL_ARRAY_STRIDE = 0x92FE,
GL_MATRIX_STRIDE = 0x92FF,
GL_IS_ROW_MAJOR = 0x9300,
GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301,
GL_BUFFER_BINDING = 0x9302,
GL_BUFFER_DATA_SIZE = 0x9303,
GL_NUM_ACTIVE_VARIABLES = 0x9304,
GL_ACTIVE_VARIABLES = 0x9305,
GL_REFERENCED_BY_VERTEX_SHADER = 0x9306,
GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307,
GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308,
GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309,
GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A,
GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B,
GL_TOP_LEVEL_ARRAY_SIZE = 0x930C,
GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D,
GL_LOCATION = 0x930E,
GL_LOCATION_INDEX = 0x930F,
GL_IS_PER_PATCH = 0x92E7;
@Reuse("GL43")
@StripPostfix("params")
void glGetProgramInterfaceiv(@GLuint int program, @GLenum int programInterface,
@GLenum int pname, @Check("1") @OutParameter IntBuffer params);
@Reuse("GL43")
@Alternate("glGetProgramInterfaceiv")
@GLreturn("params")
@StripPostfix("params")
void glGetProgramInterfaceiv2(@GLuint int program, @GLenum int programInterface,
@GLenum int pname, @OutParameter IntBuffer params);
@Reuse("GL43")
@GLuint
int glGetProgramResourceIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated @Const @GLchar ByteBuffer name);
@Reuse("GL43")
@Alternate("glGetProgramResourceIndex")
@GLuint
int glGetProgramResourceIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated CharSequence name);
@Reuse("GL43")
void glGetProgramResourceName(@GLuint int program, @GLenum int programInterface,
@GLuint int index, @AutoSize(value = "name", canBeNull = true) @GLsizei int bufSize, @Check(value = "1", canBeNull = true) @OutParameter @GLsizei IntBuffer length,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer name);
@Reuse("GL43")
@Alternate("glGetProgramResourceName")
@GLreturn(value = "name", maxLength = "bufSize")
void glGetProgramResourceName2(@GLuint int program, @GLenum int programInterface,
@GLuint int index, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(name_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer name);
@Reuse("GL43")
@StripPostfix("params")
void glGetProgramResourceiv(@GLuint int program, @GLenum int programInterface,
@GLuint int index, @AutoSize("props") @GLsizei int propCount,
@Const @GLenum IntBuffer props, @AutoSize("params") @GLsizei int bufSize,
@Check(value = "1", canBeNull = true) @OutParameter @GLsizei IntBuffer length, @OutParameter IntBuffer params);
@Reuse("GL43")
int glGetProgramResourceLocation(@GLuint int program, @GLenum int programInterface,
@NullTerminated @Const @GLchar ByteBuffer name);
@Reuse("GL43")
@Alternate("glGetProgramResourceLocation")
int glGetProgramResourceLocation(@GLuint int program, @GLenum int programInterface,
@NullTerminated CharSequence name);
@Reuse("GL43")
int glGetProgramResourceLocationIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated @Const @GLchar ByteBuffer name);
@Reuse("GL43")
@Alternate("glGetProgramResourceLocationIndex")
int glGetProgramResourceLocationIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated CharSequence name);
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_robust_buffer_access_behavior {
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_robustness_isolation {
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_shader_image_size {
}

View File

@ -0,0 +1,87 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLuint;
public interface ARB_shader_storage_buffer_object {
/**
* Accepted by the &lt;target&gt; parameters of BindBuffer, BufferData,
* BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and
* GetBufferPointerv:
*/
int GL_SHADER_STORAGE_BUFFER = 0x90D2;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetIntegeri_v,
* GetBooleanv, GetInteger64v, GetFloatv, GetDoublev, GetBooleani_v,
* GetIntegeri_v, GetFloati_v, GetDoublei_v, and GetInteger64i_v:
*/
int GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegeri_v, GetBooleani_v,
* GetIntegeri_v, GetFloati_v, GetDoublei_v, and GetInteger64i_v:
*/
int GL_SHADER_STORAGE_BUFFER_START = 0x90D4,
GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetBooleanv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6,
GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7,
GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8,
GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9,
GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA,
GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB,
GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC,
GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD,
GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE,
GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF;
/** Accepted in the &lt;barriers&gt; bitfield in glMemoryBarrier: */
int GL_SHADER_STORAGE_BARRIER_BIT = 0x2000;
/**
* Alias for the existing token
* MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS:
*/
int GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39;
@Reuse("GL43")
void glShaderStorageBlockBinding(@GLuint int program, @GLuint int storageBlockIndex,
@GLuint int storageBlockBinding);
}

View File

@ -0,0 +1,39 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_stencil_texturing {
/** Accepted by the &lt;pname&gt; parameter of TexParameter* and GetTexParameter*: */
int GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA;
}

View File

@ -0,0 +1,69 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Dependent;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLintptr;
import org.lwjgl.util.generator.opengl.GLsizeiptr;
import org.lwjgl.util.generator.opengl.GLuint;
@Dependent
public interface ARB_texture_buffer_range {
/** Accepted by the &lt;pname&gt; parameter of GetTexLevelParameter: */
int GL_TEXTURE_BUFFER_OFFSET = 0x919D,
GL_TEXTURE_BUFFER_SIZE = 0x919E;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv, GetFloatv,
* and GetDoublev:
*/
int GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F;
@Reuse("GL43")
void glTexBufferRange(@GLenum int target,
@GLenum int internalformat,
@GLuint int buffer,
@GLintptr long offset,
@GLsizeiptr long size);
@Dependent("GL_EXT_direct_state_access")
void glTextureBufferRangeEXT(@GLuint int texture,
@GLenum int target,
@GLenum int internalformat,
@GLuint int buffer,
@GLintptr long offset,
@GLsizeiptr long size);
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface ARB_texture_query_levels {
}

View File

@ -0,0 +1,79 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Dependent;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLsizei;
import org.lwjgl.util.generator.opengl.GLuint;
@Dependent
public interface ARB_texture_storage_multisample {
@Reuse("GL43")
void glTexStorage2DMultisample(@GLenum int target,
@GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width,
@GLsizei int height,
boolean fixedsamplelocations);
@Reuse("GL43")
void glTexStorage3DMultisample(@GLenum int target,
@GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width,
@GLsizei int height,
@GLsizei int depth,
boolean fixedsamplelocations);
@Dependent("GL_EXT_direct_state_access")
void glTextureStorage2DMultisampleEXT(@GLuint int texture,
@GLenum int target,
@GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width,
@GLsizei int height,
boolean fixedsamplelocations);
@Dependent("GL_EXT_direct_state_access")
void glTextureStorage3DMultisampleEXT(@GLuint int texture,
@GLenum int target,
@GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width,
@GLsizei int height,
@GLsizei int depth,
boolean fixedsamplelocations);
}

View File

@ -0,0 +1,56 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLuint;
public interface ARB_texture_view {
/**
* Accepted by the &lt;pname&gt; parameters of GetTexParameterfv and
* GetTexParameteriv:
*/
int GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB,
GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC,
GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD,
GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE,
GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
@Reuse("GL43")
void glTextureView(@GLuint int texture, @GLenum int target, @GLuint int origtexture,
@GLenum int internalformat,
@GLuint int minlevel, @GLuint int numlevels,
@GLuint int minlayer, @GLuint int numlayers);
}

View File

@ -0,0 +1,80 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.Reuse;
import org.lwjgl.util.generator.opengl.GLenum;
import org.lwjgl.util.generator.opengl.GLintptr;
import org.lwjgl.util.generator.opengl.GLsizei;
import org.lwjgl.util.generator.opengl.GLuint;
public interface ARB_vertex_attrib_binding {
/** Accepted by the &lt;pname&gt; parameter of GetVertexAttrib*v: */
int GL_VERTEX_ATTRIB_BINDING = 0x82D4,
GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5;
/**
* Accepted by the &lt;target&gt; parameter of GetBooleani_v, GetIntegeri_v,
* GetFloati_v, GetDoublei_v, and GetInteger64i_v:
*/
int GL_VERTEX_BINDING_DIVISOR = 0x82D6,
GL_VERTEX_BINDING_OFFSET = 0x82D7,
GL_VERTEX_BINDING_STRIDE = 0x82D8;
/** Accepted by the &lt;pname&gt; parameter of GetIntegerv, ... */
int GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9,
GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA;
@Reuse("GL43")
void glBindVertexBuffer(@GLuint int bindingindex, @GLuint int buffer, @GLintptr long offset,
@GLsizei int stride);
@Reuse("GL43")
void glVertexAttribFormat(@GLuint int attribindex, int size, @GLenum int type,
boolean normalized, @GLuint int relativeoffset);
@Reuse("GL43")
void glVertexAttribIFormat(@GLuint int attribindex, int size, @GLenum int type,
@GLuint int relativeoffset);
@Reuse("GL43")
void glVertexAttribLFormat(@GLuint int attribindex, int size, @GLenum int type,
@GLuint int relativeoffset);
@Reuse("GL43")
void glVertexAttribBinding(@GLuint int attribindex, @GLuint int bindingindex);
@Reuse("GL43")
void glVertexBindingDivisor(@GLuint int bindingindex, @GLuint int divisor);
}

View File

@ -158,7 +158,7 @@ public interface EXT_gpu_shader4 {
void glVertexAttribI4usvEXT(@GLuint int index, @Check("4") @Const @GLushort ShortBuffer v);
void glVertexAttribIPointerEXT(@GLuint int index, int size, @GLenum int type, @GLsizei int stride,
@CachedReference
@CachedReference(index = "index", name = "glVertexAttribPointer_buffer")
@BufferObject(BufferKind.ArrayVBO)
@Check
@Const

View File

@ -204,7 +204,7 @@ public interface GL30 {
void glVertexAttribI4usv(@GLuint int index, @Check("4") @Const @GLushort ShortBuffer v);
void glVertexAttribIPointer(@GLuint int index, int size, @GLenum int type, @GLsizei int stride,
@CachedReference
@CachedReference(index = "index", name = "glVertexAttribPointer_buffer")
@BufferObject(BufferKind.ArrayVBO)
@Check
@Const

View File

@ -32,8 +32,6 @@
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.PointerWrapper;
import org.lwjgl.util.generator.Alternate;
import org.lwjgl.util.generator.opengl.*;
import java.nio.Buffer;
@ -47,14 +45,22 @@ public interface GL32 {
// ----------------------[ OpenGL 3.2 ]----------------------
// ----------------------------------------------------------
int GL_CONTEXT_PROFILE_MASK = 0x9126;
int GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001;
int GL_CONTEXT_PROFILE_MASK = 0x9126;
int GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001;
int GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002;
int GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
int GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123;
int GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
int GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123;
int GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124;
int GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
int GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
@StripPostfix("params")
void glGetBufferParameteri64v(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") LongBuffer params);
@Alternate("glGetBufferParameteri64v")
@GLreturn("params")
@StripPostfix("params")
void glGetBufferParameteri64v2(@GLenum int target, @GLenum int pname, @OutParameter LongBuffer params);
// ---------------------------------------------------------------------
// ----------------------[ ARB_vertex_array_bgra ]----------------------
@ -95,13 +101,13 @@ public interface GL32 {
/** Accepted by the &lt;mode&gt; parameter of ProvokingVertex: */
int GL_FIRST_VERTEX_CONVENTION = 0x8E4D;
int GL_LAST_VERTEX_CONVENTION = 0x8E4E;
int GL_LAST_VERTEX_CONVENTION = 0x8E4E;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, and GetDoublev:
*/
int GL_PROVOKING_VERTEX = 0x8E4F;
int GL_PROVOKING_VERTEX = 0x8E4F;
int GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C;
void glProvokingVertex(@GLenum int mode);
@ -159,23 +165,23 @@ public interface GL32 {
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetDoublev, GetIntegerv,
* and GetFloatv:
*/
int GL_MAX_SAMPLE_MASK_WORDS = 0x8E59;
int GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E;
int GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F;
int GL_MAX_INTEGER_SAMPLES = 0x9110;
int GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104;
int GL_MAX_SAMPLE_MASK_WORDS = 0x8E59;
int GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E;
int GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F;
int GL_MAX_INTEGER_SAMPLES = 0x9110;
int GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104;
int GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105;
/** Accepted by the &lt;pname&gt; parameter of GetTexLevelParameter */
int GL_TEXTURE_SAMPLES = 0x9106;
int GL_TEXTURE_SAMPLES = 0x9106;
int GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107;
/** Returned by the &lt;type&gt; parameter of GetActiveUniform: */
int GL_SAMPLER_2D_MULTISAMPLE = 0x9108;
int GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109;
int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A;
int GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B;
int GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C;
int GL_SAMPLER_2D_MULTISAMPLE = 0x9108;
int GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109;
int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A;
int GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B;
int GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C;
int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D;
void glTexImage2DMultisample(@GLenum int target, @GLsizei int samples, int internalformat,
@ -217,19 +223,19 @@ public interface GL32 {
* GetProgramiv:
*/
int GL_GEOMETRY_VERTICES_OUT = 0x8DDA;
int GL_GEOMETRY_INPUT_TYPE = 0x8DDB;
int GL_GEOMETRY_OUTPUT_TYPE = 0x8DDC;
int GL_GEOMETRY_INPUT_TYPE = 0x8DDB;
int GL_GEOMETRY_OUTPUT_TYPE = 0x8DDC;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, and GetDoublev:
*/
int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29;
int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29;
//int GL_MAX_GEOMETRY_VARYING_COMPONENTS = 0x8DDD; -- Missing from 3.2 spec
//int GL_MAX_VERTEX_VARYING_COMPONENTS = 0x8DDE; -- Missing from 3.2 spec
int GL_MAX_VARYING_COMPONENTS = 0x8B4B;
int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF;
int GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0;
int GL_MAX_VARYING_COMPONENTS = 0x8B4B;
int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF;
int GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0;
int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1;
/**
@ -237,9 +243,9 @@ public interface GL32 {
* MultiDrawArrays, DrawElements, MultiDrawElements, and
* DrawRangeElements:
*/
int GL_LINES_ADJACENCY = 0xA;
int GL_LINE_STRIP_ADJACENCY = 0xB;
int GL_TRIANGLES_ADJACENCY = 0xC;
int GL_LINES_ADJACENCY = 0xA;
int GL_LINE_STRIP_ADJACENCY = 0xB;
int GL_TRIANGLES_ADJACENCY = 0xC;
int GL_TRIANGLE_STRIP_ADJACENCY = 0xD;
/** Returned by CheckFramebufferStatusEXT: */
@ -249,7 +255,7 @@ public interface GL32 {
* Accepted by the &lt;pname&gt; parameter of GetFramebufferAttachment-
* ParameterivEXT:
*/
int GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7;
int GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7;
int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
/**
@ -269,10 +275,10 @@ public interface GL32 {
int GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111;
/** Accepted as the &lt;pname&gt; parameter of GetSynciv: */
int GL_OBJECT_TYPE = 0x9112;
int GL_OBJECT_TYPE = 0x9112;
int GL_SYNC_CONDITION = 0x9113;
int GL_SYNC_STATUS = 0x9114;
int GL_SYNC_FLAGS = 0x9115;
int GL_SYNC_STATUS = 0x9114;
int GL_SYNC_FLAGS = 0x9115;
/** Returned in &lt;values&gt; for GetSynciv &lt;pname&gt; OBJECT_TYPE: */
int GL_SYNC_FENCE = 0x9116;
@ -282,7 +288,7 @@ public interface GL32 {
/** Returned in &lt;values&gt; for GetSynciv &lt;pname&gt; SYNC_STATUS: */
int GL_UNSIGNALED = 0x9118;
int GL_SIGNALED = 0x9119;
int GL_SIGNALED = 0x9119;
/** Accepted in the &lt;flags&gt; parameter of ClientWaitSync: */
int GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
@ -291,10 +297,10 @@ public interface GL32 {
long GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFl;
/** Returned by ClientWaitSync: */
int GL_ALREADY_SIGNALED = 0x911A;
int GL_TIMEOUT_EXPIRED = 0x911B;
int GL_ALREADY_SIGNALED = 0x911A;
int GL_TIMEOUT_EXPIRED = 0x911B;
int GL_CONDITION_SATISFIED = 0x911C;
int GL_WAIT_FAILED = 0x911D;
int GL_WAIT_FAILED = 0x911D;
@PointerWrapper("GLsync")
GLSync glFenceSync(@GLenum int condition, @GLbitfield int flags);

View File

@ -75,8 +75,14 @@ public interface GL40 {
*/
int GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43;
void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @NullTerminated @Const @GLvoid ByteBuffer indirect);
@Alternate("glDrawArraysIndirect")
void glDrawArraysIndirect(@GLenum int mode, @BufferObject(BufferKind.IndirectBO) @Check("4") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect);
void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @NullTerminated @Const @GLvoid ByteBuffer indirect);
@Alternate("glDrawElementsIndirect")
void glDrawElementsIndirect(@GLenum int mode, @GLenum int type, @BufferObject(BufferKind.IndirectBO) @Check("5") @NullTerminated @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect);
// ---------------------------------------------------------------

View File

@ -0,0 +1,858 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.nio.LongBuffer;
import com.sun.mirror.type.PrimitiveType;
public interface GL43 {
/** No. of supported Shading Language Versions. Accepted by the &lt;pname&gt; parameter of GetIntegerv. */
int GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9;
/** Vertex attrib array has unconverted doubles. Accepted by the &lt;pname&gt; parameter of GetVertexAttribiv. */
int GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E;
// ---------------------------------------------------------------------
// ----------------------[ ARB_ES3_compatibility ]----------------------
// ---------------------------------------------------------------------
/** Accepted by the &lt;internalformat&gt; parameter of CompressedTexImage2D */
int GL_COMPRESSED_RGB8_ETC2 = 0x9274,
GL_COMPRESSED_SRGB8_ETC2 = 0x9275,
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276,
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277,
GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278,
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279,
GL_COMPRESSED_R11_EAC = 0x9270,
GL_COMPRESSED_SIGNED_R11_EAC = 0x9271,
GL_COMPRESSED_RG11_EAC = 0x9272,
GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273;
/** Accepted by the &lt;target&gt; parameter of Enable and Disable: */
int GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69;
/**
* Accepted by the &lt;target&gt; parameter of BeginQuery, EndQuery,
* GetQueryIndexediv and GetQueryiv:
*/
int GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;
/** Accepted by the &lt;value&gt; parameter of the GetInteger* functions: */
int GL_MAX_ELEMENT_INDEX = 0x8D6B;
// -----------------------------------------------------------------------
// ----------------------[ ARB_clear_buffer_object ]----------------------
// -----------------------------------------------------------------------
void glClearBufferData(@GLenum int target,
@GLenum int internalformat,
@GLenum int format,
@GLenum int type,
@Check("1") @Const @GLvoid ByteBuffer data);
void glClearBufferSubData(@GLenum int target,
@GLenum int internalformat,
@GLintptr long offset,
@AutoSize("data") @GLsizeiptr long size,
@GLenum int format,
@GLenum int type,
@Const @GLvoid ByteBuffer data);
// ------------------------------------------------------------------
// ----------------------[ ARB_compute_shader ]----------------------
// ------------------------------------------------------------------
/**
* Accepted by the &lt;type&gt; parameter of CreateShader and returned in the
* &lt;params&gt; parameter by GetShaderiv:
*/
int GL_COMPUTE_SHADER = 0x91B9;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetBooleanv, GetFloatv,
* GetDoublev and GetInteger64v:
*/
int GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB,
GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC,
GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD,
GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262,
GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263,
GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264,
GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265,
GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266,
GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegeri_v, GetBooleani_v,
* GetFloati_v, GetDoublei_v and GetInteger64i_v:
*/
int GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE,
GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF;
/** Accepted by the &lt;pname&gt; parameter of GetProgramiv: */
int GL_COMPUTE_WORK_GROUP_SIZE = 0x8267;
/** Accepted by the &lt;pname&gt; parameter of GetActiveUniformBlockiv: */
int GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC;
/** Accepted by the &lt;pname&gt; parameter of GetActiveAtomicCounterBufferiv: */
int GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED;
/**
* Accepted by the &lt;target&gt; parameters of BindBuffer, BufferData,
* BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and
* GetBufferPointerv:
*/
int GL_DISPATCH_INDIRECT_BUFFER = 0x90EE;
/**
* Accepted by the &lt;value&gt; parameter of GetIntegerv, GetBooleanv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF;
/** Accepted by the &lt;stages&gt; parameter of UseProgramStages: */
int GL_COMPUTE_SHADER_BIT = 0x00000020;
void glDispatchCompute(@GLuint int num_groups_x,
@GLuint int num_groups_y,
@GLuint int num_groups_z);
void glDispatchComputeIndirect(@GLintptr long indirect);
// --------------------------------------------------------------
// ----------------------[ ARB_copy_image ]----------------------
// --------------------------------------------------------------
void glCopyImageSubData(
@GLuint int srcName, @GLenum int srcTarget, int srcLevel,
int srcX, int srcY, int srcZ,
@GLuint int dstName, @GLenum int dstTarget, int dstLevel,
int dstX, int dstY, int dstZ,
@GLsizei int srcWidth, @GLsizei int srcHeight, @GLsizei int srcDepth);
// ----------------------------------------------------------------
// ----------------------[ KHR_debug_output ]----------------------
// ----------------------[ ARB_debug_output2 ]---------------------
// ----------------------[ ARB_debug_group ]-----------------------
// ----------------------[ ARB_debug_label ]-----------------------
// ----------------------------------------------------------------
/**
* Tokens accepted by the &lt;target&gt; parameters of Enable, Disable, and
* IsEnabled:
*/
int GL_DEBUG_OUTPUT = 0x92E0,
GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242;
/** Returned by GetIntegerv when &lt;pname&gt; is CONTEXT_FLAGS: */
int GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002;
/**
* Tokens accepted by the &lt;value&gt; parameters of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev and GetInteger64v:
*/
int GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143,
GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144,
GL_DEBUG_LOGGED_MESSAGES = 0x9145,
GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243,
GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C,
GL_DEBUG_GROUP_STACK_DEPTH = 0x826D,
GL_MAX_LABEL_LENGTH = 0x82E8;
/** Tokens accepted by the &lt;pname&gt; parameter of GetPointerv: */
int GL_DEBUG_CALLBACK_FUNCTION = 0x8244,
GL_DEBUG_CALLBACK_USER_PARAM = 0x8245;
/**
* Tokens accepted or provided by the &lt;source&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the &lt;sources&gt;
* parameter of GetDebugMessageLog:
*/
int GL_DEBUG_SOURCE_API = 0x8246,
GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247,
GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248,
GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249,
GL_DEBUG_SOURCE_APPLICATION = 0x824A,
GL_DEBUG_SOURCE_OTHER = 0x824B;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the &lt;types&gt;
* parameter of GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_ERROR = 0x824C,
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E,
GL_DEBUG_TYPE_PORTABILITY = 0x824F,
GL_DEBUG_TYPE_PERFORMANCE = 0x8250,
GL_DEBUG_TYPE_OTHER = 0x8251,
GL_DEBUG_TYPE_MARKER = 0x8268;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl and DEBUGPROC, and the &lt;types&gt; parameter of
* GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_PUSH_GROUP = 0x8269,
GL_DEBUG_TYPE_POP_GROUP = 0x826A;
/**
* Tokens accepted or provided by the &lt;severity&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC callback functions,
* and the &lt;severities&gt; parameter of GetDebugMessageLog:
*/
int GL_DEBUG_SEVERITY_HIGH = 0x9146,
GL_DEBUG_SEVERITY_MEDIUM = 0x9147,
GL_DEBUG_SEVERITY_LOW = 0x9148,
GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B;
/** Returned by GetError: */
int GL_STACK_UNDERFLOW = 0x0504,
GL_STACK_OVERFLOW = 0x0503;
/**
* Tokens accepted or provided by the &lt;identifier&gt; parameters of
* ObjectLabel and GetObjectLabel:
*/
int GL_BUFFER = 0x82E0,
GL_SHADER = 0x82E1,
GL_PROGRAM = 0x82E2,
GL_QUERY = 0x82E3,
GL_PROGRAM_PIPELINE = 0x82E4,
GL_SAMPLER = 0x82E6,
GL_DISPLAY_LIST = 0x82E7;
// -----------------------------
void glDebugMessageControl(@GLenum int source,
@GLenum int type,
@GLenum int severity,
@AutoSize(value = "ids", canBeNull = true) @GLsizei int count,
@Check(canBeNull = true) @Const @GLuint IntBuffer ids,
boolean enabled);
void glDebugMessageInsert(@GLenum int source,
@GLenum int type,
@GLuint int id,
@GLenum int severity,
@AutoSize("buf") @GLsizei int length,
@Const @GLchar ByteBuffer buf);
@Alternate("glDebugMessageInsert")
void glDebugMessageInsert(@GLenum int source,
@GLenum int type,
@GLuint int id,
@GLenum int severity,
@Constant("buf.length()") @GLsizei int length,
CharSequence buf);
/**
* The {@code KHRDebugCallback.Handler} implementation passed to this method will be used for
* KHR_debug messages. If callback is null, any previously registered handler for the current
* thread will be unregistered and stop receiving messages.
*
* @param callback the callback function to use
*/
@Code(
// Create a GlobalRef to the callback object and register it with the current context.
javaBeforeNative = "\t\tlong userParam = callback == null ? 0 : CallbackUtil.createGlobalRef(callback.getHandler());\n" +
"\t\tCallbackUtil.registerContextCallbackKHR(userParam);"
)
void glDebugMessageCallback(@PointerWrapper(value = "GLDEBUGPROC", canBeNull = true) KHRDebugCallback callback,
@Constant("userParam") @PointerWrapper("GLvoid *") long userParam);
@GLuint
int glGetDebugMessageLog(@GLuint int count,
@AutoSize(value = "messageLog", canBeNull = true) @GLsizei int bufsize,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer sources,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer types,
@Check(value = "count", canBeNull = true) @GLuint IntBuffer ids,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer severities,
@Check(value = "count", canBeNull = true) @GLsizei IntBuffer lengths,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer messageLog);
void glPushDebugGroup(@GLenum int source, @GLuint int id, @AutoSize("message") @GLsizei int length,
@Const @GLchar ByteBuffer message);
@Alternate("glPushDebugGroup")
void glPushDebugGroup(@GLenum int source, @GLuint int id, @Constant("message.length()") @GLsizei int length,
CharSequence message);
void glPopDebugGroup();
void glObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Alternate("glObjectLabel")
void glObjectLabel(@GLenum int identifier, @GLuint int name, @Constant("label.length()") @GLsizei int length,
CharSequence label);
void glGetObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Alternate("glGetObjectLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectLabel2(@GLenum int identifier, @GLuint int name, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Alternate("glObjectPtrLabel")
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @Constant("label.length()") @GLsizei int length,
CharSequence label);
void glGetObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Alternate("glGetObjectPtrLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectPtrLabel2(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
// -----------------------------------------------------------------------------
// ----------------------[ ARB_explicit_uniform_location ]----------------------
// -----------------------------------------------------------------------------
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev, and GetInteger64v:
*/
int GL_MAX_UNIFORM_LOCATIONS = 0x826E;
// -----------------------------------------------------------------------------
// ----------------------[ ARB_framebuffer_no_attachment ]----------------------
// -----------------------------------------------------------------------------
/**
* Accepted by the &lt;pname&gt; parameter of FramebufferParameteri,
* GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and
* GetNamedFramebufferParameterivEXT:
*/
int GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310,
GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311,
GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312,
GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313,
GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetBooleanv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_MAX_FRAMEBUFFER_WIDTH = 0x9315,
GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316,
GL_MAX_FRAMEBUFFER_LAYERS = 0x9317,
GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318;
void glFramebufferParameteri(@GLenum int target, @GLenum int pname, int param);
@StripPostfix("params")
void glGetFramebufferParameteriv(@GLenum int target, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
@Alternate("glGetFramebufferParameteriv")
@GLreturn("params")
@StripPostfix("params")
void glGetFramebufferParameteriv2(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params);
// -----------------------------------------------------------------------------
// ----------------------[ ARB_internalformat_query2 ]----------------------
// -----------------------------------------------------------------------------
/**
* Accepted by the &lt;target&gt; parameter of GetInternalformativ
* and GetInternalformati64v:
*/
int GL_TEXTURE_1D = 0x0DE0,
GL_TEXTURE_1D_ARRAY = 0x8C18,
GL_TEXTURE_2D = 0x0DE1,
GL_TEXTURE_2D_ARRAY = 0x8C1A,
GL_TEXTURE_3D = 0x806F,
GL_TEXTURE_CUBE_MAP = 0x8513,
GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009,
GL_TEXTURE_RECTANGLE = 0x84F5,
GL_TEXTURE_BUFFER = 0x8C2A,
GL_RENDERBUFFER = 0x8D41,
GL_TEXTURE_2D_MULTISAMPLE = 0x9100,
GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102;
/**
* Accepted by the &lt;pname&gt; parameter of GetInternalformativ
* and GetInternalformati64v:
*/
int GL_SAMPLES = 0x80A9,
GL_NUM_SAMPLE_COUNTS = 0x9380,
GL_INTERNALFORMAT_SUPPORTED = 0x826F,
GL_INTERNALFORMAT_PREFERRED = 0x8270,
GL_INTERNALFORMAT_RED_SIZE = 0x8271,
GL_INTERNALFORMAT_GREEN_SIZE = 0x8272,
GL_INTERNALFORMAT_BLUE_SIZE = 0x8273,
GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274,
GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275,
GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276,
GL_INTERNALFORMAT_SHARED_SIZE = 0x8277,
GL_INTERNALFORMAT_RED_TYPE = 0x8278,
GL_INTERNALFORMAT_GREEN_TYPE = 0x8279,
GL_INTERNALFORMAT_BLUE_TYPE = 0x827A,
GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B,
GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C,
GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D,
GL_MAX_WIDTH = 0x827E,
GL_MAX_HEIGHT = 0x827F,
GL_MAX_DEPTH = 0x8280,
GL_MAX_LAYERS = 0x8281,
GL_MAX_COMBINED_DIMENSIONS = 0x8282,
GL_COLOR_COMPONENTS = 0x8283,
GL_DEPTH_COMPONENTS = 0x8284,
GL_STENCIL_COMPONENTS = 0x8285,
GL_COLOR_RENDERABLE = 0x8286,
GL_DEPTH_RENDERABLE = 0x8287,
GL_STENCIL_RENDERABLE = 0x8288,
GL_FRAMEBUFFER_RENDERABLE = 0x8289,
GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A,
GL_FRAMEBUFFER_BLEND = 0x828B,
GL_READ_PIXELS = 0x828C,
GL_READ_PIXELS_FORMAT = 0x828D,
GL_READ_PIXELS_TYPE = 0x828E,
GL_TEXTURE_IMAGE_FORMAT = 0x828F,
GL_TEXTURE_IMAGE_TYPE = 0x8290,
GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291,
GL_GET_TEXTURE_IMAGE_TYPE = 0x8292,
GL_MIPMAP = 0x8293,
GL_MANUAL_GENERATE_MIPMAP = 0x8294,
GL_AUTO_GENERATE_MIPMAP = 0x8295,
GL_COLOR_ENCODING = 0x8296,
GL_SRGB_READ = 0x8297,
GL_SRGB_WRITE = 0x8298,
GL_SRGB_DECODE_ARB = 0x8299,
GL_FILTER = 0x829A,
GL_VERTEX_TEXTURE = 0x829B,
GL_TESS_CONTROL_TEXTURE = 0x829C,
GL_TESS_EVALUATION_TEXTURE = 0x829D,
GL_GEOMETRY_TEXTURE = 0x829E,
GL_FRAGMENT_TEXTURE = 0x829F,
GL_COMPUTE_TEXTURE = 0x82A0,
GL_TEXTURE_SHADOW = 0x82A1,
GL_TEXTURE_GATHER = 0x82A2,
GL_TEXTURE_GATHER_SHADOW = 0x82A3,
GL_SHADER_IMAGE_LOAD = 0x82A4,
GL_SHADER_IMAGE_STORE = 0x82A5,
GL_SHADER_IMAGE_ATOMIC = 0x82A6,
GL_IMAGE_TEXEL_SIZE = 0x82A7,
GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8,
GL_IMAGE_PIXEL_FORMAT = 0x82A9,
GL_IMAGE_PIXEL_TYPE = 0x82AA,
GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7,
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC,
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD,
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE,
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF,
GL_TEXTURE_COMPRESSED = 0x86A1,
GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1,
GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2,
GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3,
GL_CLEAR_BUFFER = 0x82B4,
GL_TEXTURE_VIEW = 0x82B5,
GL_VIEW_COMPATIBILITY_CLASS = 0x82B6;
/**
* Returned as possible responses for various &lt;pname&gt; queries
* to GetInternalformativ and GetInternalformati64v
*/
int GL_FULL_SUPPORT = 0x82B7,
GL_CAVEAT_SUPPORT = 0x82B8,
GL_IMAGE_CLASS_4_X_32 = 0x82B9,
GL_IMAGE_CLASS_2_X_32 = 0x82BA,
GL_IMAGE_CLASS_1_X_32 = 0x82BB,
GL_IMAGE_CLASS_4_X_16 = 0x82BC,
GL_IMAGE_CLASS_2_X_16 = 0x82BD,
GL_IMAGE_CLASS_1_X_16 = 0x82BE,
GL_IMAGE_CLASS_4_X_8 = 0x82BF,
GL_IMAGE_CLASS_2_X_8 = 0x82C0,
GL_IMAGE_CLASS_1_X_8 = 0x82C1,
GL_IMAGE_CLASS_11_11_10 = 0x82C2,
GL_IMAGE_CLASS_10_10_10_2 = 0x82C3,
GL_VIEW_CLASS_128_BITS = 0x82C4,
GL_VIEW_CLASS_96_BITS = 0x82C5,
GL_VIEW_CLASS_64_BITS = 0x82C6,
GL_VIEW_CLASS_48_BITS = 0x82C7,
GL_VIEW_CLASS_32_BITS = 0x82C8,
GL_VIEW_CLASS_24_BITS = 0x82C9,
GL_VIEW_CLASS_16_BITS = 0x82CA,
GL_VIEW_CLASS_8_BITS = 0x82CB,
GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC,
GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD,
GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE,
GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF,
GL_VIEW_CLASS_RGTC1_RED = 0x82D0,
GL_VIEW_CLASS_RGTC2_RG = 0x82D1,
GL_VIEW_CLASS_BPTC_UNORM = 0x82D2,
GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3;
@StripPostfix("params")
void glGetInternalformati64v(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @AutoSize("params") @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params);
@Alternate("glGetInternalformati64v")
@GLreturn("params")
@StripPostfix("params")
void glGetInternalformati64v2(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @Constant("1") @GLsizei int bufSize, @OutParameter @GLint64 LongBuffer params);
// ----------------------------------------------------------------------
// ----------------------[ ARB_invalidate_subdata ]----------------------
// ----------------------------------------------------------------------
void glInvalidateTexSubImage(@GLuint int texture, int level,
int xoffset, int yoffset, int zoffset,
@GLsizei int width, @GLsizei int height, @GLsizei int depth);
void glInvalidateTexImage(@GLuint int texture, int level);
void glInvalidateBufferSubData(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length);
void glInvalidateBufferData(@GLuint int buffer);
void glInvalidateFramebuffer(@GLenum int target,
@AutoSize("attachments") @GLsizei int numAttachments,
@Const @GLenum IntBuffer attachments);
void glInvalidateSubFramebuffer(@GLenum int target,
@AutoSize("attachments") @GLsizei int numAttachments,
@Const @GLenum IntBuffer attachments,
int x, int y, @GLsizei int width, @GLsizei int height);
// -----------------------------------------------------------------------
// ----------------------[ ARB_multi_draw_indirect ]----------------------
// -----------------------------------------------------------------------
void glMultiDrawArraysIndirect(@GLenum int mode,
@BufferObject(BufferKind.IndirectBO) @Check("4 * 4 * primcount") @Const @GLvoid ByteBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Alternate("glMultiDrawArraysIndirect")
void glMultiDrawArraysIndirect(@GLenum int mode,
@BufferObject(BufferKind.IndirectBO) @Check("4 * primcount") @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
void glMultiDrawElementsIndirect(@GLenum int mode,
@GLenum int type,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @Const @GLvoid ByteBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
@Alternate("glMultiDrawElementsIndirect")
void glMultiDrawElementsIndirect(@GLenum int mode,
@GLenum int type,
@BufferObject(BufferKind.IndirectBO) @Check("5 * primcount") @Const @GLvoid(PrimitiveType.Kind.INT) IntBuffer indirect,
@GLsizei int primcount,
@GLsizei int stride);
// ---------------------------------------------------------------------------
// ----------------------[ ARB_program_interface_query ]----------------------
// ---------------------------------------------------------------------------
/**
* Accepted by the &lt;programInterface&gt; parameter of GetProgramInterfaceiv,
* GetProgramResourceIndex, GetProgramResourceName, GetProgramResourceiv,
* GetProgramResourceLocation, and GetProgramResourceLocationIndex:
*/
int GL_UNIFORM = 0x92E1,
GL_UNIFORM_BLOCK = 0x92E2,
GL_PROGRAM_INPUT = 0x92E3,
GL_PROGRAM_OUTPUT = 0x92E4,
GL_BUFFER_VARIABLE = 0x92E5,
GL_SHADER_STORAGE_BLOCK = 0x92E6,
GL_VERTEX_SUBROUTINE = 0x92E8,
GL_TESS_CONTROL_SUBROUTINE = 0x92E9,
GL_TESS_EVALUATION_SUBROUTINE = 0x92EA,
GL_GEOMETRY_SUBROUTINE = 0x92EB,
GL_FRAGMENT_SUBROUTINE = 0x92EC,
GL_COMPUTE_SUBROUTINE = 0x92ED,
GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE,
GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF,
GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0,
GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1,
GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2,
GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3,
GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4;
/** Accepted by the &lt;pname&gt; parameter of GetProgramInterfaceiv: */
int GL_ACTIVE_RESOURCES = 0x92F5,
GL_MAX_NAME_LENGTH = 0x92F6,
GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7,
GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8;
/** Accepted in the &lt;props&gt; array of GetProgramResourceiv: */
int GL_NAME_LENGTH = 0x92F9,
GL_TYPE = 0x92FA,
GL_ARRAY_SIZE = 0x92FB,
GL_OFFSET = 0x92FC,
GL_BLOCK_INDEX = 0x92FD,
GL_ARRAY_STRIDE = 0x92FE,
GL_MATRIX_STRIDE = 0x92FF,
GL_IS_ROW_MAJOR = 0x9300,
GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301,
GL_BUFFER_BINDING = 0x9302,
GL_BUFFER_DATA_SIZE = 0x9303,
GL_NUM_ACTIVE_VARIABLES = 0x9304,
GL_ACTIVE_VARIABLES = 0x9305,
GL_REFERENCED_BY_VERTEX_SHADER = 0x9306,
GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307,
GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308,
GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309,
GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A,
GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B,
GL_TOP_LEVEL_ARRAY_SIZE = 0x930C,
GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D,
GL_LOCATION = 0x930E,
GL_LOCATION_INDEX = 0x930F,
GL_IS_PER_PATCH = 0x92E7;
@StripPostfix("params")
void glGetProgramInterfaceiv(@GLuint int program, @GLenum int programInterface,
@GLenum int pname, @Check("1") @OutParameter IntBuffer params);
@Alternate("glGetProgramInterfaceiv")
@GLreturn("params")
@StripPostfix("params")
void glGetProgramInterfaceiv2(@GLuint int program, @GLenum int programInterface,
@GLenum int pname, @OutParameter IntBuffer params);
@GLuint
int glGetProgramResourceIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated @Const @GLchar ByteBuffer name);
@Alternate("glGetProgramResourceIndex")
@GLuint
int glGetProgramResourceIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated CharSequence name);
void glGetProgramResourceName(@GLuint int program, @GLenum int programInterface,
@GLuint int index, @AutoSize(value = "name", canBeNull = true) @GLsizei int bufSize, @Check(value = "1", canBeNull = true) @OutParameter @GLsizei IntBuffer length,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer name);
@Alternate("glGetProgramResourceName")
@GLreturn(value = "name", maxLength = "bufSize")
void glGetProgramResourceName2(@GLuint int program, @GLenum int programInterface,
@GLuint int index, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(name_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer name);
@StripPostfix("params")
void glGetProgramResourceiv(@GLuint int program, @GLenum int programInterface,
@GLuint int index, @AutoSize("props") @GLsizei int propCount,
@Const @GLenum IntBuffer props, @AutoSize("params") @GLsizei int bufSize,
@Check(value = "1", canBeNull = true) @OutParameter @GLsizei IntBuffer length, @OutParameter IntBuffer params);
int glGetProgramResourceLocation(@GLuint int program, @GLenum int programInterface,
@NullTerminated @Const @GLchar ByteBuffer name);
@Alternate("glGetProgramResourceLocation")
int glGetProgramResourceLocation(@GLuint int program, @GLenum int programInterface,
@NullTerminated CharSequence name);
int glGetProgramResourceLocationIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated @Const @GLchar ByteBuffer name);
@Alternate("glGetProgramResourceLocationIndex")
int glGetProgramResourceLocationIndex(@GLuint int program, @GLenum int programInterface,
@NullTerminated CharSequence name);
// --------------------------------------------------------------------------------
// ----------------------[ ARB_shader_storage_buffer_object ]----------------------
// --------------------------------------------------------------------------------
/**
* Accepted by the &lt;target&gt; parameters of BindBuffer, BufferData,
* BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, and
* GetBufferPointerv:
*/
int GL_SHADER_STORAGE_BUFFER = 0x90D2;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetIntegeri_v,
* GetBooleanv, GetInteger64v, GetFloatv, GetDoublev, GetBooleani_v,
* GetIntegeri_v, GetFloati_v, GetDoublei_v, and GetInteger64i_v:
*/
int GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegeri_v, GetBooleani_v,
* GetIntegeri_v, GetFloati_v, GetDoublei_v, and GetInteger64i_v:
*/
int GL_SHADER_STORAGE_BUFFER_START = 0x90D4,
GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5;
/**
* Accepted by the &lt;pname&gt; parameter of GetIntegerv, GetBooleanv,
* GetInteger64v, GetFloatv, and GetDoublev:
*/
int GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6,
GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7,
GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8,
GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9,
GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA,
GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB,
GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC,
GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD,
GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE,
GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF;
/** Accepted in the &lt;barriers&gt; bitfield in glMemoryBarrier: */
int GL_SHADER_STORAGE_BARRIER_BIT = 0x2000;
/**
* Alias for the existing token
* MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS:
*/
int GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39;
void glShaderStorageBlockBinding(@GLuint int program, @GLuint int storageBlockIndex,
@GLuint int storageBlockBinding);
// ---------------------------------------------------------------------
// ----------------------[ ARB_stencil_texturing ]----------------------
// ---------------------------------------------------------------------
/** Accepted by the &lt;pname&gt; parameter of TexParameter* and GetTexParameter*: */
int GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA;
// ------------------------------------------------------------------------
// ----------------------[ ARB_texture_buffer_range ]----------------------
// ------------------------------------------------------------------------
/** Accepted by the &lt;pname&gt; parameter of GetTexLevelParameter: */
int GL_TEXTURE_BUFFER_OFFSET = 0x919D,
GL_TEXTURE_BUFFER_SIZE = 0x919E;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv, GetFloatv,
* and GetDoublev:
*/
int GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F;
void glTexBufferRange(@GLenum int target,
@GLenum int internalformat,
@GLuint int buffer,
@GLintptr long offset,
@GLsizeiptr long size);
// -------------------------------------------------------------------------------
// ----------------------[ ARB_texture_storage_multisample ]----------------------
// -------------------------------------------------------------------------------
void glTexStorage2DMultisample(@GLenum int target,
@GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width,
@GLsizei int height,
boolean fixedsamplelocations);
void glTexStorage3DMultisample(@GLenum int target,
@GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width,
@GLsizei int height,
@GLsizei int depth,
boolean fixedsamplelocations);
// ----------------------------------------------------------------
// ----------------------[ ARB_texture_view ]----------------------
// ----------------------------------------------------------------
/**
* Accepted by the &lt;pname&gt; parameters of GetTexParameterfv and
* GetTexParameteriv:
*/
int GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB,
GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC,
GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD,
GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE,
GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
void glTextureView(@GLuint int texture, @GLenum int target, @GLuint int origtexture,
@GLenum int internalformat,
@GLuint int minlevel, @GLuint int numlevels,
@GLuint int minlayer, @GLuint int numlayers);
// -------------------------------------------------------------------------
// ----------------------[ ARB_vertex_attrib_binding ]----------------------
// -------------------------------------------------------------------------
/** Accepted by the &lt;pname&gt; parameter of GetVertexAttrib*v: */
int GL_VERTEX_ATTRIB_BINDING = 0x82D4,
GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5;
/**
* Accepted by the &lt;target&gt; parameter of GetBooleani_v, GetIntegeri_v,
* GetFloati_v, GetDoublei_v, and GetInteger64i_v:
*/
int GL_VERTEX_BINDING_DIVISOR = 0x82D6,
GL_VERTEX_BINDING_OFFSET = 0x82D7,
GL_VERTEX_BINDING_STRIDE = 0x82D8;
/** Accepted by the &lt;pname&gt; parameter of GetIntegerv, ... */
int GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9,
GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA;
void glBindVertexBuffer(@GLuint int bindingindex, @GLuint int buffer, @GLintptr long offset,
@GLsizei int stride);
void glVertexAttribFormat(@GLuint int attribindex, int size, @GLenum int type,
boolean normalized, @GLuint int relativeoffset);
void glVertexAttribIFormat(@GLuint int attribindex, int size, @GLenum int type,
@GLuint int relativeoffset);
void glVertexAttribLFormat(@GLuint int attribindex, int size, @GLenum int type,
@GLuint int relativeoffset);
void glVertexAttribBinding(@GLuint int attribindex, @GLuint int bindingindex);
void glVertexBindingDivisor(@GLuint int bindingindex, @GLuint int divisor);
}

View File

@ -0,0 +1,233 @@
/*
* Copyright (c) 2002-2008 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
public interface KHR_debug {
/**
* Tokens accepted by the &lt;target&gt; parameters of Enable, Disable, and
* IsEnabled:
*/
int GL_DEBUG_OUTPUT = 0x92E0,
GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242;
/** Returned by GetIntegerv when &lt;pname&gt; is CONTEXT_FLAGS: */
int GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002;
/**
* Tokens accepted by the &lt;value&gt; parameters of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev and GetInteger64v:
*/
int GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143,
GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144,
GL_DEBUG_LOGGED_MESSAGES = 0x9145,
GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243,
GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C,
GL_DEBUG_GROUP_STACK_DEPTH = 0x826D,
GL_MAX_LABEL_LENGTH = 0x82E8;
/** Tokens accepted by the &lt;pname&gt; parameter of GetPointerv: */
int GL_DEBUG_CALLBACK_FUNCTION = 0x8244,
GL_DEBUG_CALLBACK_USER_PARAM = 0x8245;
/**
* Tokens accepted or provided by the &lt;source&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the &lt;sources&gt;
* parameter of GetDebugMessageLog:
*/
int GL_DEBUG_SOURCE_API = 0x8246,
GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247,
GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248,
GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249,
GL_DEBUG_SOURCE_APPLICATION = 0x824A,
GL_DEBUG_SOURCE_OTHER = 0x824B;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the &lt;types&gt;
* parameter of GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_ERROR = 0x824C,
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E,
GL_DEBUG_TYPE_PORTABILITY = 0x824F,
GL_DEBUG_TYPE_PERFORMANCE = 0x8250,
GL_DEBUG_TYPE_OTHER = 0x8251,
GL_DEBUG_TYPE_MARKER = 0x8268;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl and DEBUGPROC, and the &lt;types&gt; parameter of
* GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_PUSH_GROUP = 0x8269,
GL_DEBUG_TYPE_POP_GROUP = 0x826A;
/**
* Tokens accepted or provided by the &lt;severity&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC callback functions,
* and the &lt;severities&gt; parameter of GetDebugMessageLog:
*/
int GL_DEBUG_SEVERITY_HIGH = 0x9146,
GL_DEBUG_SEVERITY_MEDIUM = 0x9147,
GL_DEBUG_SEVERITY_LOW = 0x9148,
GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B;
/** Returned by GetError: */
int GL_STACK_UNDERFLOW = 0x0504,
GL_STACK_OVERFLOW = 0x0503;
/**
* Tokens accepted or provided by the &lt;identifier&gt; parameters of
* ObjectLabel and GetObjectLabel:
*/
int GL_BUFFER = 0x82E0,
GL_SHADER = 0x82E1,
GL_PROGRAM = 0x82E2,
GL_QUERY = 0x82E3,
GL_PROGRAM_PIPELINE = 0x82E4,
GL_SAMPLER = 0x82E6,
GL_DISPLAY_LIST = 0x82E7;
// -----------------------------
@Reuse("GL43")
void glDebugMessageControl(@GLenum int source,
@GLenum int type,
@GLenum int severity,
@AutoSize(value = "ids", canBeNull = true) @GLsizei int count,
@Check(canBeNull = true) @Const @GLuint IntBuffer ids,
boolean enabled);
@Reuse("GL43")
void glDebugMessageInsert(@GLenum int source,
@GLenum int type,
@GLuint int id,
@GLenum int severity,
@AutoSize("buf") @GLsizei int length,
@Const @GLchar ByteBuffer buf);
@Reuse("GL43")
@Alternate("glDebugMessageInsert")
void glDebugMessageInsert(@GLenum int source,
@GLenum int type,
@GLuint int id,
@GLenum int severity,
@Constant("buf.length()") @GLsizei int length,
CharSequence buf);
/**
* The {@code KHRDebugCallback.Handler} implementation passed to this method will be used for
* KHR_debug messages. If callback is null, any previously registered handler for the current
* thread will be unregistered and stop receiving messages.
*
* @param callback the callback function to use
*/
@Reuse("GL43")
void glDebugMessageCallback(@PointerWrapper(value = "GLDEBUGPROC", canBeNull = true) KHRDebugCallback callback,
@Constant("userParam") @PointerWrapper("GLvoid *") long userParam);
@Reuse("GL43")
@GLuint
int glGetDebugMessageLog(@GLuint int count,
@AutoSize(value = "messageLog", canBeNull = true) @GLsizei int bufsize,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer sources,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer types,
@Check(value = "count", canBeNull = true) @GLuint IntBuffer ids,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer severities,
@Check(value = "count", canBeNull = true) @GLsizei IntBuffer lengths,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer messageLog);
// Not really useful and a pain to implement in Java
// void glGetPointerv(@GLenum int pname, void** params);
@Reuse("GL43")
void glPushDebugGroup(@GLenum int source, @GLuint int id, @AutoSize("message") @GLsizei int length,
@Const @GLchar ByteBuffer message);
@Reuse("GL43")
@Alternate("glPushDebugGroup")
void glPushDebugGroup(@GLenum int source, @GLuint int id, @Constant("message.length()") @GLsizei int length,
CharSequence message);
@Reuse("GL43")
void glPopDebugGroup();
@Reuse("GL43")
void glObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glObjectLabel")
void glObjectLabel(@GLenum int identifier, @GLuint int name, @Constant("label.length()") @GLsizei int length,
CharSequence label);
@Reuse("GL43")
void glGetObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glGetObjectLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectLabel2(@GLenum int identifier, @GLuint int name, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Reuse("GL43")
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glObjectPtrLabel")
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @Constant("label.length()") @GLsizei int length,
CharSequence label);
@Reuse("GL43")
void glGetObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Reuse("GL43")
@Alternate("glGetObjectPtrLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectPtrLabel2(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
}

View File

@ -0,0 +1,70 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
public interface KHR_texture_compression_astc_ldr {
/**
* Accepted by the &lt;internalformat&gt; parameter of CompressedTexImage2D,
* CompressedTexSubImage2D, TexStorage2D, TextureStorage2D, TexStorage3D,
* and TextureStorage3D:
*/
int GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0,
GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1,
GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2,
GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3,
GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4,
GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5,
GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6,
GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7,
GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8,
GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9,
GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA,
GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB,
GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC,
GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD;
}

View File

@ -0,0 +1,856 @@
/*
* Copyright (c) 2002-2011 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
import org.lwjgl.opengl.GLSync;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.*;
public interface GLES30 {
int GL_READ_BUFFER = 0x0C02;
int GL_UNPACK_ROW_LENGTH = 0x0CF2;
int GL_UNPACK_SKIP_ROWS = 0x0CF3;
int GL_UNPACK_SKIP_PIXELS = 0x0CF4;
int GL_PACK_ROW_LENGTH = 0x0D02;
int GL_PACK_SKIP_ROWS = 0x0D03;
int GL_PACK_SKIP_PIXELS = 0x0D04;
int GL_COLOR = 0x1800;
int GL_DEPTH = 0x1801;
int GL_STENCIL = 0x1802;
int GL_RED = 0x1903;
int GL_RGB8 = 0x8051;
int GL_RGBA8 = 0x8058;
int GL_RGB10_A2 = 0x8059;
int GL_TEXTURE_BINDING_3D = 0x806A;
int GL_PACK_SKIP_IMAGES = 0x806B;
int GL_PACK_IMAGE_HEIGHT = 0x806C;
int GL_UNPACK_SKIP_IMAGES = 0x806D;
int GL_UNPACK_IMAGE_HEIGHT = 0x806E;
int GL_TEXTURE_3D = 0x806F;
int GL_TEXTURE_WRAP_R = 0x8072;
int GL_MAX_3D_TEXTURE_SIZE = 0x8073;
int GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368;
int GL_MAX_ELEMENTS_VERTICES = 0x80E8;
int GL_MAX_ELEMENTS_INDICES = 0x80E9;
int GL_TEXTURE_MIN_LOD = 0x813A;
int GL_TEXTURE_MAX_LOD = 0x813B;
int GL_TEXTURE_BASE_LEVEL = 0x813C;
int GL_TEXTURE_MAX_LEVEL = 0x813D;
int GL_MIN = 0x8007;
int GL_MAX = 0x8008;
int GL_DEPTH_COMPONENT24 = 0x81A6;
int GL_MAX_TEXTURE_LOD_BIAS = 0x84FD;
int GL_TEXTURE_COMPARE_MODE = 0x884C;
int GL_TEXTURE_COMPARE_FUNC = 0x884D;
int GL_CURRENT_QUERY = 0x8865;
int GL_QUERY_RESULT = 0x8866;
int GL_QUERY_RESULT_AVAILABLE = 0x8867;
int GL_BUFFER_MAPPED = 0x88BC;
int GL_BUFFER_MAP_POINTER = 0x88BD;
int GL_STREAM_READ = 0x88E1;
int GL_STREAM_COPY = 0x88E2;
int GL_STATIC_READ = 0x88E5;
int GL_STATIC_COPY = 0x88E6;
int GL_DYNAMIC_READ = 0x88E9;
int GL_DYNAMIC_COPY = 0x88EA;
int GL_MAX_DRAW_BUFFERS = 0x8824;
int GL_DRAW_BUFFER0 = 0x8825;
int GL_DRAW_BUFFER1 = 0x8826;
int GL_DRAW_BUFFER2 = 0x8827;
int GL_DRAW_BUFFER3 = 0x8828;
int GL_DRAW_BUFFER4 = 0x8829;
int GL_DRAW_BUFFER5 = 0x882A;
int GL_DRAW_BUFFER6 = 0x882B;
int GL_DRAW_BUFFER7 = 0x882C;
int GL_DRAW_BUFFER8 = 0x882D;
int GL_DRAW_BUFFER9 = 0x882E;
int GL_DRAW_BUFFER10 = 0x882F;
int GL_DRAW_BUFFER11 = 0x8830;
int GL_DRAW_BUFFER12 = 0x8831;
int GL_DRAW_BUFFER13 = 0x8832;
int GL_DRAW_BUFFER14 = 0x8833;
int GL_DRAW_BUFFER15 = 0x8834;
int GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49;
int GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A;
int GL_SAMPLER_3D = 0x8B5F;
int GL_SAMPLER_2D_SHADOW = 0x8B62;
int GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B;
int GL_PIXEL_PACK_BUFFER = 0x88EB;
int GL_PIXEL_UNPACK_BUFFER = 0x88EC;
int GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED;
int GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;
int GL_FLOAT_MAT2x3 = 0x8B65;
int GL_FLOAT_MAT2x4 = 0x8B66;
int GL_FLOAT_MAT3x2 = 0x8B67;
int GL_FLOAT_MAT3x4 = 0x8B68;
int GL_FLOAT_MAT4x2 = 0x8B69;
int GL_FLOAT_MAT4x3 = 0x8B6A;
int GL_SRGB = 0x8C40;
int GL_SRGB8 = 0x8C41;
int GL_SRGB8_ALPHA8 = 0x8C43;
int GL_COMPARE_REF_TO_TEXTURE = 0x884E;
int GL_MAJOR_VERSION = 0x821B;
int GL_MINOR_VERSION = 0x821C;
int GL_NUM_EXTENSIONS = 0x821D;
int GL_RGBA32F = 0x8814;
int GL_RGB32F = 0x8815;
int GL_RGBA16F = 0x881A;
int GL_RGB16F = 0x881B;
int GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;
int GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;
int GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904;
int GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905;
int GL_MAX_VARYING_COMPONENTS = 0x8B4B;
int GL_TEXTURE_2D_ARRAY = 0x8C1A;
int GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D;
int GL_R11F_G11F_B10F = 0x8C3A;
int GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;
int GL_RGB9_E5 = 0x8C3D;
int GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;
int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76;
int GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;
int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;
int GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;
int GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;
int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;
int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;
int GL_RASTERIZER_DISCARD = 0x8C89;
int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
int GL_INTERLEAVED_ATTRIBS = 0x8C8C;
int GL_SEPARATE_ATTRIBS = 0x8C8D;
int GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;
int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;
int GL_RGBA32UI = 0x8D70;
int GL_RGB32UI = 0x8D71;
int GL_RGBA16UI = 0x8D76;
int GL_RGB16UI = 0x8D77;
int GL_RGBA8UI = 0x8D7C;
int GL_RGB8UI = 0x8D7D;
int GL_RGBA32I = 0x8D82;
int GL_RGB32I = 0x8D83;
int GL_RGBA16I = 0x8D88;
int GL_RGB16I = 0x8D89;
int GL_RGBA8I = 0x8D8E;
int GL_RGB8I = 0x8D8F;
int GL_RED_INTEGER = 0x8D94;
int GL_RGB_INTEGER = 0x8D98;
int GL_RGBA_INTEGER = 0x8D99;
int GL_SAMPLER_2D_ARRAY = 0x8DC1;
int GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;
int GL_SAMPLER_CUBE_SHADOW = 0x8DC5;
int GL_UNSIGNED_INT_VEC2 = 0x8DC6;
int GL_UNSIGNED_INT_VEC3 = 0x8DC7;
int GL_UNSIGNED_INT_VEC4 = 0x8DC8;
int GL_INT_SAMPLER_2D = 0x8DCA;
int GL_INT_SAMPLER_3D = 0x8DCB;
int GL_INT_SAMPLER_CUBE = 0x8DCC;
int GL_INT_SAMPLER_2D_ARRAY = 0x8DCF;
int GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2;
int GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3;
int GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;
int GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;
int GL_BUFFER_ACCESS_FLAGS = 0x911F;
int GL_BUFFER_MAP_LENGTH = 0x9120;
int GL_BUFFER_MAP_OFFSET = 0x9121;
int GL_DEPTH_COMPONENT32F = 0x8CAC;
int GL_DEPTH32F_STENCIL8 = 0x8CAD;
int GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;
int GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;
int GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211;
int GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212;
int GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213;
int GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214;
int GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215;
int GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216;
int GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217;
int GL_FRAMEBUFFER_DEFAULT = 0x8218;
int GL_FRAMEBUFFER_UNDEFINED = 0x8219;
int GL_DEPTH_STENCIL_ATTACHMENT = 0x821A;
int GL_DEPTH_STENCIL = 0x84F9;
int GL_UNSIGNED_INT_24_8 = 0x84FA;
int GL_DEPTH24_STENCIL8 = 0x88F0;
int GL_UNSIGNED_NORMALIZED = 0x8C17;
int GL_DRAW_FRAMEBUFFER_BINDING = GLES20.GL_FRAMEBUFFER_BINDING;
int GL_READ_FRAMEBUFFER = 0x8CA8;
int GL_DRAW_FRAMEBUFFER = 0x8CA9;
int GL_READ_FRAMEBUFFER_BINDING = 0x8CAA;
int GL_RENDERBUFFER_SAMPLES = 0x8CAB;
int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;
int GL_MAX_COLOR_ATTACHMENTS = 0x8CDF;
int GL_COLOR_ATTACHMENT1 = 0x8CE1;
int GL_COLOR_ATTACHMENT2 = 0x8CE2;
int GL_COLOR_ATTACHMENT3 = 0x8CE3;
int GL_COLOR_ATTACHMENT4 = 0x8CE4;
int GL_COLOR_ATTACHMENT5 = 0x8CE5;
int GL_COLOR_ATTACHMENT6 = 0x8CE6;
int GL_COLOR_ATTACHMENT7 = 0x8CE7;
int GL_COLOR_ATTACHMENT8 = 0x8CE8;
int GL_COLOR_ATTACHMENT9 = 0x8CE9;
int GL_COLOR_ATTACHMENT10 = 0x8CEA;
int GL_COLOR_ATTACHMENT11 = 0x8CEB;
int GL_COLOR_ATTACHMENT12 = 0x8CEC;
int GL_COLOR_ATTACHMENT13 = 0x8CED;
int GL_COLOR_ATTACHMENT14 = 0x8CEE;
int GL_COLOR_ATTACHMENT15 = 0x8CEF;
int GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56;
int GL_MAX_SAMPLES = 0x8D57;
int GL_HALF_FLOAT = 0x140B;
int GL_MAP_READ_BIT = 0x0001;
int GL_MAP_WRITE_BIT = 0x0002;
int GL_MAP_INVALIDATE_RANGE_BIT = 0x0004;
int GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008;
int GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010;
int GL_MAP_UNSYNCHRONIZED_BIT = 0x0020;
int GL_RG = 0x8227;
int GL_RG_INTEGER = 0x8228;
int GL_R8 = 0x8229;
int GL_RG8 = 0x822B;
int GL_R16F = 0x822D;
int GL_R32F = 0x822E;
int GL_RG16F = 0x822F;
int GL_RG32F = 0x8230;
int GL_R8I = 0x8231;
int GL_R8UI = 0x8232;
int GL_R16I = 0x8233;
int GL_R16UI = 0x8234;
int GL_R32I = 0x8235;
int GL_R32UI = 0x8236;
int GL_RG8I = 0x8237;
int GL_RG8UI = 0x8238;
int GL_RG16I = 0x8239;
int GL_RG16UI = 0x823A;
int GL_RG32I = 0x823B;
int GL_RG32UI = 0x823C;
int GL_VERTEX_ARRAY_BINDING = 0x85B5;
int GL_R8_SNORM = 0x8F94;
int GL_RG8_SNORM = 0x8F95;
int GL_RGB8_SNORM = 0x8F96;
int GL_RGBA8_SNORM = 0x8F97;
int GL_SIGNED_NORMALIZED = 0x8F9C;
int GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69;
int GL_COPY_READ_BUFFER = 0x8F36;
int GL_COPY_WRITE_BUFFER = 0x8F37;
int GL_COPY_READ_BUFFER_BINDING = GL_COPY_READ_BUFFER;
int GL_COPY_WRITE_BUFFER_BINDING = GL_COPY_WRITE_BUFFER;
int GL_UNIFORM_BUFFER = 0x8A11;
int GL_UNIFORM_BUFFER_BINDING = 0x8A28;
int GL_UNIFORM_BUFFER_START = 0x8A29;
int GL_UNIFORM_BUFFER_SIZE = 0x8A2A;
int GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B;
int GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D;
int GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E;
int GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F;
int GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30;
int GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31;
int GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33;
int GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34;
int GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35;
int GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36;
int GL_UNIFORM_TYPE = 0x8A37;
int GL_UNIFORM_SIZE = 0x8A38;
int GL_UNIFORM_NAME_LENGTH = 0x8A39;
int GL_UNIFORM_BLOCK_INDEX = 0x8A3A;
int GL_UNIFORM_OFFSET = 0x8A3B;
int GL_UNIFORM_ARRAY_STRIDE = 0x8A3C;
int GL_UNIFORM_MATRIX_STRIDE = 0x8A3D;
int GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E;
int GL_UNIFORM_BLOCK_BINDING = 0x8A3F;
int GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40;
int GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41;
int GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42;
int GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
int GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
int GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
int GL_INVALID_INDEX = 0xFFFFFFFF;
int GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
int GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
int GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111;
int GL_OBJECT_TYPE = 0x9112;
int GL_SYNC_CONDITION = 0x9113;
int GL_SYNC_STATUS = 0x9114;
int GL_SYNC_FLAGS = 0x9115;
int GL_SYNC_FENCE = 0x9116;
int GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117;
int GL_UNSIGNALED = 0x9118;
int GL_SIGNALED = 0x9119;
int GL_ALREADY_SIGNALED = 0x911A;
int GL_TIMEOUT_EXPIRED = 0x911B;
int GL_CONDITION_SATISFIED = 0x911C;
int GL_WAIT_FAILED = 0x911D;
int GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001;
long GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFl;
int GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE;
int GL_ANY_SAMPLES_PASSED = 0x8C2F;
int GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;
int GL_SAMPLER_BINDING = 0x8919;
int GL_RGB10_A2UI = 0x906F;
int GL_TEXTURE_SWIZZLE_R = 0x8E42;
int GL_TEXTURE_SWIZZLE_G = 0x8E43;
int GL_TEXTURE_SWIZZLE_B = 0x8E44;
int GL_TEXTURE_SWIZZLE_A = 0x8E45;
int GL_GREEN = 0x1904;
int GL_BLUE = 0x1905;
int GL_INT_2_10_10_10_REV = 0x8D9F;
int GL_TRANSFORM_FEEDBACK = 0x8E22;
int GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23;
int GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24;
int GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25;
int GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257;
int GL_PROGRAM_BINARY_LENGTH = 0x8741;
int GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE;
int GL_PROGRAM_BINARY_FORMATS = 0x87FF;
int GL_COMPRESSED_R11_EAC = 0x9270;
int GL_COMPRESSED_SIGNED_R11_EAC = 0x9271;
int GL_COMPRESSED_RG11_EAC = 0x9272;
int GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273;
int GL_COMPRESSED_RGB8_ETC2 = 0x9274;
int GL_COMPRESSED_SRGB8_ETC2 = 0x9275;
int GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276;
int GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277;
int GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278;
int GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279;
int GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F;
int GL_MAX_ELEMENT_INDEX = 0x8D6B;
int GL_NUM_SAMPLE_COUNTS = 0x9380;
void glReadBuffer(@GLenum int mode);
void glDrawRangeElements(@GLenum int mode, @GLuint int start, @GLuint int end, @AutoSize("indices") @GLsizei int count,
@AutoType("indices")
@GLenum int type,
@BufferObject(BufferKind.ElementVBO)
@Const
@GLubyte
@GLushort
@GLuint Buffer indices);
void glTexImage3D(@GLenum int target, int level, int internalFormat, @GLsizei int width, @GLsizei int height, @GLsizei int depth, int border, @GLenum int format, @GLenum int type,
@BufferObject(BufferKind.UnpackPBO)
@Check(value = "GLChecks.calculateTexImage3DStorage(pixels, format, type, width, height, depth)", canBeNull = true)
@Const
@GLbyte
@GLshort
@GLint
@GLfloat Buffer pixels);
void glTexSubImage3D(@GLenum int target, int level, int xoffset, int yoffset, int zoffset, @GLsizei int width, @GLsizei int height, @GLsizei int depth, @GLenum int format, @GLenum int type,
@BufferObject(BufferKind.UnpackPBO)
@Check("GLChecks.calculateImageStorage(pixels, format, type, width, height, depth)")
@Const
@GLbyte
@GLshort
@GLint
@GLfloat Buffer pixels);
void glCopyTexSubImage3D(@GLenum int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, @GLsizei int width, @GLsizei int height);
void glCompressedTexImage3D(@GLenum int target, int level, @GLenum int internalformat, @GLsizei int width, @GLsizei int height, @GLsizei int depth, int border, @AutoSize("data") @GLsizei int imageSize,
@BufferObject(BufferKind.UnpackPBO)
@Check
@Const
@GLvoid
ByteBuffer data);
void glCompressedTexSubImage3D(@GLenum int target, int level, int xoffset, int yoffset, int zoffset, @GLsizei int width, @GLsizei int height, @GLsizei int depth, @GLenum int format, @AutoSize("data") @GLsizei int imageSize,
@BufferObject(BufferKind.UnpackPBO)
@Check
@Const
@GLvoid
ByteBuffer data);
void glGenQueries(@AutoSize("ids") @GLsizei int n, @OutParameter @GLuint IntBuffer ids);
@Alternate("glGenQueries")
@GLreturn("ids")
void glGenQueries2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer ids);
void glDeleteQueries(@AutoSize("ids") @GLsizei int n, @GLuint IntBuffer ids);
@Alternate("glDeleteQueries")
void glDeleteQueries(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(id)", keepParam = true) int id);
boolean glIsQuery(@GLuint int id);
void glBeginQuery(@GLenum int target, @GLuint int id);
void glEndQuery(@GLenum int target);
@StripPostfix("params")
void glGetQueryiv(@GLenum int target, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
@Alternate("glGetQueryiv")
@GLreturn("params")
@StripPostfix("params")
void glGetQueryiv2(@GLenum int target, @GLenum int pname, @OutParameter IntBuffer params);
@StripPostfix("params")
void glGetQueryObjectuiv(@GLenum int id, @GLenum int pname, @OutParameter @Check("1") @GLuint IntBuffer params);
@Alternate("glGetQueryObjectuiv")
@GLreturn("params")
@StripPostfix(value = "params", postfix = "v")
void glGetQueryObjectuiv2(@GLenum int id, @GLenum int pname, @OutParameter @GLuint IntBuffer params);
boolean glUnmapBuffer(@GLenum int target);
@StripPostfix("pointer")
@AutoSize("GLChecks.getBufferObjectSize(target)")
void glGetBufferPointerv(@GLenum int target, @GLenum int pname, @OutParameter @Result @GLvoid ByteBuffer pointer);
void glDrawBuffers(@AutoSize("buffers") @GLsizei int size, @Const @GLenum IntBuffer buffers);
@Alternate("glDrawBuffers")
void glDrawBuffers(@Constant("1") @GLsizei int size, @Constant(value = "APIUtil.getInt(buffer)", keepParam = true) int buffer);
@StripPostfix("matrices")
void glUniformMatrix2x3fv(int location, @AutoSize(value = "matrices", expression = " / (2 * 3)") @GLsizei int count,
boolean transpose, FloatBuffer matrices);
@StripPostfix("matrices")
void glUniformMatrix3x2fv(int location, @AutoSize(value = "matrices", expression = " / (3 * 2)") @GLsizei int count,
boolean transpose, FloatBuffer matrices);
@StripPostfix("matrices")
void glUniformMatrix2x4fv(int location, @AutoSize(value = "matrices", expression = " >> 3") @GLsizei int count,
boolean transpose, FloatBuffer matrices);
@StripPostfix("matrices")
void glUniformMatrix4x2fv(int location, @AutoSize(value = "matrices", expression = " >> 3") @GLsizei int count,
boolean transpose, FloatBuffer matrices);
@StripPostfix("matrices")
void glUniformMatrix3x4fv(int location, @AutoSize(value = "matrices", expression = " / (3 * 4)") @GLsizei int count,
boolean transpose, FloatBuffer matrices);
@StripPostfix("matrices")
void glUniformMatrix4x3fv(int location, @AutoSize(value = "matrices", expression = " / (4 * 3)") @GLsizei int count,
boolean transpose, FloatBuffer matrices);
/**
* Transfers a rectangle of pixel values from one
* region of the read framebuffer to another in the draw framebuffer.
* &lt;mask&gt; is the bitwise OR of a number of values indicating which
* buffers are to be copied. The values are COLOR_BUFFER_BIT,
* DEPTH_BUFFER_BIT, and STENCIL_BUFFER_BIT.
* The pixels corresponding to these buffers are
* copied from the source rectangle, bound by the locations (srcX0,
* srcY0) and (srcX1, srcY1) inclusive, to the destination rectangle,
* bound by the locations (dstX0, dstY0) and (dstX1, dstY1)
* inclusive.
* If the source and destination rectangle dimensions do not match,
* the source image is stretched to fit the destination
* rectangle. &lt;filter&gt; must be LINEAR or NEAREST and specifies the
* method of interpolation to be applied if the image is
* stretched.
*/
void glBlitFramebuffer(
@GLint int srcX0, @GLint int srcY0, @GLint int srcX1, @GLint int srcY1,
@GLint int dstX0, @GLint int dstY0, @GLint int dstX1, @GLint int dstY1,
@GLbitfield int mask, @GLenum int filter);
/**
* Establishes the data storage, format, dimensions, and number of
* samples of a renderbuffer object's image.
*/
void glRenderbufferStorageMultisample(
@GLenum int target, @GLsizei int samples,
@GLenum int internalformat,
@GLsizei int width, @GLsizei int height);
void glFramebufferTextureLayer(@GLenum int target, @GLenum int attachment, @GLuint int texture, int level, int layer);
/**
* glMapBufferRange maps a GL buffer object range to a ByteBuffer. The old_buffer argument can be null,
* in which case a new ByteBuffer will be created, pointing to the returned memory. If old_buffer is non-null,
* it will be returned if it points to the same mapped memory and has the same capacity as the buffer object,
* otherwise a new ByteBuffer is created. That way, an application will normally use glMapBufferRange like this:
* <p/>
* ByteBuffer mapped_buffer; mapped_buffer = glMapBufferRange(..., ..., ..., ..., null); ... // Another map on the same buffer mapped_buffer = glMapBufferRange(..., ..., ..., ..., mapped_buffer);
* <p/>
* Only ByteBuffers returned from this method are to be passed as the old_buffer argument. User-created ByteBuffers cannot be reused.
*
* @param old_buffer A ByteBuffer. If this argument points to the same address and has the same capacity as the new mapping, it will be returned and no new buffer will be created.
*
* @return A ByteBuffer representing the mapped buffer memory.
*/
@CachedResult(isRange = true)
@GLvoid
@AutoSize("length")
ByteBuffer glMapBufferRange(@GLenum int target, @GLintptr long offset, @GLsizeiptr long length, @GLbitfield int access);
void glFlushMappedBufferRange(@GLenum int target, @GLintptr long offset, @GLsizeiptr long length);
@Code(" StateTracker.bindVAO(array);")
void glBindVertexArray(@GLuint int array);
@Code(" StateTracker.deleteVAO(arrays);")
void glDeleteVertexArrays(@AutoSize("arrays") @GLsizei int n, @Const @GLuint IntBuffer arrays);
@Alternate("glDeleteVertexArrays")
@Code(" StateTracker.deleteVAO(array);")
void glDeleteVertexArrays(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(array)", keepParam = true) int array);
void glGenVertexArrays(@AutoSize("arrays") @GLsizei int n, @OutParameter @GLuint IntBuffer arrays);
@Alternate("glGenVertexArrays")
@GLreturn("arrays")
void glGenVertexArrays2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer arrays);
boolean glIsVertexArray(@GLuint int array);
@StripPostfix("data")
void glGetIntegeri_v(@GLenum int value, @GLuint int index, @OutParameter @Check("4") IntBuffer data);
@Alternate("glGetIntegeri_v")
@GLreturn("data")
@StripPostfix("data")
void glGetIntegeri_v2(@GLenum int value, @GLuint int index, @OutParameter IntBuffer data);
void glBeginTransformFeedback(@GLenum int primitiveMode);
void glEndTransformFeedback();
void glBindBufferRange(@GLenum int target, @GLuint int index, @GLuint int buffer, @GLintptr long offset, @GLsizeiptr long size);
void glBindBufferBase(@GLenum int target, @GLuint int index, @GLuint int buffer);
void glTransformFeedbackVaryings(@GLuint int program, @GLsizei int count,
@Const @NullTerminated("count") @GLchar @PointerArray("count") ByteBuffer varyings,
@GLenum int bufferMode);
@Alternate("glTransformFeedbackVaryings")
void glTransformFeedbackVaryings(@GLuint int program, @Constant("varyings.length") @GLsizei int count,
@Const @NullTerminated @PointerArray("count") CharSequence[] varyings,
@GLenum int bufferMode);
void glGetTransformFeedbackVarying(@GLuint int program, @GLuint int index, @AutoSize("name") @GLsizei int bufSize,
@OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
@OutParameter @GLsizei @Check("1") IntBuffer size,
@OutParameter @GLenum @Check("1") IntBuffer type,
@OutParameter @GLchar ByteBuffer name);
@Alternate("glGetTransformFeedbackVarying")
@GLreturn(value = "name", maxLength = "bufSize")
void glGetTransformFeedbackVarying2(@GLuint int program, @GLuint int index, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(name_length)") IntBuffer length,
@OutParameter @GLsizei @Check("1") IntBuffer size,
@OutParameter @GLenum @Check("1") IntBuffer type,
@OutParameter @GLchar ByteBuffer name);
void glVertexAttribIPointer(@GLuint int index, int size, @GLenum int type, @GLsizei int stride,
@CachedReference(index = "index", name = "glVertexAttribPointer_buffer")
@BufferObject(BufferKind.ArrayVBO)
@Check
@Const
@GLbyte
@GLubyte
@GLshort
@GLushort
@GLint
@GLuint Buffer buffer);
@StripPostfix("params")
void glGetVertexAttribIiv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") IntBuffer params);
@StripPostfix("params")
void glGetVertexAttribIuiv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") @GLuint IntBuffer params);
@NoErrorCheck
void glVertexAttribI4i(@GLuint int index, int x, int y, int z, int w);
@NoErrorCheck
void glVertexAttribI4ui(@GLuint int index, @GLuint int x, @GLuint int y, @GLuint int z, @GLuint int w);
@NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4iv(@GLuint int index, @Check("4") @Const IntBuffer v);
@NoErrorCheck
@StripPostfix("v")
void glVertexAttribI4uiv(@GLuint int index, @Check("4") @Const @GLuint IntBuffer v);
@StripPostfix("params")
void glGetUniformuiv(@GLuint int program, int location, @OutParameter @Check @GLuint IntBuffer params);
int glGetFragDataLocation(@GLuint int program, @NullTerminated @Const @GLchar ByteBuffer name);
@Alternate("glGetFragDataLocation")
int glGetFragDataLocation(@GLuint int program, @NullTerminated CharSequence name);
void glUniform1ui(int location, @GLuint int v0);
void glUniform2ui(int location, @GLuint int v0, @GLuint int v1);
void glUniform3ui(int location, @GLuint int v0, @GLuint int v1, @GLuint int v2);
void glUniform4ui(int location, @GLuint int v0, @GLuint int v1, @GLuint int v2, @GLuint int v3);
@StripPostfix("value")
void glUniform1uiv(int location, @AutoSize("value") @GLsizei int count, @Const @GLuint IntBuffer value);
@StripPostfix("value")
void glUniform2uiv(int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const @GLuint IntBuffer value);
@StripPostfix("value")
void glUniform3uiv(int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const @GLuint IntBuffer value);
@StripPostfix("value")
void glUniform4uiv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const @GLuint IntBuffer value);
@StripPostfix("value")
void glClearBufferfv(@GLenum int buffer, int drawbuffer, @Const @Check("4") FloatBuffer value);
@StripPostfix("value")
void glClearBufferiv(@GLenum int buffer, int drawbuffer, @Const @Check("4") IntBuffer value);
@StripPostfix("value")
void glClearBufferuiv(@GLenum int buffer, int drawbuffer, @Const @Check("4") IntBuffer value);
void glClearBufferfi(@GLenum int buffer, int drawbuffer, float depth, int stencil);
String glGetStringi(@GLenum int name, @GLuint int index);
void glCopyBufferSubData(@GLenum int readtarget, @GLenum int writetarget, @GLintptr long readoffset, @GLintptr long writeoffset, @GLsizeiptr long size);
void glGetUniformIndices(@GLuint int program, @AutoSize("uniformIndices") @GLsizei int uniformCount,
@Const @NullTerminated("uniformIndices.remaining()") @GLchar @PointerArray("uniformCount") ByteBuffer uniformNames,
@OutParameter @GLuint IntBuffer uniformIndices);
@Alternate("glGetUniformIndices")
void glGetUniformIndices(@GLuint int program, @Constant("uniformNames.length") @GLsizei int uniformCount,
@Const @NullTerminated @PointerArray("uniformCount") CharSequence[] uniformNames,
@OutParameter @Check("uniformNames.length") @GLuint IntBuffer uniformIndices);
@StripPostfix("params")
void glGetActiveUniformsiv(@GLuint int program, @AutoSize("uniformIndices") @GLsizei int uniformCount,
@Const @GLuint IntBuffer uniformIndices,
@GLenum int pname,
@OutParameter @Check("uniformIndices.remaining()") @GLint IntBuffer params);
@Alternate("glGetActiveUniformsiv")
@GLreturn("params")
@StripPostfix("params")
void glGetActiveUniformsiv(@GLuint int program, @Constant("1") @GLsizei int uniformCount,
@Constant(value = "MemoryUtil.getAddress(params.put(1, uniformIndex), 1)", keepParam = true) int uniformIndex, // Reuse params buffer
@GLenum int pname,
@OutParameter @GLint IntBuffer params);
@GLuint
int glGetUniformBlockIndex(@GLuint int program, @Const @NullTerminated @GLchar ByteBuffer uniformBlockName);
@Alternate("glGetUniformBlockIndex")
@GLuint
int glGetUniformBlockIndex(@GLuint int program, @NullTerminated CharSequence uniformBlockName);
@StripPostfix("params")
void glGetActiveUniformBlockiv(@GLuint int program, @GLuint int uniformBlockIndex, @GLenum int pname,
@OutParameter @Check(value = "16") @GLint IntBuffer params);
@Alternate("glGetActiveUniformBlockiv")
@GLreturn("params")
@StripPostfix("params")
void glGetActiveUniformBlockiv2(@GLuint int program, @GLuint int uniformBlockIndex, @GLenum int pname,
@OutParameter @GLint IntBuffer params);
void glGetActiveUniformBlockName(@GLuint int program, @GLuint int uniformBlockIndex, @AutoSize("uniformBlockName") @GLsizei int bufSize,
@OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
@OutParameter @GLchar ByteBuffer uniformBlockName);
@Alternate("glGetActiveUniformBlockName")
@GLreturn(value = "uniformBlockName", maxLength = "bufSize")
void glGetActiveUniformBlockName2(@GLuint int program, @GLuint int uniformBlockIndex, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(uniformBlockName_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer uniformBlockName);
void glUniformBlockBinding(@GLuint int program, @GLuint int uniformBlockIndex, @GLuint int uniformBlockBinding);
void glDrawArraysInstanced(@GLenum int mode, int first, @GLsizei int count, @GLsizei int primcount);
void glDrawElementsInstanced(@GLenum int mode, @AutoSize("indices") @GLsizei int count, @AutoType("indices") @GLenum int type,
@BufferObject(BufferKind.ElementVBO)
@Const
@GLubyte
@GLushort
@GLuint Buffer indices, @GLsizei int primcount);
@PointerWrapper("GLsync")
GLSync glFenceSync(@GLenum int condition, @GLbitfield int flags);
boolean glIsSync(@PointerWrapper("GLsync") GLSync sync);
void glDeleteSync(@PointerWrapper("GLsync") GLSync sync);
@GLenum
int glClientWaitSync(@PointerWrapper("GLsync") GLSync sync, @GLbitfield int flags, @GLuint64 long timeout);
void glWaitSync(@PointerWrapper("GLsync") GLSync sync, @GLbitfield int flags, @GLuint64 long timeout);
@StripPostfix("data")
void glGetInteger64v(@GLenum int pname, @OutParameter @Check("1") @GLint64 LongBuffer data);
@Alternate("glGetInteger64v")
@GLreturn("data")
@StripPostfix("data")
void glGetInteger64v2(@GLenum int pname, @OutParameter @GLint64 LongBuffer data);
@StripPostfix("data")
@Optional(reason = "NV's 3.2 implementation does not expose this (last driver checked: 19?.??)")
void glGetInteger64i_v(@GLenum int value, @GLuint int index, @OutParameter @Check("4") @GLint64 LongBuffer data);
@Alternate("glGetInteger64i_v")
@GLreturn("data")
@StripPostfix("data")
void glGetInteger64i_v2(@GLenum int value, @GLuint int index, @OutParameter @GLint64 LongBuffer data);
@StripPostfix("values")
void glGetSynciv(@PointerWrapper("GLsync") GLSync sync, @GLenum int pname, @AutoSize("values") @GLsizei int bufSize,
@OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
@OutParameter IntBuffer values);
@Alternate("glGetSynciv")
@GLreturn("values")
@StripPostfix("values")
void glGetSynciv2(@PointerWrapper("GLsync") GLSync sync, @GLenum int pname, @Constant("1") @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("0L") IntBuffer length,
@OutParameter IntBuffer values);
@StripPostfix("params")
void glGetBufferParameteri64v(@GLenum int target, @GLenum int pname, @OutParameter @Check("4") LongBuffer params);
@Alternate("glGetBufferParameteri64v")
@GLreturn("params")
@StripPostfix("params")
void glGetBufferParameteri64v2(@GLenum int target, @GLenum int pname, @OutParameter LongBuffer params);
void glGenSamplers(@AutoSize("samplers") @GLsizei int count, @OutParameter @GLuint IntBuffer samplers);
@Alternate("glGenSamplers")
@GLreturn("samplers")
void glGenSamplers2(@Constant("1") @GLsizei int count, @OutParameter @GLuint IntBuffer samplers);
void glDeleteSamplers(@AutoSize("samplers") @GLsizei int count, @Const @GLuint IntBuffer samplers);
@Alternate("glDeleteSamplers")
void glDeleteSamplers(@Constant("1") @GLsizei int count, @Constant(value = "APIUtil.getInt(sampler)", keepParam = true) int sampler);
boolean glIsSampler(@GLuint int sampler);
void glBindSampler(@GLenum int unit, @GLuint int sampler);
void glSamplerParameteri(@GLuint int sampler, @GLenum int pname, int param);
void glSamplerParameterf(@GLuint int sampler, @GLenum int pname, float param);
@StripPostfix("params")
void glSamplerParameteriv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const IntBuffer params);
@StripPostfix("params")
void glSamplerParameterfv(@GLuint int sampler, @GLenum int pname, @Check("4") @Const FloatBuffer params);
@StripPostfix("params")
void glGetSamplerParameteriv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter IntBuffer params);
@Alternate("glGetSamplerParameteriv")
@GLreturn("params")
@StripPostfix(value = "params", postfix = "v")
void glGetSamplerParameteriv2(@GLuint int sampler, @GLenum int pname, @OutParameter IntBuffer params);
@StripPostfix("params")
void glGetSamplerParameterfv(@GLuint int sampler, @GLenum int pname, @Check("4") @OutParameter FloatBuffer params);
@Alternate("glGetSamplerParameterfv")
@GLreturn("params")
@StripPostfix(value = "params", postfix = "v")
void glGetSamplerParameterfv2(@GLuint int sampler, @GLenum int pname, @OutParameter FloatBuffer params);
void glVertexAttribDivisor(@GLuint int index, @GLuint int divisor);
void glBindTransformFeedback(@GLenum int target, @GLuint int id);
void glDeleteTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @Const @GLuint IntBuffer ids);
@Alternate("glDeleteTransformFeedbacks")
void glDeleteTransformFeedbacks(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(id)", keepParam = true) int id);
void glGenTransformFeedbacks(@AutoSize("ids") @GLsizei int n, @OutParameter @GLuint IntBuffer ids);
@Alternate("glGenTransformFeedbacks")
@GLreturn("ids")
void glGenTransformFeedbacks2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer ids);
boolean glIsTransformFeedback(@GLuint int id);
void glPauseTransformFeedback();
void glResumeTransformFeedback();
void glGetProgramBinary(@GLuint int program, @AutoSize("binary") @GLsizei int bufSize,
@Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@Check("1") @GLenum IntBuffer binaryFormat,
@OutParameter @GLvoid ByteBuffer binary);
void glProgramBinary(@GLuint int program, @GLenum int binaryFormat, @Const @GLvoid ByteBuffer binary, @AutoSize("binary") @GLsizei int length);
void glProgramParameteri(@GLuint int program, @GLenum int pname, int value);
void glInvalidateFramebuffer(@GLenum int target,
@AutoSize("attachments") @GLsizei int numAttachments,
@Const @GLenum IntBuffer attachments);
void glInvalidateSubFramebuffer(@GLenum int target,
@AutoSize("attachments") @GLsizei int numAttachments,
@Const @GLenum IntBuffer attachments,
int x, int y, @GLsizei int width, @GLsizei int height);
void glTexStorage2D(@GLenum int target, @GLsizei int levels,
@GLenum int internalformat,
@GLsizei int width, @GLsizei int height);
void glTexStorage3D(@GLenum int target, @GLsizei int levels,
@GLenum int internalformat,
@GLsizei int width, @GLsizei int height, @GLsizei int depth);
@StripPostfix("params")
void glGetInternalformativ(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @AutoSize("params") @GLsizei int bufSize, @OutParameter IntBuffer params);
@Alternate("glGetInternalformativ")
@StripPostfix("params")
@GLreturn("params")
void glGetInternalformativ2(@GLenum int target, @GLenum int internalformat,
@GLenum int pname, @Constant("1") @GLsizei int bufSize, @OutParameter IntBuffer params);
}

View File

@ -0,0 +1,222 @@
/*
* Copyright (c) 2002-2008 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
public interface KHR_debug {
/**
* Tokens accepted by the &lt;target&gt; parameters of Enable, Disable, and
* IsEnabled:
*/
int GL_DEBUG_OUTPUT = 0x92E0,
GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242;
/** Returned by GetIntegerv when &lt;pname&gt; is CONTEXT_FLAGS: */
int GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002;
/**
* Tokens accepted by the &lt;value&gt; parameters of GetBooleanv, GetIntegerv,
* GetFloatv, GetDoublev and GetInteger64v:
*/
int GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143,
GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144,
GL_DEBUG_LOGGED_MESSAGES = 0x9145,
GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243,
GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C,
GL_DEBUG_GROUP_STACK_DEPTH = 0x826D,
GL_MAX_LABEL_LENGTH = 0x82E8;
/** Tokens accepted by the &lt;pname&gt; parameter of GetPointerv: */
int GL_DEBUG_CALLBACK_FUNCTION = 0x8244,
GL_DEBUG_CALLBACK_USER_PARAM = 0x8245;
/**
* Tokens accepted or provided by the &lt;source&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the &lt;sources&gt;
* parameter of GetDebugMessageLog:
*/
int GL_DEBUG_SOURCE_API = 0x8246,
GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247,
GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248,
GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249,
GL_DEBUG_SOURCE_APPLICATION = 0x824A,
GL_DEBUG_SOURCE_OTHER = 0x824B;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC, and the &lt;types&gt;
* parameter of GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_ERROR = 0x824C,
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E,
GL_DEBUG_TYPE_PORTABILITY = 0x824F,
GL_DEBUG_TYPE_PERFORMANCE = 0x8250,
GL_DEBUG_TYPE_OTHER = 0x8251,
GL_DEBUG_TYPE_MARKER = 0x8268;
/**
* Tokens accepted or provided by the &lt;type&gt; parameters of
* DebugMessageControl and DEBUGPROC, and the &lt;types&gt; parameter of
* GetDebugMessageLog:
*/
int GL_DEBUG_TYPE_PUSH_GROUP = 0x8269,
GL_DEBUG_TYPE_POP_GROUP = 0x826A;
/**
* Tokens accepted or provided by the &lt;severity&gt; parameters of
* DebugMessageControl, DebugMessageInsert and DEBUGPROC callback functions,
* and the &lt;severities&gt; parameter of GetDebugMessageLog:
*/
int GL_DEBUG_SEVERITY_HIGH = 0x9146,
GL_DEBUG_SEVERITY_MEDIUM = 0x9147,
GL_DEBUG_SEVERITY_LOW = 0x9148,
GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B;
/** Returned by GetError: */
int GL_STACK_UNDERFLOW = 0x0504,
GL_STACK_OVERFLOW = 0x0503;
/**
* Tokens accepted or provided by the &lt;identifier&gt; parameters of
* ObjectLabel and GetObjectLabel:
*/
int GL_BUFFER = 0x82E0,
GL_SHADER = 0x82E1,
GL_PROGRAM = 0x82E2,
GL_QUERY = 0x82E3,
GL_PROGRAM_PIPELINE = 0x82E4,
GL_SAMPLER = 0x82E6,
GL_DISPLAY_LIST = 0x82E7;
// -----------------------------
void glDebugMessageControl(@GLenum int source,
@GLenum int type,
@GLenum int severity,
@AutoSize(value = "ids", canBeNull = true) @GLsizei int count,
@Check(canBeNull = true) @Const @GLuint IntBuffer ids,
boolean enabled);
void glDebugMessageInsert(@GLenum int source,
@GLenum int type,
@GLuint int id,
@GLenum int severity,
@AutoSize("buf") @GLsizei int length,
@Const @GLchar ByteBuffer buf);
@Alternate("glDebugMessageInsert")
void glDebugMessageInsert(@GLenum int source,
@GLenum int type,
@GLuint int id,
@GLenum int severity,
@Constant("buf.length()") @GLsizei int length,
CharSequence buf);
/**
* The {@code KHRDebugCallback.Handler} implementation passed to this method will be used for
* KHR_debug messages. If callback is null, any previously registered handler for the current
* thread will be unregistered and stop receiving messages.
*
* @param callback the callback function to use
*/
@Code(
// Create a GlobalRef to the callback object and register it with the current context.
javaBeforeNative = "\t\tlong userParam = callback == null ? 0 : CallbackUtil.createGlobalRef(callback.getHandler());\n" +
"\t\tCallbackUtil.registerContextCallbackKHR(userParam);"
)
void glDebugMessageCallback(@PointerWrapper(value = "GLDEBUGPROC", canBeNull = true) KHRDebugCallback callback,
@Constant("userParam") @PointerWrapper("GLvoid *") long userParam);
@GLuint
int glGetDebugMessageLog(@GLuint int count,
@AutoSize(value = "messageLog", canBeNull = true) @GLsizei int bufsize,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer sources,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer types,
@Check(value = "count", canBeNull = true) @GLuint IntBuffer ids,
@Check(value = "count", canBeNull = true) @GLenum IntBuffer severities,
@Check(value = "count", canBeNull = true) @GLsizei IntBuffer lengths,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer messageLog);
// Not really useful and a pain to implement in Java
// void glGetPointerv(@GLenum int pname, void** params);
void glPushDebugGroup(@GLenum int source, @GLuint int id, @AutoSize("message") @GLsizei int length,
@Const @GLchar ByteBuffer message);
@Alternate("glPushDebugGroup")
void glPushDebugGroup(@GLenum int source, @GLuint int id, @Constant("message.length()") @GLsizei int length,
CharSequence message);
void glPopDebugGroup();
void glObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Alternate("glObjectLabel")
void glObjectLabel(@GLenum int identifier, @GLuint int name, @Constant("label.length()") @GLsizei int length,
CharSequence label);
void glGetObjectLabel(@GLenum int identifier, @GLuint int name, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Alternate("glGetObjectLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectLabel2(@GLenum int identifier, @GLuint int name, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize(value = "label", canBeNull = true) @GLsizei int length,
@Check(canBeNull = true) @Const @GLchar ByteBuffer label);
@Alternate("glObjectPtrLabel")
void glObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @Constant("label.length()") @GLsizei int length,
CharSequence label);
void glGetObjectPtrLabel(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @AutoSize("label") @GLsizei int bufSize,
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
@Alternate("glGetObjectPtrLabel")
@GLreturn(value = "label", maxLength = "bufSize")
void glGetObjectPtrLabel2(@PointerWrapper("GLvoid *") org.lwjgl.PointerWrapper ptr, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(label_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer label);
}

View File

@ -0,0 +1,70 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
public interface KHR_texture_compression_astc_ldr {
/**
* Accepted by the &lt;internalformat&gt; parameter of CompressedTexImage2D,
* CompressedTexSubImage2D, TexStorage2D, TextureStorage2D, TexStorage3D,
* and TextureStorage3D:
*/
int GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0,
GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1,
GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2,
GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3,
GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4,
GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5,
GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6,
GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7,
GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8,
GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9,
GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA,
GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB,
GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC,
GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC,
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD;
}

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
public interface OES_required_internalformat {
}

View File

@ -0,0 +1,39 @@
/*
* Copyright (c) 2002-2012 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions 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 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengles;
public interface OES_surfaceless_context {
/** Returned by glCheckFramebufferStatusOES and glCheckFramebufferStatus: */
int GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219;
}