Added support for OpenGL 4.1 and new extensions.
This commit is contained in:
parent
19b501fc46
commit
5842103580
|
@ -7,7 +7,7 @@
|
|||
<fileset dir="${lwjgl.src.native}/generated" includes="**"/>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Compiles the Java generator source code -->
|
||||
<target name="generators" description="Compiles the native method generators">
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/util/generator/**.java" source="1.5" target="1.5" taskname="generator">
|
||||
|
@ -17,6 +17,7 @@
|
|||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" source="1.4" target="1.4" taskname="generator">
|
||||
<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/PointerWrapper.java"/>
|
||||
</javac>
|
||||
</target>
|
||||
|
@ -42,7 +43,7 @@
|
|||
<fileset dir="${lwjgl.src.templates}" includes="org/lwjgl/openal/AL10.java, org/lwjgl/openal/AL11.java, org/lwjgl/openal/EFX10.java"/>
|
||||
</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">
|
||||
|
@ -111,7 +112,7 @@
|
|||
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Generate context capabilities -->
|
||||
<target name="generate-opengl-capabilities" depends="generators" description="Generates java and native source for GL">
|
||||
<apply executable="apt" parallel="true">
|
||||
|
@ -125,8 +126,8 @@
|
|||
<arg value="-Acontextspecific"/>
|
||||
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
</target>
|
||||
|
||||
<!-- Generate context capabilities [DEBUG] -->
|
||||
<target name="generate-opengl-capabilities-debug" depends="generators" description="Generates java and native source for GL">
|
||||
<apply executable="apt" parallel="true">
|
||||
|
@ -141,5 +142,5 @@
|
|||
<arg value="-Acontextspecific"/>
|
||||
<fileset dir="${lwjgl.src.templates}" includes="${opengl-template-pattern}"/>
|
||||
</apply>
|
||||
</target>
|
||||
</target>
|
||||
</project>
|
||||
|
|
|
@ -59,7 +59,7 @@ public final class AMDDebugOutputCallback implements PointerWrapper {
|
|||
private final long pointer;
|
||||
|
||||
/**
|
||||
* Creates a AMDDebugOutputCallback with a default callback handler.
|
||||
* Creates an AMDDebugOutputCallback with a default callback handler.
|
||||
* The default handler will simply print the message on System.err.
|
||||
*/
|
||||
public AMDDebugOutputCallback() {
|
||||
|
@ -120,7 +120,7 @@ public final class AMDDebugOutputCallback implements PointerWrapper {
|
|||
}
|
||||
|
||||
/**
|
||||
* Creates a AMDDebugOutputCallback with the specified callback handlers.
|
||||
* Creates an AMDDebugOutputCallback with the specified callback handlers.
|
||||
* The handler's {@code handleMessage} method will be called whenever
|
||||
* debug output is generated by the GL.
|
||||
*
|
||||
|
|
|
@ -28,7 +28,7 @@ final class AMDDebugOutputUtil {
|
|||
if ( !ctx.getContextAttribs().isDebug() )
|
||||
throw new IllegalStateException("The current context is not a debug context.");
|
||||
|
||||
if ( !GLContext.getCapabilities().GL_AMD_debug_output )
|
||||
if ( !GLContext.getCapabilities().GL_AMD_debug_output )
|
||||
throw new IllegalStateException("AMD_debug_output is not supported.");
|
||||
|
||||
handlers.put(ctx, handler);
|
||||
|
|
|
@ -0,0 +1,190 @@
|
|||
/*
|
||||
* 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;
|
||||
|
||||
/**
|
||||
* Instances of this class are needed to use the callback functionality of the ARB_debug_output extension.
|
||||
* A debug context must be current before creating instances of this class. 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 ARBDebugOutputCallback implements PointerWrapper {
|
||||
|
||||
/** Severity levels. */
|
||||
private static final int
|
||||
GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146,
|
||||
GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147,
|
||||
GL_DEBUG_SEVERITY_LOW_ARB = 0x9148;
|
||||
|
||||
/** Sources. */
|
||||
private static final int
|
||||
GL_DEBUG_SOURCE_API_ARB = 0x8246,
|
||||
GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247,
|
||||
GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248,
|
||||
GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249,
|
||||
GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A,
|
||||
GL_DEBUG_SOURCE_OTHER_ARB = 0x824B;
|
||||
|
||||
/** Types. */
|
||||
private static final int
|
||||
GL_DEBUG_TYPE_ERROR_ARB = 0x824C,
|
||||
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D,
|
||||
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E,
|
||||
GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F,
|
||||
GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250,
|
||||
GL_DEBUG_TYPE_OTHER_ARB = 0x8251;
|
||||
|
||||
private final long pointer;
|
||||
|
||||
/**
|
||||
* Creates an ARBDebugOutputCallback with a default callback handler.
|
||||
* The default handler will simply print the message on System.err.
|
||||
*/
|
||||
public ARBDebugOutputCallback() {
|
||||
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] ARB_debug_output message");
|
||||
System.err.println("\tID: " + id);
|
||||
|
||||
String description;
|
||||
switch ( source ) {
|
||||
case GL_DEBUG_SOURCE_API_ARB:
|
||||
description = "API";
|
||||
break;
|
||||
case GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB:
|
||||
description = "WINDOW SYSTEM";
|
||||
break;
|
||||
case GL_DEBUG_SOURCE_SHADER_COMPILER_ARB:
|
||||
description = "SHADER COMPILER";
|
||||
break;
|
||||
case GL_DEBUG_SOURCE_THIRD_PARTY_ARB:
|
||||
description = "THIRD PARTY";
|
||||
break;
|
||||
case GL_DEBUG_SOURCE_APPLICATION_ARB:
|
||||
description = "APPLICATION";
|
||||
break;
|
||||
case GL_DEBUG_SOURCE_OTHER_ARB:
|
||||
description = "OTHER";
|
||||
break;
|
||||
default:
|
||||
description = "Unknown (" + Integer.toHexString(source) + ")";
|
||||
}
|
||||
System.err.println("\tSource: " + description);
|
||||
|
||||
switch ( type ) {
|
||||
case GL_DEBUG_TYPE_ERROR_ARB:
|
||||
description = "ERROR";
|
||||
break;
|
||||
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB:
|
||||
description = "DEPRECATED BEHAVIOR";
|
||||
break;
|
||||
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB:
|
||||
description = "UNDEFINED BEHAVIOR";
|
||||
break;
|
||||
case GL_DEBUG_TYPE_PORTABILITY_ARB:
|
||||
description = "PORTABILITY";
|
||||
break;
|
||||
case GL_DEBUG_TYPE_PERFORMANCE_ARB:
|
||||
description = "PERFORMANCE";
|
||||
break;
|
||||
case GL_DEBUG_TYPE_OTHER_ARB:
|
||||
description = "OTHER";
|
||||
break;
|
||||
default:
|
||||
description = "Unknown (" + Integer.toHexString(source) + ")";
|
||||
}
|
||||
System.err.println("\tType: " + description);
|
||||
|
||||
switch ( severity ) {
|
||||
case GL_DEBUG_SEVERITY_HIGH_ARB:
|
||||
description = "HIGH";
|
||||
break;
|
||||
case GL_DEBUG_SEVERITY_MEDIUM_ARB:
|
||||
description = "MEDIUM";
|
||||
break;
|
||||
case GL_DEBUG_SEVERITY_LOW_ARB:
|
||||
description = "LOW";
|
||||
break;
|
||||
default:
|
||||
description = "Unknown (" + Integer.toHexString(source) + ")";
|
||||
}
|
||||
System.err.println("\tSeverity: " + description);
|
||||
|
||||
System.err.println("\tMessage: " + message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an ARBDebugOutputCallback with the specified callback handlers.
|
||||
* The handler's {@code handleMessage} method will be called whenever
|
||||
* debug output is generated by the GL.
|
||||
*
|
||||
* @param handler the callback handler
|
||||
*/
|
||||
public ARBDebugOutputCallback(final Handler handler) {
|
||||
try {
|
||||
// We have to call registerHandler reflectively because we need this class to compile before we run the Generator.
|
||||
// The registerHandler method depends on org.lwjgl.opengl.Context, if we touched that we would need to compile
|
||||
// the whole library (which is not possible).
|
||||
Class.forName("org.lwjgl.opengl.ARBDebugOutputUtil").getMethod("registerHandler", new Class[] { Handler.class }).invoke(null, new Object[] { handler });
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e.getCause() != null ? e.getCause() : e);
|
||||
}
|
||||
this.pointer = getFunctionPointer();
|
||||
}
|
||||
|
||||
public long getPointer() {
|
||||
return pointer;
|
||||
}
|
||||
|
||||
private static native long getFunctionPointer();
|
||||
|
||||
/** Implementations of this interface can be used to receive ARB_debug_output notifications. */
|
||||
public interface Handler {
|
||||
|
||||
/**
|
||||
* This method will be called when an AMD_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);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package org.lwjgl.opengl;
|
||||
|
||||
import org.lwjgl.opengl.ARBDebugOutputCallback.Handler;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Map;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
/**
|
||||
* This class handles ARBDebugOutputCallback.Handler registration and notification.
|
||||
* We could have put this in ARBDebugOutputCallback, but we need to compile it for
|
||||
* the generator. Registration is done reflectively in the ARBDebugOutputCallback
|
||||
* constructor.
|
||||
*
|
||||
* @author Spasi
|
||||
*/
|
||||
final class ARBDebugOutputUtil {
|
||||
|
||||
private static final Map handlers = new WeakHashMap();
|
||||
|
||||
private ARBDebugOutputUtil() {}
|
||||
|
||||
public static void registerHandler(final Handler handler) {
|
||||
final Context ctx = Context.getCurrentContext();
|
||||
if ( ctx == null )
|
||||
throw new IllegalStateException("No context is current.");
|
||||
|
||||
if ( !ctx.getContextAttribs().isDebug() )
|
||||
throw new IllegalStateException("The current context is not a debug context.");
|
||||
|
||||
if ( !GLContext.getCapabilities().GL_ARB_debug_output )
|
||||
throw new IllegalStateException("ARB_debug_output is not supported.");
|
||||
|
||||
handlers.put(ctx, handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called by native code. If finds the callback handler associated
|
||||
* with the current Thread and calls its {@code handleMessage} method.
|
||||
*
|
||||
* @param source the message source
|
||||
* @param type the message type
|
||||
* @param id the message ID
|
||||
* @param severity the message severity
|
||||
* @param message the string representation of the message.
|
||||
* @param userParam the user-specified data specified in glDebugMessageCallbackAMD. For the current implementation this is always null and we ignore it.
|
||||
*/
|
||||
private static void messageCallback(final int source, final int type, final int id, final int severity, final String message, final ByteBuffer userParam) {
|
||||
synchronized ( GlobalLock.lock ) {
|
||||
final Context ctx = Context.getCurrentContext();
|
||||
if ( ctx == null )
|
||||
return;
|
||||
|
||||
final Handler handler = (Handler)handlers.get(ctx);
|
||||
if ( handler != null )
|
||||
handler.handleMessage(source, type, id, severity, message);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -56,6 +56,13 @@ import java.nio.IntBuffer;
|
|||
*/
|
||||
public final class ContextAttribs {
|
||||
|
||||
// Same values for GLX & WGL
|
||||
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;
|
||||
|
||||
private int majorVersion;
|
||||
private int minorVersion;
|
||||
|
||||
|
@ -63,10 +70,13 @@ public final class ContextAttribs {
|
|||
|
||||
private boolean debug;
|
||||
private boolean forwardCompatible;
|
||||
private boolean robustAccess;
|
||||
|
||||
private boolean profileCore;
|
||||
private boolean profileCompatibility;
|
||||
|
||||
private boolean loseContextOnReset;
|
||||
|
||||
public ContextAttribs() {
|
||||
this(1, 0);
|
||||
}
|
||||
|
@ -82,14 +92,6 @@ public final class ContextAttribs {
|
|||
|
||||
this.majorVersion = majorVersion;
|
||||
this.minorVersion = minorVersion;
|
||||
|
||||
this.layerPlane = 0;
|
||||
|
||||
this.debug = false;
|
||||
this.forwardCompatible = false;
|
||||
|
||||
this.profileCore = false;
|
||||
this.profileCompatibility = false;
|
||||
}
|
||||
|
||||
private ContextAttribs(final ContextAttribs attribs) {
|
||||
|
@ -100,9 +102,12 @@ public final class ContextAttribs {
|
|||
|
||||
this.debug = attribs.debug;
|
||||
this.forwardCompatible = attribs.forwardCompatible;
|
||||
this.robustAccess = attribs.robustAccess;
|
||||
|
||||
this.profileCore = attribs.profileCore;
|
||||
this.profileCompatibility = attribs.profileCompatibility;
|
||||
|
||||
this.loseContextOnReset = attribs.loseContextOnReset;
|
||||
}
|
||||
|
||||
public int getMajorVersion() {
|
||||
|
@ -193,6 +198,24 @@ public final class ContextAttribs {
|
|||
return attribs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a ContextAttribs instance with CONTEXT_RESET_NOTIFICATION_STRATEGY set
|
||||
* to LOSE_CONTEXT_ON_RESET if the parameter is true or to NO_RESET_NOTIFICATION
|
||||
* if the parameter is false.
|
||||
*
|
||||
* @param loseContextOnReset
|
||||
*
|
||||
* @return the new ContextAttribs
|
||||
*/
|
||||
public ContextAttribs withLoseContextOnReset(final boolean loseContextOnReset) {
|
||||
if ( loseContextOnReset == this.loseContextOnReset )
|
||||
return this;
|
||||
|
||||
final ContextAttribs attribs = new ContextAttribs(this);
|
||||
attribs.loseContextOnReset = loseContextOnReset;
|
||||
return attribs;
|
||||
}
|
||||
|
||||
private static ContextAttribsImplementation getImplementation() {
|
||||
switch ( LWJGLUtil.getPlatform() ) {
|
||||
case LWJGLUtil.PLATFORM_LINUX:
|
||||
|
@ -221,6 +244,8 @@ public final class ContextAttribs {
|
|||
flags |= implementation.getDebugBit();
|
||||
if ( forwardCompatible )
|
||||
flags |= implementation.getForwardCompatibleBit();
|
||||
if ( robustAccess )
|
||||
flags |= CONTEXT_ROBUST_ACCESS_BIT_ARB;
|
||||
if ( 0 < flags )
|
||||
attribCount++;
|
||||
|
||||
|
@ -247,6 +272,8 @@ public final class ContextAttribs {
|
|||
attribs.put(implementation.getFlagsAttrib()).put(flags);
|
||||
if ( 0 < profileMask )
|
||||
attribs.put(implementation.getProfileMaskAttrib()).put(profileMask);
|
||||
if ( loseContextOnReset )
|
||||
attribs.put(CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB).put(LOSE_CONTEXT_ON_RESET_ARB);
|
||||
|
||||
attribs.put(0);
|
||||
attribs.rewind();
|
||||
|
@ -261,6 +288,9 @@ public final class ContextAttribs {
|
|||
sb.append(" - Layer=").append(layerPlane);
|
||||
sb.append(" - Debug=").append(debug);
|
||||
sb.append(" - ForwardCompatible=").append(forwardCompatible);
|
||||
sb.append(" - RobustAccess=").append(robustAccess);
|
||||
if ( robustAccess )
|
||||
sb.append(" (").append(loseContextOnReset ? "LOSE_CONTEXT_ON_RESET" : "NO_RESET_NOTIFICATION");
|
||||
sb.append(" - Profile=");
|
||||
if ( profileCore )
|
||||
sb.append("Core");
|
||||
|
|
|
@ -215,37 +215,21 @@ public final class GLContext {
|
|||
LWJGLUtil.log("The major and/or minor OpenGL version is malformed: " + e.getMessage());
|
||||
}
|
||||
|
||||
// ----------------------[ 4.X ]----------------------
|
||||
if ( 4 <= majorVersion )
|
||||
supported_extensions.add("OpenGL40");
|
||||
final int[][] GL_VERSIONS = {
|
||||
{ 1, 2, 3, 4, 5 }, // OpenGL 1
|
||||
{ 0, 1 }, // OpenGL 2
|
||||
{ 0, 1, 2, 3 }, // OpenGL 3
|
||||
{ 0, 1 }, // OpenGL 4
|
||||
};
|
||||
|
||||
// ----------------------[ 3.X ]----------------------
|
||||
if ( 3 < majorVersion || (3 == majorVersion && 3 <= minorVersion) )
|
||||
supported_extensions.add("OpenGL33");
|
||||
if ( 3 < majorVersion || (3 == majorVersion && 2 <= minorVersion) )
|
||||
supported_extensions.add("OpenGL32");
|
||||
if ( 3 < majorVersion || (3 == majorVersion && 1 <= minorVersion) )
|
||||
supported_extensions.add("OpenGL31");
|
||||
if ( 3 <= majorVersion )
|
||||
supported_extensions.add("OpenGL30");
|
||||
|
||||
// ----------------------[ 2.X ]----------------------
|
||||
if ( 2 < majorVersion || (2 == majorVersion && 1 <= minorVersion) )
|
||||
supported_extensions.add("OpenGL21");
|
||||
if ( 2 <= majorVersion )
|
||||
supported_extensions.add("OpenGL20");
|
||||
|
||||
// ----------------------[ 1.X ]----------------------
|
||||
if ( 1 < majorVersion || 5 <= minorVersion )
|
||||
supported_extensions.add("OpenGL15");
|
||||
if ( 1 < majorVersion || 4 <= minorVersion )
|
||||
supported_extensions.add("OpenGL14");
|
||||
if ( 1 < majorVersion || 3 <= minorVersion )
|
||||
supported_extensions.add("OpenGL13");
|
||||
if ( 1 < majorVersion || 2 <= minorVersion )
|
||||
supported_extensions.add("OpenGL12");
|
||||
if ( 1 < majorVersion || 1 <= minorVersion )
|
||||
supported_extensions.add("OpenGL11");
|
||||
for ( int major = 1; major <= GL_VERSIONS.length; major++ ) {
|
||||
int[] minors = GL_VERSIONS[major - 1];
|
||||
for ( int i = 0; i < minors.length; i++ ) {
|
||||
int minor = minors[i];
|
||||
if ( major < majorVersion || (major == majorVersion && minor <= minorVersion) )
|
||||
supported_extensions.add("OpenGL" + Integer.toString(major) + Integer.toString(minor));
|
||||
}
|
||||
}
|
||||
|
||||
int profileMask = 0;
|
||||
|
||||
|
|
|
@ -133,9 +133,9 @@ public class GLTypeMap implements TypeMap {
|
|||
return "s";
|
||||
else if ( annotation_type.equals(GLubyte.class) || annotation_type.equals(GLbyte.class) )
|
||||
return "b";
|
||||
else if ( annotation_type.equals(GLfloat.class) )
|
||||
else if ( annotation_type.equals(GLfloat.class) || annotation_type.equals(GLclampf.class) )
|
||||
return "f";
|
||||
else if ( annotation_type.equals(GLdouble.class) )
|
||||
else if ( annotation_type.equals(GLdouble.class) || annotation_type.equals(GLclampd.class) )
|
||||
return "d";
|
||||
else if ( annotation_type.equals(GLhalf.class) )
|
||||
return "h";
|
||||
|
|
|
@ -136,6 +136,9 @@ typedef struct __GLsync *GLsync;
|
|||
/* AMD_debug_output callback function pointer. */
|
||||
typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam);
|
||||
|
||||
/* 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);
|
||||
|
||||
/* helper stuff */
|
||||
|
||||
/* initializes everything, call this right after the rc is created. the function returns true if successful */
|
||||
|
|
|
@ -41,7 +41,11 @@
|
|||
#include "extgl.h"
|
||||
#include "org_lwjgl_opengl_AMDDebugOutputCallback.h"
|
||||
|
||||
static void APIENTRY debugOutputCallback(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam) {
|
||||
static jclass debugOutputCallbackClassAMD;
|
||||
static jmethodID debugOutputCallbackMethodAMD;
|
||||
|
||||
static void APIENTRY debugOutputCallbackAMD(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam) {
|
||||
/*
|
||||
jclass callback_class;
|
||||
jmethodID callback_method;
|
||||
JNIEnv *env = getThreadEnv();
|
||||
|
@ -60,8 +64,25 @@ static void APIENTRY debugOutputCallback(GLuint id, GLenum category, GLenum seve
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
JNIEnv *env = getThreadEnv();
|
||||
if ( env != NULL && !(*env)->ExceptionOccurred(env) && debugOutputCallbackMethodAMD != NULL ) {
|
||||
(*env)->CallStaticVoidMethod(env, debugOutputCallbackClassAMD, debugOutputCallbackMethodAMD,
|
||||
(jint)id,
|
||||
(jint)category,
|
||||
(jint)severity,
|
||||
NewStringNativeWithLength(env, message, length),
|
||||
NULL // Ignoring user param, pointless for our implementation
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_AMDDebugOutputCallback_getFunctionPointer(JNIEnv *env, jclass clazz) {
|
||||
return (jlong)(intptr_t)&debugOutputCallback;
|
||||
// Cache the callback class and methodID
|
||||
debugOutputCallbackClassAMD = (*env)->FindClass(env, "org/lwjgl/opengl/AMDDebugOutputUtil");
|
||||
if ( debugOutputCallbackClassAMD != NULL )
|
||||
debugOutputCallbackMethodAMD = (*env)->GetStaticMethodID(env, debugOutputCallbackClassAMD, "messageCallback", "(IIILjava/lang/String;Ljava/nio/ByteBuffer;)V");
|
||||
|
||||
return (jlong)(intptr_t)&debugOutputCallbackAMD;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* 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 AMD_debug_output function callback.
|
||||
*
|
||||
* @author Spasi
|
||||
*/
|
||||
|
||||
#include <jni.h>
|
||||
#include "common_tools.h"
|
||||
#include "extgl.h"
|
||||
#include "org_lwjgl_opengl_ARBDebugOutputCallback.h"
|
||||
|
||||
static jclass debugOutputCallbackClassARB;
|
||||
static jmethodID debugOutputCallbackMethodARB;
|
||||
|
||||
static void APIENTRY debugOutputCallbackARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam) {
|
||||
JNIEnv *env = getThreadEnv();
|
||||
if ( env != NULL && !(*env)->ExceptionOccurred(env) && debugOutputCallbackMethodARB != NULL ) {
|
||||
(*env)->CallStaticVoidMethod(env, debugOutputCallbackClassARB, debugOutputCallbackMethodARB,
|
||||
(jint)source,
|
||||
(jint)type,
|
||||
(jint)id,
|
||||
(jint)severity,
|
||||
NewStringNativeWithLength(env, message, length),
|
||||
NULL // Ignoring user param, pointless for our implementation
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_ARBDebugOutputCallback_getFunctionPointer(JNIEnv *env, jclass clazz) {
|
||||
// Cache the callback class and methodID
|
||||
debugOutputCallbackClassARB = (*env)->FindClass(env, "org/lwjgl/opengl/ARBDebugOutputUtil");
|
||||
if ( debugOutputCallbackClassARB != NULL )
|
||||
debugOutputCallbackMethodARB = (*env)->GetStaticMethodID(env, debugOutputCallbackClassARB, "messageCallback", "(IIIILjava/lang/String;Ljava/nio/ByteBuffer;)V");
|
||||
|
||||
return (jlong)(intptr_t)&debugOutputCallbackARB;
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
* 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 java.nio.ByteBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
public interface ARB_ES2_compatibility {
|
||||
|
||||
/**
|
||||
* Accepted by the <value> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv, and GetDoublev:
|
||||
*/
|
||||
int GL_SHADER_COMPILER = 0x8DFA,
|
||||
GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9,
|
||||
GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB,
|
||||
GL_MAX_VARYING_VECTORS = 0x8DFC,
|
||||
GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD,
|
||||
GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
|
||||
GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
|
||||
|
||||
/** Accepted by the <type> parameter of VertexAttribPointer: */
|
||||
int GL_FIXED = 0x140C;
|
||||
|
||||
/**
|
||||
* Accepted by the <precisiontype> parameter of
|
||||
* GetShaderPrecisionFormat:
|
||||
*/
|
||||
int GL_LOW_FLOAT = 0x8DF0,
|
||||
GL_MEDIUM_FLOAT = 0x8DF1,
|
||||
GL_HIGH_FLOAT = 0x8DF2,
|
||||
GL_LOW_INT = 0x8DF3,
|
||||
GL_MEDIUM_INT = 0x8DF4,
|
||||
GL_HIGH_INT = 0x8DF5;
|
||||
|
||||
void glReleaseShaderCompiler();
|
||||
|
||||
void glShaderBinary(@AutoSize("shaders") @GLsizei int count, @Const @GLuint IntBuffer shaders,
|
||||
@GLenum int binaryformat, @Const @GLvoid ByteBuffer binary, @AutoSize("binary") @GLsizei int length);
|
||||
|
||||
void glGetShaderPrecisionFormat(@GLenum int shadertype, @GLenum int precisiontype,
|
||||
@OutParameter @Check("2") IntBuffer range,
|
||||
@OutParameter @Check("1") IntBuffer precision);
|
||||
|
||||
void glDepthRangef(@GLclampf float n, @GLclampf float f);
|
||||
|
||||
void glClearDepthf(@GLclampf float d);
|
||||
|
||||
}
|
|
@ -0,0 +1,121 @@
|
|||
/*
|
||||
* 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 java.nio.ByteBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
public interface ARB_debug_output {
|
||||
|
||||
/**
|
||||
* Tokens accepted by the <target> parameters of Enable, Disable,
|
||||
* and IsEnabled:
|
||||
*/
|
||||
int GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242;
|
||||
|
||||
/**
|
||||
* Tokens accepted by the <value> parameters of GetBooleanv,
|
||||
* GetIntegerv, GetFloatv, and GetDoublev:
|
||||
*/
|
||||
int GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143,
|
||||
GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144,
|
||||
GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145,
|
||||
GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243;
|
||||
|
||||
/** Tokens accepted by the <pname> parameter of GetPointerv: */
|
||||
int GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244,
|
||||
GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245;
|
||||
|
||||
/**
|
||||
* Tokens accepted or provided by the <source> parameters of
|
||||
* DebugMessageControlARB, DebugMessageInsertARB and DEBUGPROCARB,
|
||||
* and the <sources> parameter of GetDebugMessageLogARB:
|
||||
*/
|
||||
int GL_DEBUG_SOURCE_API_ARB = 0x8246,
|
||||
GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247,
|
||||
GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248,
|
||||
GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249,
|
||||
GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A,
|
||||
GL_DEBUG_SOURCE_OTHER_ARB = 0x824B;
|
||||
|
||||
/**
|
||||
* Tokens accepted or provided by the <type> parameters of
|
||||
* DebugMessageControlARB, DebugMessageInsertARB and DEBUGPROCARB,
|
||||
* and the <types> parameter of GetDebugMessageLogARB:
|
||||
*/
|
||||
int GL_DEBUG_TYPE_ERROR_ARB = 0x824C,
|
||||
GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D,
|
||||
GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E,
|
||||
GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F,
|
||||
GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250,
|
||||
GL_DEBUG_TYPE_OTHER_ARB = 0x8251;
|
||||
|
||||
/**
|
||||
* Tokens accepted or provided by the <severity> parameters of
|
||||
* DebugMessageControlARB, DebugMessageInsertARB and DEBUGPROCARB
|
||||
* callback functions, and the <severities> parameter of
|
||||
* GetDebugMessageLogARB:
|
||||
*/
|
||||
int GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146,
|
||||
GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147,
|
||||
GL_DEBUG_SEVERITY_LOW_ARB = 0x9148;
|
||||
|
||||
void glDebugMessageControlARB(@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 glDebugMessageInsertARB(@GLenum int source, @GLenum int type, @GLuint int id, @GLenum int severity, @AutoSize("buf") @GLsizei int length, @Const @GLchar ByteBuffer buf);
|
||||
|
||||
@Alternate("glDebugMessageInsertARB")
|
||||
void glDebugMessageInsertARB(@GLenum int source, @GLenum int type, @GLuint int id, @GLenum int severity, @Constant("buf.length()") @GLsizei int length, CharSequence buf);
|
||||
|
||||
void glDebugMessageCallbackARB(@GLpointer(value = "GLDEBUGPROCARB", canBeNull = true) ARBDebugOutputCallback callback, @Check(canBeNull = true) @GLvoid ByteBuffer userParam);
|
||||
|
||||
@GLuint
|
||||
int glGetDebugMessageLogARB(@GLuint int count,
|
||||
@AutoSize(value = "messageLog", canBeNull = true) @GLsizei int logSize,
|
||||
@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);
|
||||
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* 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 java.nio.ByteBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
public interface ARB_get_program_binary {
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of ProgramParameteri and
|
||||
* GetProgramiv:
|
||||
*/
|
||||
int GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetProgramiv: */
|
||||
int GL_PROGRAM_BINARY_LENGTH = 0x8741;
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv and GetDoublev:
|
||||
*/
|
||||
int GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE,
|
||||
GL_PROGRAM_BINARY_FORMATS = 0x87FF;
|
||||
|
||||
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);
|
||||
|
||||
}
|
|
@ -0,0 +1,190 @@
|
|||
/*
|
||||
* 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 java.nio.*;
|
||||
|
||||
@Dependent
|
||||
@DeprecatedGL
|
||||
public interface ARB_robustness {
|
||||
|
||||
/** Returned by GetGraphicsResetStatusARB: */
|
||||
int GL_NO_ERROR = 0x0000,
|
||||
GL_GUILTY_CONTEXT_RESET_ARB = 0x8253,
|
||||
GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254,
|
||||
GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255;
|
||||
|
||||
/**
|
||||
* Accepted by the <value> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv, and GetDoublev:
|
||||
*/
|
||||
int GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256;
|
||||
|
||||
/**
|
||||
* Returned by GetIntegerv and related simple queries when
|
||||
* <value> is RESET_NOTIFICATION_STRATEGY_ARB:
|
||||
*/
|
||||
int GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252,
|
||||
GL_NO_RESET_NOTIFICATION_ARB = 0x8261;
|
||||
|
||||
/** Returned by GetIntegerv when <pname> is CONTEXT_FLAGS: */
|
||||
int GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004;
|
||||
|
||||
@GLenum
|
||||
int glGetGraphicsResetStatusARB();
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnMapdvARB(@GLenum int target, @GLenum int query, @Constant("v.remaining() << 3") @GLsizei int bufSize, @OutParameter @Check DoubleBuffer v);
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnMapfvARB(@GLenum int target, @GLenum int query, @Constant("v.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check FloatBuffer v);
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnMapivARB(@GLenum int target, @GLenum int query, @Constant("v.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check IntBuffer v);
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnPixelMapfvARB(@GLenum int map, @Constant("values.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check FloatBuffer values);
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnPixelMapuivARB(@GLenum int map, @Constant("values.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check @GLuint IntBuffer values);
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnPixelMapusvARB(@GLenum int map, @Constant("values.remaining() << 1") @GLsizei int bufSize, @OutParameter @Check @GLushort ShortBuffer values);
|
||||
|
||||
@DeprecatedGL
|
||||
void glGetnPolygonStippleARB(@AutoSize("pattern") @GLsizei int bufSize, @OutParameter @GLubyte ByteBuffer pattern);
|
||||
|
||||
void glGetnTexImageARB(@GLenum int target, int level, @GLenum int format, @GLenum int type, @AutoSize("img") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer img);
|
||||
|
||||
void glReadnPixelsARB(int x, int y, @GLsizei int width, @GLsizei int height,
|
||||
@GLenum int format, @GLenum int type, @AutoSize("data") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer data);
|
||||
|
||||
@Dependent("GL_ARB_imaging")
|
||||
void glGetnColorTableARB(@GLenum int target, @GLenum int format, @GLenum int type, @AutoSize("table") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@GLbyte
|
||||
@GLfloat
|
||||
@GLdouble Buffer table);
|
||||
|
||||
@Dependent("GL_ARB_imaging")
|
||||
void glGetnConvolutionFilterARB(@GLenum int target, @GLenum int format, @GLenum int type, @AutoSize("image") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer image);
|
||||
|
||||
@Dependent("GL_ARB_imaging")
|
||||
void glGetnSeparableFilterARB(@GLenum int target, @GLenum int format, @GLenum int type,
|
||||
@AutoSize("row") @GLsizei int rowBufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer row,
|
||||
@AutoSize("column") @GLsizei int columnBufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer column,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@Check
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer span);
|
||||
|
||||
@Dependent("GL_ARB_imaging")
|
||||
void glGetnHistogramARB(@GLenum int target, boolean reset, @GLenum int format, @GLenum int type, @AutoSize("values") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer values);
|
||||
|
||||
@Dependent("GL_ARB_imaging")
|
||||
void glGetnMinmaxARB(@GLenum int target, boolean reset, @GLenum int format, @GLenum int type, @AutoSize("values") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint
|
||||
@GLfloat
|
||||
@GLdouble Buffer values);
|
||||
|
||||
@Dependent("OpenGL13")
|
||||
void glGetnCompressedTexImageARB(@GLenum int target, int lod, @AutoSize("img") @GLsizei int bufSize,
|
||||
@OutParameter
|
||||
@BufferObject(BufferKind.PackPBO)
|
||||
@GLbyte
|
||||
@GLshort
|
||||
@GLint Buffer img);
|
||||
|
||||
@Dependent("OpenGL20")
|
||||
void glGetnUniformfvARB(@GLuint int program, int location, @Constant("params.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check FloatBuffer params);
|
||||
|
||||
@Dependent("OpenGL20")
|
||||
void glGetnUniformivARB(@GLuint int program, int location, @Constant("params.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check IntBuffer params);
|
||||
|
||||
@Dependent("OpenGL20")
|
||||
void glGetnUniformuivARB(@GLuint int program, int location, @Constant("params.remaining() << 2") @GLsizei int bufSize, @OutParameter @Check @GLuint IntBuffer params);
|
||||
|
||||
@Dependent("OpenGL20")
|
||||
void glGetnUniformdvARB(@GLuint int program, int location, @Constant("params.remaining() << 3") @GLsizei int bufSize, @OutParameter @Check DoubleBuffer params);
|
||||
}
|
|
@ -0,0 +1,269 @@
|
|||
/*
|
||||
* 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 java.nio.ByteBuffer;
|
||||
import java.nio.DoubleBuffer;
|
||||
import java.nio.FloatBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
@Extension(postfix = "")
|
||||
public interface ARB_separate_shader_objects {
|
||||
|
||||
/** Accepted by <stages> parameter to UseProgramStages: */
|
||||
int GL_VERTEX_SHADER_BIT = 0x00000001,
|
||||
GL_FRAGMENT_SHADER_BIT = 0x00000002,
|
||||
GL_GEOMETRY_SHADER_BIT = 0x00000004,
|
||||
GL_TESS_CONTROL_SHADER_BIT = 0x00000008,
|
||||
GL_TESS_EVALUATION_SHADER_BIT = 0x00000010,
|
||||
GL_ALL_SHADER_BITS = 0xFFFFFFFF;
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of ProgramParameteri and
|
||||
* GetProgramiv:
|
||||
*/
|
||||
int GL_PROGRAM_SEPARABLE = 0x8258;
|
||||
|
||||
/** Accepted by <type> parameter to GetProgramPipelineiv: */
|
||||
int GL_ACTIVE_PROGRAM = 0x8259;
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv, and GetDoublev:
|
||||
*/
|
||||
int GL_PROGRAM_PIPELINE_BINDING = 0x825A;
|
||||
|
||||
void glUseProgramStages(@GLuint int pipeline, @GLbitfield int stages, @GLuint int program);
|
||||
|
||||
void glActiveShaderProgram(@GLuint int pipeline, @GLuint int program);
|
||||
|
||||
@StripPostfix(value = "strings", postfix = "v")
|
||||
@GLuint
|
||||
int glCreateShaderProgramv(@GLenum int type, @GLsizei int count, @Check @Const @Indirect @GLchar ByteBuffer strings);
|
||||
|
||||
@Alternate("glCreateShaderProgramv")
|
||||
@StripPostfix(value = "string", postfix = "v")
|
||||
@GLuint
|
||||
int glCreateShaderProgramv(@GLenum int type, @Constant("1") @GLsizei int count, @NullTerminated CharSequence string);
|
||||
|
||||
@Alternate("glCreateShaderProgramv")
|
||||
@StripPostfix(value = "strings", postfix = "v")
|
||||
@GLuint
|
||||
int glCreateShaderProgramv(@GLenum int type, @Constant("strings.length") @GLsizei int count,
|
||||
@Const @NullTerminated @StringList(value = "count") CharSequence[] strings);
|
||||
|
||||
void glBindProgramPipeline(@GLuint int pipeline);
|
||||
|
||||
void glDeleteProgramPipelines(@AutoSize("pipelines") @GLsizei int n, @Const @GLuint IntBuffer pipelines);
|
||||
|
||||
@Alternate("glDeleteProgramPipelines")
|
||||
void glDeleteProgramPipelines(@Constant("1") @GLsizei int n, @Constant(value = "APIUtils.getBufferInt().put(0, pipeline), 0", keepParam = true) int pipeline);
|
||||
|
||||
void glGenProgramPipelines(@AutoSize("pipelines") @GLsizei int n, @OutParameter @GLuint IntBuffer pipelines);
|
||||
|
||||
@Alternate("glGenProgramPipelines")
|
||||
@GLreturn("pipelines")
|
||||
void glGenProgramPipelines2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer pipelines);
|
||||
|
||||
boolean glIsProgramPipeline(@GLuint int pipeline);
|
||||
|
||||
void glProgramParameteri(@GLuint int program, @GLenum int pname, int value);
|
||||
|
||||
@StripPostfix("params")
|
||||
void glGetProgramPipelineiv(@GLuint int pipeline, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
|
||||
|
||||
@Alternate("glGetProgramPipelineiv")
|
||||
@GLreturn("params")
|
||||
@StripPostfix("params")
|
||||
void glGetProgramPipelineiv2(@GLuint int pipeline, @GLenum int pname, @OutParameter IntBuffer params);
|
||||
|
||||
void glProgramUniform1i(@GLuint int program, int location, int v0);
|
||||
|
||||
void glProgramUniform2i(@GLuint int program, int location, int v0, int v1);
|
||||
|
||||
void glProgramUniform3i(@GLuint int program, int location, int v0, int v1, int v2);
|
||||
|
||||
void glProgramUniform4i(@GLuint int program, int location, int v0, int v1, int v2, int v3);
|
||||
|
||||
void glProgramUniform1f(@GLuint int program, int location, float v0);
|
||||
|
||||
void glProgramUniform2f(@GLuint int program, int location, float v0, float v1);
|
||||
|
||||
void glProgramUniform3f(@GLuint int program, int location, float v0, float v1, float v2);
|
||||
|
||||
void glProgramUniform4f(@GLuint int program, int location, float v0, float v1, float v2, float v3);
|
||||
|
||||
void glProgramUniform1d(@GLuint int program, int location, double v0);
|
||||
|
||||
void glProgramUniform2d(@GLuint int program, int location, double v0, double v1);
|
||||
|
||||
void glProgramUniform3d(@GLuint int program, int location, double v0, double v1, double v2);
|
||||
|
||||
void glProgramUniform4d(@GLuint int program, int location, double v0, double v1, double v2, double v3);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1iv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2iv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3iv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4iv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1fv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1dv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
void glProgramUniform1ui(@GLuint int program, int location, int v0);
|
||||
|
||||
void glProgramUniform2ui(@GLuint int program, int location, int v0, int v1);
|
||||
|
||||
void glProgramUniform3ui(@GLuint int program, int location, int v0, int v1, int v2);
|
||||
|
||||
void glProgramUniform4ui(@GLuint int program, int location, int v0, int v1, int v2, int v3);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1uiv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2uiv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3uiv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4uiv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x3fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x2fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x4fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x2fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x4fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x3fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x3dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x2dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x4dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x2dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x4dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x3dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
void glValidateProgramPipeline(@GLuint int pipeline);
|
||||
|
||||
void glGetProgramPipelineInfoLog(@GLuint int pipeline, @AutoSize("infoLog") @GLsizei int bufSize,
|
||||
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
|
||||
@OutParameter @GLchar ByteBuffer infoLog);
|
||||
|
||||
@Alternate("glGetProgramPipelineInfoLog")
|
||||
@GLreturn(value = "infoLog", maxLength = "bufSize")
|
||||
void glGetProgramPipelineInfoLog2(@GLuint int pipeline, @GLsizei int bufSize,
|
||||
@OutParameter @GLsizei @Constant("infoLog_length, 0") IntBuffer length,
|
||||
@OutParameter @GLchar ByteBuffer infoLog);
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* 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;
|
||||
|
||||
public interface ARB_shader_precision {
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* 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;
|
||||
|
||||
public interface ARB_shader_stencil_export {
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
* 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 java.nio.Buffer;
|
||||
import java.nio.DoubleBuffer;
|
||||
|
||||
@Dependent
|
||||
@Extension(postfix = "")
|
||||
public interface ARB_vertex_attrib_64bit {
|
||||
|
||||
/** Returned in the <type> parameter of GetActiveAttrib: */
|
||||
int GL_DOUBLE_VEC2 = 0x8FFC;
|
||||
int GL_DOUBLE_VEC3 = 0x8FFD;
|
||||
int GL_DOUBLE_VEC4 = 0x8FFE;
|
||||
int GL_DOUBLE_MAT2 = 0x8F46;
|
||||
int GL_DOUBLE_MAT3 = 0x8F47;
|
||||
int GL_DOUBLE_MAT4 = 0x8F48;
|
||||
int GL_DOUBLE_MAT2x3 = 0x8F49;
|
||||
int GL_DOUBLE_MAT2x4 = 0x8F4A;
|
||||
int GL_DOUBLE_MAT3x2 = 0x8F4B;
|
||||
int GL_DOUBLE_MAT3x4 = 0x8F4C;
|
||||
int GL_DOUBLE_MAT4x2 = 0x8F4D;
|
||||
int GL_DOUBLE_MAT4x3 = 0x8F4E;
|
||||
|
||||
void glVertexAttribL1d(@GLuint int index, double x);
|
||||
|
||||
void glVertexAttribL2d(@GLuint int index, double x, double y);
|
||||
|
||||
void glVertexAttribL3d(@GLuint int index, double x, double y, double z);
|
||||
|
||||
void glVertexAttribL4d(@GLuint int index, double x, double y, double z, double w);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL1dv(@GLuint int index, @Const @Check("1") DoubleBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL2dv(@GLuint int index, @Const @Check("2") DoubleBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL3dv(@GLuint int index, @Const @Check("3") DoubleBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL4dv(@GLuint int index, @Const @Check("4") DoubleBuffer v);
|
||||
|
||||
void glVertexAttribLPointer(@GLuint int index, int size, @Constant("GL11.GL_DOUBLE") @GLenum int type, @GLsizei int stride,
|
||||
@CachedReference(index = "index", name = "glVertexAttribPointer_buffer")
|
||||
@BufferObject(BufferKind.ArrayVBO)
|
||||
@Check @Const @GLdouble Buffer pointer);
|
||||
|
||||
@StripPostfix("params")
|
||||
void glGetVertexAttribLdv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") DoubleBuffer params);
|
||||
|
||||
@Dependent("EXT_direct_state_access")
|
||||
void glVertexArrayVertexAttribLOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
/*
|
||||
* 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 java.nio.DoubleBuffer;
|
||||
import java.nio.FloatBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
@Extension(postfix = "")
|
||||
public interface ARB_viewport_array {
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
|
||||
* GetDoublev and GetInteger64v:
|
||||
*/
|
||||
int GL_MAX_VIEWPORTS = 0x825B,
|
||||
GL_VIEWPORT_SUBPIXEL_BITS = 0x825C,
|
||||
GL_VIEWPORT_BOUNDS_RANGE = 0x825D,
|
||||
GL_LAYER_PROVOKING_VERTEX = 0x825E,
|
||||
GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetIntegeri_v: */
|
||||
int GL_SCISSOR_BOX = 0x0C10;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetFloati_v: */
|
||||
int GL_VIEWPORT = 0x0BA2;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetDoublei_v: */
|
||||
int GL_DEPTH_RANGE = 0x0B70;
|
||||
|
||||
/** Accepted by the <pname> parameter of Enablei, Disablei, and IsEnabledi: */
|
||||
int GL_SCISSOR_TEST = 0x0C11;
|
||||
|
||||
/**
|
||||
* Returned in the <data> parameter from a Get query with a <pname> of
|
||||
* LAYER_PROVOKING_VERTEX or VIEWPORT_INDEX_PROVOKING_VERTEX:
|
||||
*/
|
||||
int GL_FIRST_VERTEX_CONVENTION = 0x8E4D,
|
||||
GL_LAST_VERTEX_CONVENTION = 0x8E4E,
|
||||
GL_PROVOKING_VERTEX = 0x8E4F,
|
||||
GL_UNDEFINED_VERTEX = 0x8260;
|
||||
|
||||
@StripPostfix("v")
|
||||
void glViewportArrayv(@GLuint int first, @AutoSize(value = "v", expression = " >> 2") @GLsizei int count, @Const FloatBuffer v);
|
||||
|
||||
void glViewportIndexedf(@GLuint int index, float x, float y, float w, float h);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glViewportIndexedfv(@GLuint int index, @Check("4") @Const FloatBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glScissorArrayv(@GLuint int first, @AutoSize(value = "v", expression = " >> 2") @GLsizei int count, @Const IntBuffer v);
|
||||
|
||||
void glScissorIndexed(@GLuint int index, int left, int bottom, @GLsizei int width, @GLsizei int height);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glScissorIndexedv(@GLuint int index, @Check("4") @Const IntBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glDepthRangeArrayv(@GLuint int first, @AutoSize(value = "v", expression = " >> 1") @GLsizei int count, @Const @GLclampd DoubleBuffer v);
|
||||
|
||||
void glDepthRangeIndexed(@GLuint int index, @GLclampd double n, @GLclampd double f);
|
||||
|
||||
@StripPostfix("data")
|
||||
void glGetFloati_v(@GLenum int target, @GLuint int index, @Check @OutParameter FloatBuffer data);
|
||||
|
||||
@Alternate("glGetFloati_v")
|
||||
@GLreturn("data")
|
||||
@StripPostfix("data")
|
||||
void glGetFloati_v2(@GLenum int target, @GLuint int index, @OutParameter FloatBuffer data);
|
||||
|
||||
@StripPostfix("data")
|
||||
void glGetDoublei_v(@GLenum int target, @GLuint int index, @Check @OutParameter DoubleBuffer data);
|
||||
|
||||
@Alternate("glGetDoublei_v")
|
||||
@GLreturn("data")
|
||||
@StripPostfix("data")
|
||||
void glGetDoublei_v2(@GLenum int target, @GLuint int index, @OutParameter DoubleBuffer data);
|
||||
|
||||
@StripPostfix(value = "v", extension = "EXT")
|
||||
void glGetIntegerIndexedivEXT(@GLenum int target, @GLuint int index, @Check @OutParameter IntBuffer v);
|
||||
|
||||
@Alternate("glGetIntegerIndexedivEXT")
|
||||
@GLreturn("v")
|
||||
@StripPostfix(value = "v", extension = "EXT")
|
||||
void glGetIntegerIndexedivEXT2(@GLenum int target, @GLuint int index, @OutParameter IntBuffer v);
|
||||
|
||||
void glEnableIndexedEXT(@GLenum int target, @GLuint int index);
|
||||
|
||||
void glDisableIndexedEXT(@GLenum int target, @GLuint int index);
|
||||
|
||||
boolean glIsEnabledIndexedEXT(@GLenum int target, @GLuint int index);
|
||||
|
||||
}
|
|
@ -1343,7 +1343,6 @@ public interface EXT_direct_state_access {
|
|||
OpenGL 3.1: New buffer data copy command
|
||||
*/
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL31,GL_ARB_copy_buffer")
|
||||
void glNamedCopyBufferSubDataEXT(@GLuint int readBuffer, @GLuint int writeBuffer, @GLintptr long readoffset, @GLintptr long writeoffset, @GLsizeiptr long size);
|
||||
|
||||
|
@ -1387,55 +1386,44 @@ public interface EXT_direct_state_access {
|
|||
and change the final parameter from "const void *" to "intptr offset"
|
||||
*/
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayVertexOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayColorOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayEdgeFlagOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glVertexArrayIndexOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayNormalOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayTexCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayMultiTexCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int texunit, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArrayFogCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@DeprecatedGL
|
||||
void glVertexArraySecondaryColorOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glVertexArrayVertexAttribOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, boolean normalized, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glVertexArrayVertexAttribIOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
|
||||
|
||||
|
@ -1445,11 +1433,9 @@ public interface EXT_direct_state_access {
|
|||
"uint vaobj" parameter
|
||||
*/
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glEnableVertexArrayEXT(@GLuint int vaobj, @GLenum int array);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glDisableVertexArrayEXT(@GLuint int vaobj, @GLenum int array);
|
||||
|
||||
|
@ -1459,11 +1445,9 @@ public interface EXT_direct_state_access {
|
|||
and add an initial "uint vaobj" parameter
|
||||
*/
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glEnableVertexArrayAttribEXT(@GLuint int vaobj, @GLuint int index);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glDisableVertexArrayAttribEXT(@GLuint int vaobj, @GLuint int index);
|
||||
|
||||
|
@ -1471,7 +1455,6 @@ public interface EXT_direct_state_access {
|
|||
OpenGL 3.0: New queries for vertex array objects
|
||||
*/
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@StripPostfix("param")
|
||||
void glGetVertexArrayIntegervEXT(@GLuint int vaobj, @GLenum int pname, @OutParameter @Check("16") IntBuffer param);
|
||||
|
@ -1482,12 +1465,10 @@ public interface EXT_direct_state_access {
|
|||
@StripPostfix("param")
|
||||
void glGetVertexArrayIntegervEXT2(@GLuint int vaobj, @GLenum int pname, @OutParameter IntBuffer param);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@StripPostfix("param")
|
||||
void glGetVertexArrayPointervEXT(@GLuint int vaobj, @GLenum int pname, @Result @GLvoid ByteBuffer param);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@StripPostfix(value = "param")
|
||||
void glGetVertexArrayIntegeri_vEXT(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @OutParameter @Check("16") IntBuffer param);
|
||||
|
@ -1498,7 +1479,6 @@ public interface EXT_direct_state_access {
|
|||
@StripPostfix(value = "param", postfix = "_v")
|
||||
void glGetVertexArrayIntegeri_vEXT2(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer param);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@StripPostfix(value = "param")
|
||||
void glGetVertexArrayPointeri_vEXT(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @Result @GLvoid ByteBuffer param);
|
||||
|
@ -1522,14 +1502,12 @@ public interface EXT_direct_state_access {
|
|||
*
|
||||
* @return A ByteBuffer representing the mapped buffer memory.
|
||||
*/
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
@CachedResult(isRange = true)
|
||||
@GLvoid
|
||||
@AutoResultSize("length")
|
||||
ByteBuffer glMapNamedBufferRangeEXT(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length, @GLbitfield int access);
|
||||
|
||||
@Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
|
||||
@Dependent("OpenGL30")
|
||||
void glFlushMappedNamedBufferRangeEXT(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length);
|
||||
|
||||
|
|
|
@ -46,16 +46,12 @@ public interface GL40 {
|
|||
// ----------------------[ ARB_draw_buffers_blend ]----------------------
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@Optional(reason = "AMD's 4.0 implementation does not expose this (last driver checked: 10.3)")
|
||||
void glBlendEquationi(@GLuint int buf, @GLenum int mode);
|
||||
|
||||
@Optional(reason = "AMD's 4.0 implementation does not expose this (last driver checked: 10.3)")
|
||||
void glBlendEquationSeparatei(@GLuint int buf, @GLenum int modeRGB, @GLenum int modeAlpha);
|
||||
|
||||
@Optional(reason = "AMD's 4.0 implementation does not expose this (last driver checked: 10.3)")
|
||||
void glBlendFunci(@GLuint int buf, @GLenum int src, @GLenum int dst);
|
||||
|
||||
@Optional(reason = "AMD's 4.0 implementation does not expose this (last driver checked: 10.3)")
|
||||
void glBlendFuncSeparatei(@GLuint int buf, @GLenum int srcRGB, @GLenum int dstRGB, @GLenum int srcAlpha, @GLenum int dstAlpha);
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
|
@ -186,7 +182,6 @@ public interface GL40 {
|
|||
*/
|
||||
int GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37;
|
||||
|
||||
@Optional(reason = "AMD's 4.0 implementation does not expose this (last driver checked: 10.3)")
|
||||
void glMinSampleShading(@GLclampf float value);
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
|
|
|
@ -0,0 +1,457 @@
|
|||
/*
|
||||
* 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 java.nio.*;
|
||||
|
||||
public interface GL41 {
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// ----------------------[ ARB_ES2_compatibility ]----------------------
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Accepted by the <value> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv, and GetDoublev:
|
||||
*/
|
||||
int GL_SHADER_COMPILER = 0x8DFA,
|
||||
GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9,
|
||||
GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB,
|
||||
GL_MAX_VARYING_VECTORS = 0x8DFC,
|
||||
GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD,
|
||||
GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
|
||||
GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
|
||||
|
||||
/** Accepted by the <type> parameter of VertexAttribPointer: */
|
||||
int GL_FIXED = 0x140C;
|
||||
|
||||
/**
|
||||
* Accepted by the <precisiontype> parameter of
|
||||
* GetShaderPrecisionFormat:
|
||||
*/
|
||||
int GL_LOW_FLOAT = 0x8DF0,
|
||||
GL_MEDIUM_FLOAT = 0x8DF1,
|
||||
GL_HIGH_FLOAT = 0x8DF2,
|
||||
GL_LOW_INT = 0x8DF3,
|
||||
GL_MEDIUM_INT = 0x8DF4,
|
||||
GL_HIGH_INT = 0x8DF5;
|
||||
|
||||
void glReleaseShaderCompiler();
|
||||
|
||||
void glShaderBinary(@AutoSize("shaders") @GLsizei int count, @Const @GLuint IntBuffer shaders,
|
||||
@GLenum int binaryformat, @Const @GLvoid ByteBuffer binary, @AutoSize("binary") @GLsizei int length);
|
||||
|
||||
void glGetShaderPrecisionFormat(@GLenum int shadertype, @GLenum int precisiontype,
|
||||
@OutParameter @Check("2") IntBuffer range,
|
||||
@OutParameter @Check("1") IntBuffer precision);
|
||||
|
||||
void glDepthRangef(@GLclampf float n, @GLclampf float f);
|
||||
|
||||
void glClearDepthf(@GLclampf float d);
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// ----------------------[ ARB_get_program_binary ]----------------------
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of ProgramParameteri and
|
||||
* GetProgramiv:
|
||||
*/
|
||||
int GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetProgramiv: */
|
||||
int GL_PROGRAM_BINARY_LENGTH = 0x8741;
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv and GetDoublev:
|
||||
*/
|
||||
int GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE,
|
||||
GL_PROGRAM_BINARY_FORMATS = 0x87FF;
|
||||
|
||||
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);
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// ----------------------[ ARB_separate_shader_objects ]----------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/** Accepted by <stages> parameter to UseProgramStages: */
|
||||
int GL_VERTEX_SHADER_BIT = 0x00000001,
|
||||
GL_FRAGMENT_SHADER_BIT = 0x00000002,
|
||||
GL_GEOMETRY_SHADER_BIT = 0x00000004,
|
||||
GL_TESS_CONTROL_SHADER_BIT = 0x00000008,
|
||||
GL_TESS_EVALUATION_SHADER_BIT = 0x00000010,
|
||||
GL_ALL_SHADER_BITS = 0xFFFFFFFF;
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of ProgramParameteri and
|
||||
* GetProgramiv:
|
||||
*/
|
||||
int GL_PROGRAM_SEPARABLE = 0x8258;
|
||||
|
||||
/** Accepted by <type> parameter to GetProgramPipelineiv: */
|
||||
int GL_ACTIVE_PROGRAM = 0x8259;
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetInteger64v, GetFloatv, and GetDoublev:
|
||||
*/
|
||||
int GL_PROGRAM_PIPELINE_BINDING = 0x825A;
|
||||
|
||||
void glUseProgramStages(@GLuint int pipeline, @GLbitfield int stages, @GLuint int program);
|
||||
|
||||
void glActiveShaderProgram(@GLuint int pipeline, @GLuint int program);
|
||||
|
||||
@StripPostfix(value = "strings", postfix = "v")
|
||||
@GLuint
|
||||
int glCreateShaderProgramv(@GLenum int type, @GLsizei int count, @Check @Const @Indirect @GLchar ByteBuffer strings);
|
||||
|
||||
@Alternate("glCreateShaderProgramv")
|
||||
@StripPostfix(value = "string", postfix = "v")
|
||||
@GLuint
|
||||
int glCreateShaderProgramv(@GLenum int type, @Constant("1") @GLsizei int count, @NullTerminated CharSequence string);
|
||||
|
||||
@Alternate("glCreateShaderProgramv")
|
||||
@StripPostfix(value = "strings", postfix = "v")
|
||||
@GLuint
|
||||
int glCreateShaderProgramv(@GLenum int type, @Constant("strings.length") @GLsizei int count,
|
||||
@Const @NullTerminated @StringList(value = "count") CharSequence[] strings);
|
||||
|
||||
void glBindProgramPipeline(@GLuint int pipeline);
|
||||
|
||||
void glDeleteProgramPipelines(@AutoSize("pipelines") @GLsizei int n, @Const @GLuint IntBuffer pipelines);
|
||||
|
||||
@Alternate("glDeleteProgramPipelines")
|
||||
void glDeleteProgramPipelines(@Constant("1") @GLsizei int n, @Constant(value = "APIUtils.getBufferInt().put(0, pipeline), 0", keepParam = true) int pipeline);
|
||||
|
||||
void glGenProgramPipelines(@AutoSize("pipelines") @GLsizei int n, @OutParameter @GLuint IntBuffer pipelines);
|
||||
|
||||
@Alternate("glGenProgramPipelines")
|
||||
@GLreturn("pipelines")
|
||||
void glGenProgramPipelines2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer pipelines);
|
||||
|
||||
boolean glIsProgramPipeline(@GLuint int pipeline);
|
||||
|
||||
@StripPostfix("params")
|
||||
void glGetProgramPipelineiv(@GLuint int pipeline, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
|
||||
|
||||
@Alternate("glGetProgramPipelineiv")
|
||||
@GLreturn("params")
|
||||
@StripPostfix("params")
|
||||
void glGetProgramPipelineiv2(@GLuint int pipeline, @GLenum int pname, @OutParameter IntBuffer params);
|
||||
|
||||
void glProgramUniform1i(@GLuint int program, int location, int v0);
|
||||
|
||||
void glProgramUniform2i(@GLuint int program, int location, int v0, int v1);
|
||||
|
||||
void glProgramUniform3i(@GLuint int program, int location, int v0, int v1, int v2);
|
||||
|
||||
void glProgramUniform4i(@GLuint int program, int location, int v0, int v1, int v2, int v3);
|
||||
|
||||
void glProgramUniform1f(@GLuint int program, int location, float v0);
|
||||
|
||||
void glProgramUniform2f(@GLuint int program, int location, float v0, float v1);
|
||||
|
||||
void glProgramUniform3f(@GLuint int program, int location, float v0, float v1, float v2);
|
||||
|
||||
void glProgramUniform4f(@GLuint int program, int location, float v0, float v1, float v2, float v3);
|
||||
|
||||
void glProgramUniform1d(@GLuint int program, int location, double v0);
|
||||
|
||||
void glProgramUniform2d(@GLuint int program, int location, double v0, double v1);
|
||||
|
||||
void glProgramUniform3d(@GLuint int program, int location, double v0, double v1, double v2);
|
||||
|
||||
void glProgramUniform4d(@GLuint int program, int location, double v0, double v1, double v2, double v3);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1iv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2iv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3iv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4iv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1fv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1dv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value);
|
||||
|
||||
void glProgramUniform1ui(@GLuint int program, int location, int v0);
|
||||
|
||||
void glProgramUniform2ui(@GLuint int program, int location, int v0, int v1);
|
||||
|
||||
void glProgramUniform3ui(@GLuint int program, int location, int v0, int v1, int v2);
|
||||
|
||||
void glProgramUniform4ui(@GLuint int program, int location, int v0, int v1, int v2, int v3);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform1uiv(@GLuint int program, int location, @AutoSize("value") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform2uiv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform3uiv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniform4uiv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const IntBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4fv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4dv(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x3fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x2fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x4fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x2fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x4fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x3fv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const FloatBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x3dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x2dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix2x4dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x2dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix3x4dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
@StripPostfix("value")
|
||||
void glProgramUniformMatrix4x3dv(@GLuint int program, int location,
|
||||
@AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
|
||||
|
||||
void glValidateProgramPipeline(@GLuint int pipeline);
|
||||
|
||||
void glGetProgramPipelineInfoLog(@GLuint int pipeline, @AutoSize("infoLog") @GLsizei int bufSize,
|
||||
@OutParameter @Check(value = "1", canBeNull = true) @GLsizei IntBuffer length,
|
||||
@OutParameter @GLchar ByteBuffer infoLog);
|
||||
|
||||
@Alternate("glGetProgramPipelineInfoLog")
|
||||
@GLreturn(value = "infoLog", maxLength = "bufSize")
|
||||
void glGetProgramPipelineInfoLog2(@GLuint int pipeline, @GLsizei int bufSize,
|
||||
@OutParameter @GLsizei @Constant("infoLog_length, 0") IntBuffer length,
|
||||
@OutParameter @GLchar ByteBuffer infoLog);
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// ----------------------[ ARB_vertex_attrib_64bit ]----------------------
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/** Returned in the <type> parameter of GetActiveAttrib: */
|
||||
int GL_DOUBLE_VEC2 = 0x8FFC;
|
||||
int GL_DOUBLE_VEC3 = 0x8FFD;
|
||||
int GL_DOUBLE_VEC4 = 0x8FFE;
|
||||
int GL_DOUBLE_MAT2 = 0x8F46;
|
||||
int GL_DOUBLE_MAT3 = 0x8F47;
|
||||
int GL_DOUBLE_MAT4 = 0x8F48;
|
||||
int GL_DOUBLE_MAT2x3 = 0x8F49;
|
||||
int GL_DOUBLE_MAT2x4 = 0x8F4A;
|
||||
int GL_DOUBLE_MAT3x2 = 0x8F4B;
|
||||
int GL_DOUBLE_MAT3x4 = 0x8F4C;
|
||||
int GL_DOUBLE_MAT4x2 = 0x8F4D;
|
||||
int GL_DOUBLE_MAT4x3 = 0x8F4E;
|
||||
|
||||
void glVertexAttribL1d(@GLuint int index, double x);
|
||||
|
||||
void glVertexAttribL2d(@GLuint int index, double x, double y);
|
||||
|
||||
void glVertexAttribL3d(@GLuint int index, double x, double y, double z);
|
||||
|
||||
void glVertexAttribL4d(@GLuint int index, double x, double y, double z, double w);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL1dv(@GLuint int index, @Const @Check("1") DoubleBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL2dv(@GLuint int index, @Const @Check("2") DoubleBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL3dv(@GLuint int index, @Const @Check("3") DoubleBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glVertexAttribL4dv(@GLuint int index, @Const @Check("4") DoubleBuffer v);
|
||||
|
||||
void glVertexAttribLPointer(@GLuint int index, int size, @Constant("GL11.GL_DOUBLE") @GLenum int type, @GLsizei int stride,
|
||||
@CachedReference(index = "index", name = "glVertexAttribPointer_buffer")
|
||||
@BufferObject(BufferKind.ArrayVBO)
|
||||
@Check @Const @GLdouble Buffer pointer);
|
||||
|
||||
@StripPostfix("params")
|
||||
void glGetVertexAttribLdv(@GLuint int index, @GLenum int pname, @OutParameter @Check("4") DoubleBuffer params);
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// ----------------------[ ARB_viewport_array ]----------------------
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
|
||||
* GetDoublev and GetInteger64v:
|
||||
*/
|
||||
int GL_MAX_VIEWPORTS = 0x825B,
|
||||
GL_VIEWPORT_SUBPIXEL_BITS = 0x825C,
|
||||
GL_VIEWPORT_BOUNDS_RANGE = 0x825D,
|
||||
GL_LAYER_PROVOKING_VERTEX = 0x825E,
|
||||
GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetIntegeri_v: */
|
||||
int GL_SCISSOR_BOX = 0x0C10;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetFloati_v: */
|
||||
int GL_VIEWPORT = 0x0BA2;
|
||||
|
||||
/** Accepted by the <pname> parameter of GetDoublei_v: */
|
||||
int GL_DEPTH_RANGE = 0x0B70;
|
||||
|
||||
/** Accepted by the <pname> parameter of Enablei, Disablei, and IsEnabledi: */
|
||||
int GL_SCISSOR_TEST = 0x0C11;
|
||||
|
||||
/**
|
||||
* Returned in the <data> parameter from a Get query with a <pname> of
|
||||
* LAYER_PROVOKING_VERTEX or VIEWPORT_INDEX_PROVOKING_VERTEX:
|
||||
*/
|
||||
int GL_FIRST_VERTEX_CONVENTION = 0x8E4D,
|
||||
GL_LAST_VERTEX_CONVENTION = 0x8E4E,
|
||||
GL_PROVOKING_VERTEX = 0x8E4F,
|
||||
GL_UNDEFINED_VERTEX = 0x8260;
|
||||
|
||||
@StripPostfix("v")
|
||||
void glViewportArrayv(@GLuint int first, @AutoSize(value = "v", expression = " >> 2") @GLsizei int count, @Const FloatBuffer v);
|
||||
|
||||
void glViewportIndexedf(@GLuint int index, float x, float y, float w, float h);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glViewportIndexedfv(@GLuint int index, @Check("4") @Const FloatBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glScissorArrayv(@GLuint int first, @AutoSize(value = "v", expression = " >> 2") @GLsizei int count, @Const IntBuffer v);
|
||||
|
||||
void glScissorIndexed(@GLuint int index, int left, int bottom, @GLsizei int width, @GLsizei int height);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glScissorIndexedv(@GLuint int index, @Check("4") @Const IntBuffer v);
|
||||
|
||||
@StripPostfix("v")
|
||||
void glDepthRangeArrayv(@GLuint int first, @AutoSize(value = "v", expression = " >> 1") @GLsizei int count, @Const @GLclampd DoubleBuffer v);
|
||||
|
||||
void glDepthRangeIndexed(@GLuint int index, @GLclampd double n, @GLclampd double f);
|
||||
|
||||
@StripPostfix("data")
|
||||
void glGetFloati_v(@GLenum int target, @GLuint int index, @Check @OutParameter FloatBuffer data);
|
||||
|
||||
@Alternate("glGetFloati_v")
|
||||
@GLreturn("data")
|
||||
@StripPostfix("data")
|
||||
void glGetFloati_v2(@GLenum int target, @GLuint int index, @OutParameter FloatBuffer data);
|
||||
|
||||
@StripPostfix("data")
|
||||
void glGetDoublei_v(@GLenum int target, @GLuint int index, @Check @OutParameter DoubleBuffer data);
|
||||
|
||||
@Alternate("glGetDoublei_v")
|
||||
@GLreturn("data")
|
||||
@StripPostfix("data")
|
||||
void glGetDoublei_v2(@GLenum int target, @GLuint int index, @OutParameter DoubleBuffer data);
|
||||
|
||||
}
|
Loading…
Reference in New Issue