Added EXT_blend_color & EXT_blend_minmax extensions.

This commit is contained in:
Ioannis Tsakpinis 2006-08-16 10:42:43 +00:00
parent f14923d34d
commit 84fdaeaff3
7 changed files with 212 additions and 0 deletions

View File

@ -64,8 +64,10 @@ public class ContextCapabilities {
public final boolean GL_ATI_vertex_streams;
public final boolean GL_EXT_abgr;
public final boolean GL_EXT_bgra;
public final boolean GL_EXT_blend_color;
public final boolean GL_EXT_blend_equation_separate;
public final boolean GL_EXT_blend_func_separate;
public final boolean GL_EXT_blend_minmax;
public final boolean GL_EXT_blend_subtract;
public final boolean GL_EXT_cg_shader;
public final boolean GL_EXT_compiled_vertex_array;
@ -421,8 +423,10 @@ public class ContextCapabilities {
long ATI_vertex_streams_glClientActiveVertexStreamATI_pointer;
long ATI_vertex_streams_glVertexBlendEnvfATI_pointer;
long ATI_vertex_streams_glVertexBlendEnviATI_pointer;
long EXT_blend_color_glBlendColorEXT_pointer;
long EXT_blend_equation_separate_glBlendEquationSeparateEXT_pointer;
long EXT_blend_func_separate_glBlendFuncSeparateEXT_pointer;
long EXT_blend_minmax_glBlendEquationEXT_pointer;
long EXT_compiled_vertex_array_glLockArraysEXT_pointer;
long EXT_compiled_vertex_array_glUnlockArraysEXT_pointer;
long EXT_depth_bounds_test_glDepthBoundsEXT_pointer;
@ -1386,6 +1390,11 @@ public class ContextCapabilities {
(ATI_vertex_streams_glVertexBlendEnviATI_pointer = GLContext.getFunctionAddress("glVertexBlendEnviATI")) != 0;
}
private boolean EXT_blend_color_initNativeFunctionAddresses() {
return
(EXT_blend_color_glBlendColorEXT_pointer = GLContext.getFunctionAddress("glBlendColorEXT")) != 0;
}
private boolean EXT_blend_equation_separate_initNativeFunctionAddresses() {
return
(EXT_blend_equation_separate_glBlendEquationSeparateEXT_pointer = GLContext.getFunctionAddress("glBlendEquationSeparateEXT")) != 0;
@ -1396,6 +1405,11 @@ public class ContextCapabilities {
(EXT_blend_func_separate_glBlendFuncSeparateEXT_pointer = GLContext.getFunctionAddress("glBlendFuncSeparateEXT")) != 0;
}
private boolean EXT_blend_minmax_initNativeFunctionAddresses() {
return
(EXT_blend_minmax_glBlendEquationEXT_pointer = GLContext.getFunctionAddress("glBlendEquationEXT")) != 0;
}
private boolean EXT_compiled_vertex_array_initNativeFunctionAddresses() {
return
(EXT_compiled_vertex_array_glLockArraysEXT_pointer = GLContext.getFunctionAddress("glLockArraysEXT")) != 0 &&
@ -2196,10 +2210,14 @@ public class ContextCapabilities {
supported_extensions.remove("GL_ATI_vertex_attrib_array_object");
if (supported_extensions.contains("GL_ATI_vertex_streams") && !ATI_vertex_streams_initNativeFunctionAddresses())
supported_extensions.remove("GL_ATI_vertex_streams");
if (supported_extensions.contains("GL_EXT_blend_color") && !EXT_blend_color_initNativeFunctionAddresses())
supported_extensions.remove("GL_EXT_blend_color");
if (supported_extensions.contains("GL_EXT_blend_equation_separate") && !EXT_blend_equation_separate_initNativeFunctionAddresses())
supported_extensions.remove("GL_EXT_blend_equation_separate");
if (supported_extensions.contains("GL_EXT_blend_func_separate") && !EXT_blend_func_separate_initNativeFunctionAddresses())
supported_extensions.remove("GL_EXT_blend_func_separate");
if (supported_extensions.contains("GL_EXT_blend_minmax") && !EXT_blend_minmax_initNativeFunctionAddresses())
supported_extensions.remove("GL_EXT_blend_minmax");
if (supported_extensions.contains("GL_EXT_compiled_vertex_array") && !EXT_compiled_vertex_array_initNativeFunctionAddresses())
supported_extensions.remove("GL_EXT_compiled_vertex_array");
if (supported_extensions.contains("GL_EXT_depth_bounds_test") && !EXT_depth_bounds_test_initNativeFunctionAddresses())
@ -2336,8 +2354,10 @@ public class ContextCapabilities {
this.GL_ATI_vertex_streams = supported_extensions.contains("GL_ATI_vertex_streams");
this.GL_EXT_abgr = supported_extensions.contains("GL_EXT_abgr");
this.GL_EXT_bgra = supported_extensions.contains("GL_EXT_bgra");
this.GL_EXT_blend_color = supported_extensions.contains("GL_EXT_blend_color");
this.GL_EXT_blend_equation_separate = supported_extensions.contains("GL_EXT_blend_equation_separate");
this.GL_EXT_blend_func_separate = supported_extensions.contains("GL_EXT_blend_func_separate");
this.GL_EXT_blend_minmax = supported_extensions.contains("GL_EXT_blend_minmax");
this.GL_EXT_blend_subtract = supported_extensions.contains("GL_EXT_blend_subtract");
this.GL_EXT_cg_shader = supported_extensions.contains("GL_EXT_cg_shader");
this.GL_EXT_compiled_vertex_array = supported_extensions.contains("GL_EXT_compiled_vertex_array");

View File

@ -0,0 +1,33 @@
/* MACHINE GENERATED FILE, DO NOT EDIT */
package org.lwjgl.opengl;
import org.lwjgl.LWJGLException;
import org.lwjgl.BufferChecks;
import java.nio.*;
public final class EXTBlendColor {
/**
*Accepted by the <sfactor> and <dfactor> parameters of BlendFunc.
*/
public static final int GL_CONSTANT_COLOR_EXT = 0x8001;
public static final int GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002;
public static final int GL_CONSTANT_ALPHA_EXT = 0x8003;
public static final int GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004;
/**
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
* GetFloatv, and GetDoublev.
*/
public static final int GL_BLEND_COLOR_EXT = 0x8005;
private EXTBlendColor() {
}
public static void glBlendColorEXT(float red, float green, float blue, float alpha) {
long function_pointer = GLContext.getCapabilities().EXT_blend_color_glBlendColorEXT_pointer;
BufferChecks.checkFunctionAddress(function_pointer);
nglBlendColorEXT(red, green, blue, alpha, function_pointer);
}
private static native void nglBlendColorEXT(float red, float green, float blue, float alpha, long function_pointer);
}

View File

@ -0,0 +1,32 @@
/* MACHINE GENERATED FILE, DO NOT EDIT */
package org.lwjgl.opengl;
import org.lwjgl.LWJGLException;
import org.lwjgl.BufferChecks;
import java.nio.*;
public final class EXTBlendMinmax {
/**
*Accepted by the <mode> parameter of BlendEquationEXT.
*/
public static final int GL_FUNC_ADD_EXT = 0x8006;
public static final int GL_MIN_EXT = 0x8007;
public static final int GL_MAX_EXT = 0x8008;
/**
* Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
* GetFloatv, and GetDoublev.
*/
public static final int GL_BLEND_EQUATION_EXT = 0x8009;
private EXTBlendMinmax() {
}
public static void glBlendEquationEXT(int mode) {
long function_pointer = GLContext.getCapabilities().EXT_blend_minmax_glBlendEquationEXT_pointer;
BufferChecks.checkFunctionAddress(function_pointer);
nglBlendEquationEXT(mode, function_pointer);
}
private static native void nglBlendEquationEXT(int mode, long function_pointer);
}

View File

@ -0,0 +1,12 @@
/* MACHINE GENERATED FILE, DO NOT EDIT */
#include <jni.h>
#include "extgl.h"
typedef void (APIENTRY *glBlendColorEXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTBlendColor_nglBlendColorEXT(JNIEnv *env, jclass clazz, jfloat red, jfloat green, jfloat blue, jfloat alpha, jlong function_pointer) {
glBlendColorEXTPROC glBlendColorEXT = (glBlendColorEXTPROC)((intptr_t)function_pointer);
glBlendColorEXT(red, green, blue, alpha);
}

View File

@ -0,0 +1,12 @@
/* MACHINE GENERATED FILE, DO NOT EDIT */
#include <jni.h>
#include "extgl.h"
typedef void (APIENTRY *glBlendEquationEXTPROC) (GLenum mode);
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTBlendMinmax_nglBlendEquationEXT(JNIEnv *env, jclass clazz, jint mode, jlong function_pointer) {
glBlendEquationEXTPROC glBlendEquationEXT = (glBlendEquationEXTPROC)((intptr_t)function_pointer);
glBlendEquationEXT(mode);
}

View File

@ -0,0 +1,52 @@
/*
* Copyright (c) 2002-2006 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.*;
public interface EXT_blend_color {
/** Accepted by the &lt;sfactor&gt; and &lt;dfactor&gt; parameters of BlendFunc. */
int GL_CONSTANT_COLOR_EXT = 0x8001;
int GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002;
int GL_CONSTANT_ALPHA_EXT = 0x8003;
int GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, and GetDoublev.
*/
int GL_BLEND_COLOR_EXT = 0x8005;
void glBlendColorEXT(@GLclampf float red, @GLclampf float green, @GLclampf float blue, @GLclampf float alpha);
}

View File

@ -0,0 +1,51 @@
/*
* Copyright (c) 2002-2006 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.*;
public interface EXT_blend_minmax {
/** Accepted by the &lt;mode&gt; parameter of BlendEquationEXT. */
int GL_FUNC_ADD_EXT = 0x8006;
int GL_MIN_EXT = 0x8007;
int GL_MAX_EXT = 0x8008;
/**
* Accepted by the &lt;pname&gt; parameter of GetBooleanv, GetIntegerv,
* GetFloatv, and GetDoublev.
*/
int GL_BLEND_EQUATION_EXT = 0x8009;
void glBlendEquationEXT(@GLenum int mode);
}