First GL 2.0 Extensions

This commit is contained in:
Ioannis Tsakpinis 2004-08-15 23:03:54 +00:00
parent 309284a55e
commit b9bf056c4c
5 changed files with 247 additions and 32 deletions

View File

@ -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);
// ---------------------------
}

View File

@ -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() {
}
}

View File

@ -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() {

View File

@ -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

View File

@ -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);
}
}