First GL 2.0 Extensions
This commit is contained in:
parent
309284a55e
commit
b9bf056c4c
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 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.BufferChecks;
|
||||
import org.lwjgl.LWJGLException;
|
||||
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
public final class ARBDrawBuffers {
|
||||
|
||||
/*
|
||||
* Accepted by the <pname> parameters of GetIntegerv, GetFloatv,
|
||||
* and GetDoublev:
|
||||
*/
|
||||
public static final int GL_MAX_DRAW_BUFFERS_ARB = 0x8824;
|
||||
public static final int GL_DRAW_BUFFER0_ARB = 0x8825;
|
||||
public static final int GL_DRAW_BUFFER1_ARB = 0x8826;
|
||||
public static final int GL_DRAW_BUFFER2_ARB = 0x8827;
|
||||
public static final int GL_DRAW_BUFFER3_ARB = 0x8828;
|
||||
public static final int GL_DRAW_BUFFER4_ARB = 0x8829;
|
||||
public static final int GL_DRAW_BUFFER5_ARB = 0x882A;
|
||||
public static final int GL_DRAW_BUFFER6_ARB = 0x882B;
|
||||
public static final int GL_DRAW_BUFFER7_ARB = 0x882C;
|
||||
public static final int GL_DRAW_BUFFER8_ARB = 0x882D;
|
||||
public static final int GL_DRAW_BUFFER9_ARB = 0x882E;
|
||||
public static final int GL_DRAW_BUFFER10_ARB = 0x882F;
|
||||
public static final int GL_DRAW_BUFFER11_ARB = 0x8830;
|
||||
public static final int GL_DRAW_BUFFER12_ARB = 0x8831;
|
||||
public static final int GL_DRAW_BUFFER13_ARB = 0x8832;
|
||||
public static final int GL_DRAW_BUFFER14_ARB = 0x8833;
|
||||
public static final int GL_DRAW_BUFFER15_ARB = 0x8834;
|
||||
|
||||
private ARBDrawBuffers() {
|
||||
}
|
||||
|
||||
static native void initNativeStubs() throws LWJGLException;
|
||||
|
||||
// ---------------------------
|
||||
public static void glDrawBuffersARB(IntBuffer buffers) {
|
||||
BufferChecks.checkBuffer(buffers, 1);
|
||||
nglDrawBuffersARB(buffers.remaining(), buffers, buffers.position());
|
||||
}
|
||||
|
||||
private static native void nglDrawBuffersARB(int size, IntBuffer buffers, int buffersOffset);
|
||||
// ---------------------------
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 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 final class ARBTextureRectangle {
|
||||
|
||||
/*
|
||||
* Accepted by the <cap> parameter of Enable, Disable and
|
||||
* IsEnabled; by the <pname> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetFloatv and GetDoublev; and by the <target> parameter of
|
||||
* BindTexture, GetTexParameterfv, GetTexParameteriv,
|
||||
* TexParameterf, TexParameteri, TexParameterfv and TexParameteriv:
|
||||
|
||||
* Accepted by the <target> parameter of GetTexImage,
|
||||
* GetTexLevelParameteriv, GetTexLevelParameterfv, TexImage2D,
|
||||
* CopyTexImage2D, TexSubImage2D and CopySubTexImage2D:
|
||||
*/
|
||||
public static final int GL_TEXTURE_RECTANGLE_ARB = 0x84F5;
|
||||
|
||||
/*
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
|
||||
* GetFloatv and GetDoublev:
|
||||
*/
|
||||
public static final int GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6;
|
||||
|
||||
/*
|
||||
* Accepted by the <target> parameter of GetTexLevelParameteriv,
|
||||
* GetTexLevelParameterfv, GetTexParameteriv and TexImage2D:
|
||||
*/
|
||||
public static final int GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7;
|
||||
|
||||
/*
|
||||
* Accepted by the <pname> parameter of GetBooleanv, GetDoublev,
|
||||
* GetIntegerv and GetFloatv:
|
||||
*/
|
||||
public static final int GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8;
|
||||
|
||||
private ARBTextureRectangle() {
|
||||
}
|
||||
|
||||
}
|
|
@ -1,31 +1,31 @@
|
|||
/*
|
||||
/*
|
||||
* Copyright (c) 2002-2004 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
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
*
|
||||
* * 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
|
||||
* * 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
|
||||
* 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
|
||||
* 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.
|
||||
*/
|
||||
|
@ -64,11 +64,12 @@ public final class GLContext {
|
|||
/*
|
||||
* Available extensions
|
||||
*/
|
||||
public static boolean GL_ARB_imaging;
|
||||
public static boolean GL_ARB_depth_texture;
|
||||
public static boolean GL_ARB_draw_buffers;
|
||||
public static boolean GL_ARB_fragment_program;
|
||||
public static boolean GL_ARB_fragment_program_shadow;
|
||||
public static boolean GL_ARB_fragment_shader;
|
||||
public static boolean GL_ARB_imaging;
|
||||
public static boolean GL_ARB_matrix_palette;
|
||||
public static boolean GL_ARB_multisample;
|
||||
public static boolean GL_ARB_multitexture;
|
||||
|
@ -88,6 +89,7 @@ public final class GLContext {
|
|||
public static boolean GL_ARB_texture_env_dot3;
|
||||
public static boolean GL_ARB_texture_mirrored_repeat;
|
||||
public static boolean GL_ARB_texture_non_power_of_two;
|
||||
public static boolean GL_ARB_texture_rectangle;
|
||||
public static boolean GL_ARB_transpose_matrix;
|
||||
public static boolean GL_ARB_vertex_blend;
|
||||
public static boolean GL_ARB_vertex_buffer_object;
|
||||
|
@ -244,7 +246,7 @@ public final class GLContext {
|
|||
// Yes, so we don't need to do anything. Our caps and function pointers are still valid.
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Ok, now it's the current context.
|
||||
if (gl_ref_count == 0) {
|
||||
loadOpenGLLibrary();
|
||||
|
@ -283,7 +285,7 @@ public final class GLContext {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
addExtensionClass(exts, exts_names, "EXTTextureCompressionS3TC", "");
|
||||
String extensions_string = GL11.glGetString(GL11.GL_EXTENSIONS);
|
||||
|
@ -390,7 +392,7 @@ public final class GLContext {
|
|||
private static native void nLoadOpenGLLibrary() throws LWJGLException;
|
||||
|
||||
/**
|
||||
* The OpenGL library reference count is decremented, and if it
|
||||
* The OpenGL library reference count is decremented, and if it
|
||||
* reaches 0, the library is unloaded.
|
||||
*/
|
||||
public static void unloadOpenGLLibrary() {
|
||||
|
|
|
@ -3,19 +3,20 @@ noinst_LTLIBRARIES = libarb.la
|
|||
libarb_la_SOURCES = $(SRC)
|
||||
INCLUDES=-I..
|
||||
SRC = org_lwjgl_opengl_ARBBufferObject.cpp \
|
||||
org_lwjgl_opengl_ARBDrawBuffers.cpp \
|
||||
org_lwjgl_opengl_ARBProgram.cpp \
|
||||
org_lwjgl_opengl_ARBProgram.cpp \
|
||||
org_lwjgl_opengl_ARBMatrixPalette.cpp \
|
||||
org_lwjgl_opengl_ARBMultisample.cpp \
|
||||
org_lwjgl_opengl_ARBMultitexture.cpp \
|
||||
org_lwjgl_opengl_ARBPointParameters.cpp \
|
||||
org_lwjgl_opengl_ARBProgram.cpp \
|
||||
org_lwjgl_opengl_ARBTextureCompression.cpp \
|
||||
org_lwjgl_opengl_ARBTransposeMatrix.cpp \
|
||||
org_lwjgl_opengl_ARBVertexBlend.cpp \
|
||||
org_lwjgl_opengl_ARBVertexProgram.cpp \
|
||||
org_lwjgl_opengl_ARBWindowPos.cpp \
|
||||
org_lwjgl_opengl_ARBOcclusionQuery.cpp \
|
||||
org_lwjgl_opengl_ARBShaderObjects.cpp \
|
||||
org_lwjgl_opengl_ARBVertexShader.cpp \
|
||||
org_lwjgl_opengl_ARBImaging.cpp
|
||||
org_lwjgl_opengl_ARBProgram.cpp \
|
||||
org_lwjgl_opengl_ARBMatrixPalette.cpp \
|
||||
org_lwjgl_opengl_ARBMultisample.cpp \
|
||||
org_lwjgl_opengl_ARBMultitexture.cpp \
|
||||
org_lwjgl_opengl_ARBPointParameters.cpp \
|
||||
org_lwjgl_opengl_ARBProgram.cpp \
|
||||
org_lwjgl_opengl_ARBTextureCompression.cpp \
|
||||
org_lwjgl_opengl_ARBTransposeMatrix.cpp \
|
||||
org_lwjgl_opengl_ARBVertexBlend.cpp \
|
||||
org_lwjgl_opengl_ARBVertexProgram.cpp \
|
||||
org_lwjgl_opengl_ARBWindowPos.cpp \
|
||||
org_lwjgl_opengl_ARBOcclusionQuery.cpp \
|
||||
org_lwjgl_opengl_ARBShaderObjects.cpp \
|
||||
org_lwjgl_opengl_ARBVertexShader.cpp \
|
||||
org_lwjgl_opengl_ARBImaging.cpp
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 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.
|
||||
*/
|
||||
|
||||
// ----------------------------------
|
||||
// IMPLEMENTATION OF NATIVE METHODS FOR CLASS: org.lwjgl.opengl.ARBDrawBuffers
|
||||
// ----------------------------------
|
||||
|
||||
#include "extgl.h"
|
||||
|
||||
|
||||
typedef void (APIENTRY * glDrawBuffersARBPROC) (GLsizei n, const GLenum *bufs);
|
||||
|
||||
static glDrawBuffersARBPROC glDrawBuffersARB;
|
||||
|
||||
/*
|
||||
* Class: org.lwjgl.opengl.ARBDrawBuffers
|
||||
* Method: nglDrawBuffersARB
|
||||
*/
|
||||
static void JNICALL Java_org_lwjgl_opengl_ARBDrawBuffers_nglDrawBuffersARB
|
||||
(JNIEnv * env, jclass clazz, jint size, jobject buffers, jint buffersOffset)
|
||||
{
|
||||
GLuint *buffers_ptr = (GLuint *)env->GetDirectBufferAddress(buffers) + buffersOffset;
|
||||
glDrawBuffersARB(size, buffers_ptr);
|
||||
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBDrawBuffers_initNativeStubs(JNIEnv *env, jclass clazz) {
|
||||
JavaMethodAndExtFunction functions[] = {
|
||||
{"nglDrawBuffersARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBDrawBuffers_nglDrawBuffersARB, "glDrawBuffersARB", (void**)&glDrawBuffersARB}
|
||||
};
|
||||
int num_functions = NUMFUNCTIONS(functions);
|
||||
extgl_InitializeClass(env, clazz, num_functions, functions);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue