diff options
Diffstat (limited to 'src/native/ogl/gldefs.h')
-rw-r--r-- | src/native/ogl/gldefs.h | 705 |
1 files changed, 0 insertions, 705 deletions
diff --git a/src/native/ogl/gldefs.h b/src/native/ogl/gldefs.h deleted file mode 100644 index f8fe282..0000000 --- a/src/native/ogl/gldefs.h +++ /dev/null @@ -1,705 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this - * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * $Revision$ - * $Date$ - * $State$ - */ - -#ifndef _Java3D_gldefs_h_ -#define _Java3D_gldefs_h_ - -/* - * Portions of this code were derived from work done by the Blackdown - * group (www.blackdown.org), who did the initial Linux implementation - * of the Java 3D API. - */ - -#include <math.h> -#include <stdlib.h> -#include <string.h> - -/* - * Before we include gl.h we need to ensure that our versions of the - * wglext.h and glext.h files get loaded, not the platform's versions. - */ -#ifndef __glext_h_ -#define __glext_h_ -#define Java3D_undef__glext_h_ -#endif - -#ifndef __wglext_h_ -#define __wglext_h_ -#define Java3D_undef__wglext_h_ -#endif - -#if defined(SOLARIS) || defined(LINUX) -#define GLX_GLEXT_PROTOTYPES -#define GLX_GLXEXT_PROTOTYPES -#define UNIX - -#include <limits.h> -#include <X11/Xlib.h> -#include <X11/Xutil.h> - -#include <GL/gl.h> -#include <GL/glx.h> -#ifdef Java3D_undef__glext_h_ -#undef __glext_h_ -#endif -#include "glext.h" -#endif - -#ifdef WIN32 -#include <windows.h> - -#ifndef _WIN32 -#define _WIN32 -#endif - -#define M_PI 3.14159265358979323846 - -/* Some constant defined in those javax_media_j3d_*.h */ -/* TODO: remove those constant when D3D automatically include those *.h files */ -#ifdef D3D - -/* used in GeometryArrayRetained, execute geometry in by REFERENCE case */ -#ifndef javax_media_j3d_GeometryArrayRetained_COORD_FLOAT -#define javax_media_j3d_GeometryArrayRetained_COORD_FLOAT 1L -#endif -#ifndef javax_media_j3d_GeometryArrayRetained_COORD_DOUBLE -#define javax_media_j3d_GeometryArrayRetained_COORD_DOUBLE 2L -#endif -#ifndef javax_media_j3d_GeometryArrayRetained_COLOR_FLOAT -#define javax_media_j3d_GeometryArrayRetained_COLOR_FLOAT 4L -#endif -#ifndef javax_media_j3d_GeometryArrayRetained_COLOR_BYTE -#define javax_media_j3d_GeometryArrayRetained_COLOR_BYTE 8L -#endif -#ifndef javax_media_j3d_GeometryArrayRetained_NORMAL_FLOAT -#define javax_media_j3d_GeometryArrayRetained_NORMAL_FLOAT 16L -#endif -#ifndef javax_media_j3d_GeometryArrayRetained_TEXCOORD_FLOAT -#define javax_media_j3d_GeometryArrayRetained_TEXCOORD_FLOAT 32L -#endif - -#endif /* end of ifdef D3D */ - -#ifndef D3D -#include <GL/gl.h> -#ifdef Java3D_undef__wglext_h_ -#undef __wglext_h_ -#endif -#ifdef Java3D_undef__glext_h_ -#undef __glext_h_ -#endif -#include "wglext.h" -#include "glext.h" -#endif - -#endif /* WIN32 */ - -/* include those .h files generated by javah */ -#include "javax_media_j3d_Background.h" -#include "javax_media_j3d_Canvas3D.h" -#include "javax_media_j3d_ColoringAttributes.h" -#include "javax_media_j3d_ColoringAttributesRetained.h" -#include "javax_media_j3d_DepthComponentRetained.h" -#include "javax_media_j3d_DirectionalLightRetained.h" -#include "javax_media_j3d_DisplayListRenderMethod.h" -#include "javax_media_j3d_DrawingSurfaceObjectAWT.h" -#include "javax_media_j3d_ExponentialFogRetained.h" -#include "javax_media_j3d_GeometryRetained.h" -#include "javax_media_j3d_GeometryArray.h" -#include "javax_media_j3d_GeometryArrayRetained.h" -#include "javax_media_j3d_GraphicsContext3D.h" -#include "javax_media_j3d_ImageComponent.h" -#include "javax_media_j3d_ImageComponentRetained.h" -#include "javax_media_j3d_ImageComponent2DRetained.h" -#include "javax_media_j3d_IndexedGeometryArrayRetained.h" -#include "javax_media_j3d_LineAttributes.h" -#include "javax_media_j3d_LineAttributesRetained.h" -#include "javax_media_j3d_LinearFogRetained.h" -#include "javax_media_j3d_MasterControl.h" -#include "javax_media_j3d_Material.h" -#include "javax_media_j3d_MaterialRetained.h" -#include "javax_media_j3d_ModelClipRetained.h" -#include "javax_media_j3d_NativeConfigTemplate3D.h" -#include "javax_media_j3d_NativePipeline.h" -#include "javax_media_j3d_NodeRetained.h" -#include "javax_media_j3d_PointAttributesRetained.h" -#include "javax_media_j3d_PointLightRetained.h" -#include "javax_media_j3d_PolygonAttributes.h" -#include "javax_media_j3d_PolygonAttributesRetained.h" -#include "javax_media_j3d_Raster.h" -#include "javax_media_j3d_RasterRetained.h" -#include "javax_media_j3d_Renderer.h" -#include "javax_media_j3d_RenderingAttributes.h" -#include "javax_media_j3d_RenderingAttributesRetained.h" -#include "javax_media_j3d_RenderMolecule.h" -#include "javax_media_j3d_SpotLightRetained.h" -#include "javax_media_j3d_TexCoordGeneration.h" -#include "javax_media_j3d_TexCoordGenerationRetained.h" -#include "javax_media_j3d_Texture.h" -#include "javax_media_j3d_Texture2D.h" -#include "javax_media_j3d_Texture2DRetained.h" -#include "javax_media_j3d_Texture3DRetained.h" -#include "javax_media_j3d_TextureAttributes.h" -#include "javax_media_j3d_TextureAttributesRetained.h" -#include "javax_media_j3d_TextureCubeMapRetained.h" -#include "javax_media_j3d_TextureRetained.h" -#include "javax_media_j3d_TextureUnitStateRetained.h" -#include "javax_media_j3d_TransparencyAttributes.h" -#include "javax_media_j3d_TransparencyAttributesRetained.h" -#include "javax_media_j3d_GLSLShaderProgramRetained.h" -#include "javax_media_j3d_CgShaderProgramRetained.h" -#include "javax_media_j3d_Shader.h" -#include "javax_media_j3d_ShaderAttributeObjectRetained.h" -#include "javax_media_j3d_ShaderError.h" - -#ifdef WIN32 -#include "javax_media_j3d_Win32NativeConfigTemplate3D.h" -#include "javax_media_j3d_Win32NativeScreenInfo.h" -#else -#include "javax_media_j3d_X11NativeConfigTemplate3D.h" -#include "javax_media_j3d_X11NativeScreenInfo.h" -#endif - -/* Used to compare floating point values close to 0.0 */ -#define J3D_SMALL_FLOAT 0.00001f - -/* - * General purpose assertion macro - */ -#define J3D_ASSERT(expr) \ - if (!(expr)) { \ - fprintf(stderr, \ - "\nAssertion failed in module '%s' at line %d\n", \ - __FILE__, __LINE__); \ - fprintf(stderr, "\t%s\n\n", #expr); \ - } - -#define EPSILON 1e-2 -#define J3D_FNE(a,b) ((a)>((b)+EPSILON)||(a)<((b)-EPSILON)) - - -/* - * Macro to copy and transpose one matrix to another. - * - * NOTE: the source and dest must not be the same (no aliasing check - * is performed). - */ -#define COPY_TRANSPOSE(src,dst) { \ - (dst)[0] = (src)[0]; \ - (dst)[1] = (src)[4]; \ - (dst)[2] = (src)[8]; \ - (dst)[3] = (src)[12]; \ - (dst)[4] = (src)[1]; \ - (dst)[5] = (src)[5]; \ - (dst)[6] = (src)[9]; \ - (dst)[7] = (src)[13]; \ - (dst)[8] = (src)[2]; \ - (dst)[9] = (src)[6]; \ - (dst)[10] = (src)[10]; \ - (dst)[11] = (src)[14]; \ - (dst)[12] = (src)[3]; \ - (dst)[13] = (src)[7]; \ - (dst)[14] = (src)[11]; \ - (dst)[15] = (src)[15]; \ -} - - -/* - * These match the constants in GeometryRetained - */ - -#define GEO_TYPE_NONE javax_media_j3d_GeometryRetained_GEO_TYPE_NONE -#define GEO_TYPE_QUAD_SET javax_media_j3d_GeometryRetained_GEO_TYPE_QUAD_SET -#define GEO_TYPE_TRI_SET javax_media_j3d_GeometryRetained_GEO_TYPE_TRI_SET -#define GEO_TYPE_POINT_SET javax_media_j3d_GeometryRetained_GEO_TYPE_POINT_SET -#define GEO_TYPE_LINE_SET javax_media_j3d_GeometryRetained_GEO_TYPE_LINE_SET -#define GEO_TYPE_TRI_STRIP_SET javax_media_j3d_GeometryRetained_GEO_TYPE_TRI_STRIP_SET -#define GEO_TYPE_TRI_FAN_SET javax_media_j3d_GeometryRetained_GEO_TYPE_TRI_FAN_SET -#define GEO_TYPE_LINE_STRIP_SET javax_media_j3d_GeometryRetained_GEO_TYPE_LINE_STRIP_SET -#define GEO_TYPE_INDEXED_QUAD_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_QUAD_SET -#define GEO_TYPE_INDEXED_TRI_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_TRI_SET -#define GEO_TYPE_INDEXED_POINT_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_POINT_SET -#define GEO_TYPE_INDEXED_LINE_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_LINE_SET -#define GEO_TYPE_INDEXED_TRI_STRIP_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_TRI_STRIP_SET -#define GEO_TYPE_INDEXED_TRI_FAN_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_TRI_FAN_SET -#define GEO_TYPE_INDEXED_LINE_STRIP_SET javax_media_j3d_GeometryRetained_GEO_TYPE_INDEXED_LINE_STRIP_SET -#define GEO_TYPE_RASTER javax_media_j3d_GeometryRetained_GEO_TYPE_RASTER -#define GEO_TYPE_TEXT3D javax_media_j3d_GeometryRetained_GEO_TYPE_TEXT3D -#define GEO_TYPE_COMPRESSED javax_media_j3d_GeometryRetained_GEO_TYPE_COMPRESSED -#define GEO_TYPE_TOTAL javax_media_j3d_GeometryRetained_GEO_TYPE_TOTAL - -/* - * These match the constants in ImageComponent - */ - -#define FORMAT_RGB javax_media_j3d_ImageComponent_FORMAT_RGB -#define FORMAT_RGBA javax_media_j3d_ImageComponent_FORMAT_RGBA -#define FORMAT_RGB5 javax_media_j3d_ImageComponent_FORMAT_RGB5 -#define FORMAT_RGB5_A1 javax_media_j3d_ImageComponent_FORMAT_RGB5_A1 -#define FORMAT_RGB4 javax_media_j3d_ImageComponent_FORMAT_RGB4 -#define FORMAT_RGBA4 javax_media_j3d_ImageComponent_FORMAT_RGBA4 -#define FORMAT_LUM4_ALPHA4 javax_media_j3d_ImageComponent_FORMAT_LUM4_ALPHA4 -#define FORMAT_LUM8_ALPHA8 javax_media_j3d_ImageComponent_FORMAT_LUM8_ALPHA8 -#define FORMAT_R3_G3_B2 javax_media_j3d_ImageComponent_FORMAT_R3_G3_B2 -#define FORMAT_CHANNEL8 javax_media_j3d_ImageComponent_FORMAT_CHANNEL8 - - -/* now the imagecomponent formats are reduced the ones below */ -#define IMAGE_FORMAT_BYTE_BGR javax_media_j3d_ImageComponentRetained_TYPE_BYTE_BGR -#define IMAGE_FORMAT_BYTE_RGB javax_media_j3d_ImageComponentRetained_TYPE_BYTE_RGB -#define IMAGE_FORMAT_BYTE_ABGR javax_media_j3d_ImageComponentRetained_TYPE_BYTE_ABGR -#define IMAGE_FORMAT_BYTE_RGBA javax_media_j3d_ImageComponentRetained_TYPE_BYTE_RGBA -#define IMAGE_FORMAT_BYTE_LA javax_media_j3d_ImageComponentRetained_TYPE_BYTE_LA -#define IMAGE_FORMAT_BYTE_GRAY javax_media_j3d_ImageComponentRetained_TYPE_BYTE_GRAY -#define IMAGE_FORMAT_USHORT_GRAY javax_media_j3d_ImageComponentRetained_TYPE_USHORT_GRAY -#define IMAGE_FORMAT_INT_BGR javax_media_j3d_ImageComponentRetained_TYPE_INT_BGR -#define IMAGE_FORMAT_INT_RGB javax_media_j3d_ImageComponentRetained_TYPE_INT_RGB -#define IMAGE_FORMAT_INT_ARGB javax_media_j3d_ImageComponentRetained_TYPE_INT_ARGB - -#define IMAGE_DATA_TYPE_BYTE_ARRAY javax_media_j3d_ImageComponentRetained_IMAGE_DATA_TYPE_BYTE_ARRAY -#define IMAGE_DATA_TYPE_INT_ARRAY javax_media_j3d_ImageComponentRetained_IMAGE_DATA_TYPE_INT_ARRAY -#define IMAGE_DATA_TYPE_BYTE_BUFFER javax_media_j3d_ImageComponentRetained_IMAGE_DATA_TYPE_BYTE_BUFFER -#define IMAGE_DATA_TYPE_INT_BUFFER javax_media_j3d_ImageComponentRetained_IMAGE_DATA_TYPE_INT_BUFFER - - -/* These match the definitions in GeometryArray.java */ -/* These have a GA prefix to avoid confusion with TEXTURE_COORDINATE_2 above */ -#define GA_COORDINATES javax_media_j3d_GeometryArray_COORDINATES -#define GA_NORMALS javax_media_j3d_GeometryArray_NORMALS -#define GA_COLOR javax_media_j3d_GeometryArray_COLOR -#define GA_WITH_ALPHA javax_media_j3d_GeometryArray_WITH_ALPHA -#define GA_TEXTURE_COORDINATE_2 javax_media_j3d_GeometryArray_TEXTURE_COORDINATE_2 -#define GA_TEXTURE_COORDINATE_3 javax_media_j3d_GeometryArray_TEXTURE_COORDINATE_3 -#define GA_TEXTURE_COORDINATE_4 javax_media_j3d_GeometryArray_TEXTURE_COORDINATE_4 -#define GA_TEXTURE_COORDINATE javax_media_j3d_GeometryArray_TEXTURE_COORDINATE -#define GA_VERTEX_ATTRIBUTES javax_media_j3d_GeometryArray_VERTEX_ATTRIBUTES -#define GA_BY_REFERENCE javax_media_j3d_GeometryArray_BY_REFERENCE - - -/* - * These match the constants in ShaderAttributeObjectRetained - */ - -#define TYPE_INTEGER javax_media_j3d_ShaderAttributeObjectRetained_TYPE_INTEGER -#define TYPE_FLOAT javax_media_j3d_ShaderAttributeObjectRetained_TYPE_FLOAT -#define TYPE_TUPLE2I javax_media_j3d_ShaderAttributeObjectRetained_TYPE_TUPLE2I -#define TYPE_TUPLE2F javax_media_j3d_ShaderAttributeObjectRetained_TYPE_TUPLE2F -#define TYPE_TUPLE3I javax_media_j3d_ShaderAttributeObjectRetained_TYPE_TUPLE3I -#define TYPE_TUPLE3F javax_media_j3d_ShaderAttributeObjectRetained_TYPE_TUPLE3F -#define TYPE_TUPLE4I javax_media_j3d_ShaderAttributeObjectRetained_TYPE_TUPLE4I -#define TYPE_TUPLE4F javax_media_j3d_ShaderAttributeObjectRetained_TYPE_TUPLE4F -#define TYPE_MATRIX3F javax_media_j3d_ShaderAttributeObjectRetained_TYPE_MATRIX3F -#define TYPE_MATRIX4F javax_media_j3d_ShaderAttributeObjectRetained_TYPE_MATRIX4F - - -/* - * These match the constants in NativeConfigTemplate3D - */ - -#define RED_SIZE javax_media_j3d_NativeConfigTemplate3D_RED_SIZE -#define GREEN_SIZE javax_media_j3d_NativeConfigTemplate3D_GREEN_SIZE -#define BLUE_SIZE javax_media_j3d_NativeConfigTemplate3D_BLUE_SIZE -#define ALPHA_SIZE javax_media_j3d_NativeConfigTemplate3D_ALPHA_SIZE -#define ACCUM_BUFFER javax_media_j3d_NativeConfigTemplate3D_ACCUM_BUFFER -#define DEPTH_SIZE javax_media_j3d_NativeConfigTemplate3D_DEPTH_SIZE - /* this maps to GLX_ACCUM_RED, */ - /* GLX_ACCUM_GREEN and */ - /* GLX_ACCUM_BLUE so NUM_ITEMS */ - /* must be incremented by 3 for */ - /* this attribute. */ -#define DOUBLEBUFFER javax_media_j3d_NativeConfigTemplate3D_DOUBLEBUFFER -#define STEREO javax_media_j3d_NativeConfigTemplate3D_STEREO -#define ANTIALIASING javax_media_j3d_NativeConfigTemplate3D_ANTIALIASING -#define STENCIL_SIZE javax_media_j3d_NativeConfigTemplate3D_STENCIL_SIZE - -/* set this to the number of indices (from above) */ -#define NUM_ITEMS (javax_media_j3d_NativeConfigTemplate3D_NUM_ITEMS + 2) - /* total + 2 beacause of */ - /* DEPTH_SIZE */ - -/* values for "enum" entries for GraphicsConfiguration */ -#define REQUIRED 1 -#define PREFERRED 2 -#define UNNECESSARY 3 - - - -#define INTENSITY javax_media_j3d_Texture_INTENSITY -#define LUMINANCE javax_media_j3d_Texture_LUMINANCE -#define ALPHA javax_media_j3d_Texture_ALPHA -#define LUMINANCE_ALPHA javax_media_j3d_Texture_LUMINANCE_ALPHA -#define J3D_RGB javax_media_j3d_Texture_RGB -#define J3D_RGBA javax_media_j3d_Texture_RGBA - - -/* - * These match the constants in TransparencyAttributes.java - */ -#define BLEND_ZERO javax_media_j3d_TransparencyAttributes_BLEND_ZERO -#define BLEND_ONE javax_media_j3d_TransparencyAttributes_BLEND_ONE -#define BLEND_SRC_ALPHA javax_media_j3d_TransparencyAttributes_BLEND_SRC_ALPHA -#define BLEND_ONE_MINUS_SRC_ALPHA javax_media_j3d_TransparencyAttributes_BLEND_ONE_MINUS_SRC_ALPHA -#define BLEND_DST_COLOR javax_media_j3d_TransparencyAttributes_BLEND_DST_COLOR -#define BLEND_ONE_MINUS_DST_COLOR javax_media_j3d_TransparencyAttributes_BLEND_ONE_MINUS_DST_COLOR -#define BLEND_SRC_COLOR javax_media_j3d_TransparencyAttributes_BLEND_SRC_COLOR -#define BLEND_ONE_MINUS_SRC_COLOR javax_media_j3d_TransparencyAttributes_BLEND_ONE_MINUS_SRC_COLOR -#define BLEND_CONSTANT_COLOR javax_media_j3d_TransparencyAttributes_BLEND_CONSTANT_COLOR -#define MAX_BLEND_FUNC_TABLE_SIZE javax_media_j3d_TransparencyAttributes_MAX_BLEND_FUNC_TABLE_SIZE - - - -#ifndef D3D - -#ifndef APIENTRY -#define APIENTRY -#endif - -/* define function prototypes */ -typedef void (APIENTRY * MYPFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha); -typedef void (APIENTRY * MYPFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha); -typedef void (APIENTRY * MYPFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRY * MYPFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * MYPFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRY * MYPFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRY * MYPFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRY * MYPFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum, GLsizei *, GLenum, const GLvoid**, GLsizei); -typedef void (APIENTRY * MYPFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRY * MYPFNGLUNLOCKARRAYSEXTPROC) (void); - -typedef void (APIENTRY * MYPFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * MYPFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * MYPFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * MYPFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRY * MYPFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRY * MYPFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRY * MYPFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRY * MYPFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); - -typedef void (APIENTRY * MYPFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); - -typedef void (APIENTRY * MYPFNGLCOMBINERINPUTNV) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRY * MYPFNGLFINALCOMBINERINPUTNV) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRY * MYPFNGLCOMBINEROUTPUTNV) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRY * MYPFNGLCOMBINERPARAMETERFVNV) (GLenum pname, const GLfloat *params); -typedef void (APIENTRY * MYPFNGLCOMBINERPARAMETERIVNV) (GLenum pname, const GLint *params); -typedef void (APIENTRY * MYPFNGLCOMBINERPARAMETERFNV) (GLenum pname, GLfloat param); -typedef void (APIENTRY * MYPFNGLCOMBINERPARAMETERINV) (GLenum pname, GLint param); -typedef void (APIENTRY * MYPFNGLSHARPENTEXFUNCSGI) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRY * MYPFNGLDETAILTEXFUNCSGI) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRY * MYPFNGLTEXFILTERFUNCSGI) (GLenum target, GLenum filter, GLsizei n, const GLfloat *points); - -#if defined(UNIX) -typedef GLXFBConfig * (APIENTRY * MYPFNGLXCHOOSEFBCONFIG) (Display *dpy, int screen, const int *attrib_list, int *nelements); -#endif /* UNIX_ */ - - -/* Typedef for context properties struct */ -typedef struct GraphicsContextPropertiesInfoRec GraphicsContextPropertiesInfo; - -/* Typedefs for language-independent vertex attribute functions */ -typedef void (*MYPFNVERTEXATTRPOINTER)(GraphicsContextPropertiesInfo *ctxProperties, - int index, int size, int type, int stride, - const void *pointer); -typedef void (*MYPFNENABLEVERTEXATTRARRAY)(GraphicsContextPropertiesInfo *ctxProperties, - int index); -typedef void (*MYPFNDISABLEVERTEXATTRARRAY)(GraphicsContextPropertiesInfo *ctxProperties, - int index); -typedef void (*MYPFNVERTEXATTR1FV)(GraphicsContextPropertiesInfo *ctxProperties, - int index, const float *v); -typedef void (*MYPFNVERTEXATTR2FV)(GraphicsContextPropertiesInfo *ctxProperties, - int index, const float *v); -typedef void (*MYPFNVERTEXATTR3FV)(GraphicsContextPropertiesInfo *ctxProperties, - int index, const float *v); -typedef void (*MYPFNVERTEXATTR4FV)(GraphicsContextPropertiesInfo *ctxProperties, - int index, const float *v); - - -/* Typedefs for (opaque) GLSL context info */ -typedef struct GLSLCtxInfoRec GLSLCtxInfo; - -/* Typedefs for (opaque) Cg context info */ -typedef struct CgCtxInfoRec CgCtxInfo; - -/* define the structure to hold the properties of graphics context */ -struct GraphicsContextPropertiesInfoRec { - jlong context; - - /* version and extension info */ - char *versionStr; - char *vendorStr; - char *rendererStr; - char *extensionStr; - int versionNumbers[2]; - jboolean gl13; /* OpenGL 1.3 or greater */ - jboolean gl14; /* OpenGL 1.4 or greater */ - jboolean gl20; /* OpenGL 2.0 or greater */ - - /* GL_ARB_imaging subset */ - /* GL_EXT_blend_color or GL_BLEND_COLOR */ - jboolean blend_color_ext; - GLenum blendFunctionTable[MAX_BLEND_FUNC_TABLE_SIZE]; - - /* texture_lod */ - jboolean textureLodAvailable; - GLenum texture_min_lod_enum; - GLenum texture_max_lod_enum; - GLenum texture_base_level_enum; - GLenum texture_max_level_enum; - - - /* ***** GL extensions ***** */ - - /* GL_CLAMP_TO_BORDER or GL_CLAMP */ - GLenum texture_clamp_to_border_enum; - - /* GL_SUN_multi_draw_arrays */ - jboolean multi_draw_arrays_sun; - - /* GL_SUN_global_alpha */ - jboolean global_alpha_sun; - - /* GL_EXT_abgr */ - jboolean abgr_ext; - /* GL_EXT_multi_draw_arrays */ - jboolean multi_draw_arrays_ext; - - /* GL_EXT_compiled_vertex_array */ - jboolean compiled_vertex_array_ext; - - /* Multitexture parameters */ - int maxTexCoordSets; /* maximum number of texture coordinate sets */ - int maxTextureUnits; /* number of fixed-function texture units */ - int maxTextureImageUnits; /* number of fragment shader texture units */ - int maxVertexTextureImageUnits; /* number of vertex shader texture units */ - int maxCombinedTextureImageUnits; /* total number of shader texture units */ - - /* GL_SGI_texture_color_table */ - jboolean textureColorTableAvailable; - int textureColorTableSize; - - /* GL_ARB_texture_env_combine */ - /* GL_EXT_texture_env_combine */ - jboolean textureEnvCombineAvailable; - jboolean textureCombineDot3Available; - jboolean textureCombineSubtractAvailable; - - /* GL_NV_register_combiners */ - jboolean textureRegisterCombinersAvailable; - GLenum currentTextureUnit; - GLenum currentCombinerUnit; - - /* save the enum for the combine modes since the enums between - ARB & EXT might be different. - */ - GLenum combine_enum; - GLenum combine_add_signed_enum; - GLenum combine_interpolate_enum; - GLenum combine_subtract_enum; - GLenum combine_dot3_rgb_enum; - GLenum combine_dot3_rgba_enum; - - /* GL mulitsample functionality */ - jboolean multisample; - - /* - By default, full scene antialiasing is disable if - multisampling pixel format (or visual) is chosen. - To honor display driver multisampling antialiasing - setting (e.g. force scene antialiasing), set the - implicit multisample flag to true in this case. - This cause Java3D not to invoke any native - multisampling API to enable/disable scene antialiasing. - */ - jboolean implicit_multisample; - - /* by MIK OF CLASSX */ - /* - Used by transparentOffScreen feature. - This is the value of the alpha channel - of the background. - */ - GLfloat alphaClearValue; - - /* GL_SGIS_sharpen_texture */ - jboolean textureSharpenAvailable; - GLenum linear_sharpen_enum; - GLenum linear_sharpen_rgb_enum; - GLenum linear_sharpen_alpha_enum; - - /* GL_SGIS_detail_texture */ - jboolean textureDetailAvailable; - GLenum texture_detail_ext_enum; - GLenum linear_detail_enum; - GLenum linear_detail_rgb_enum; - GLenum linear_detail_alpha_enum; - GLenum texture_detail_mode_enum; - GLenum texture_detail_level_enum; - - /* GL_SGIS_texture_filter4 */ - jboolean textureFilter4Available; - GLenum filter4_enum; - - /* GL_EXT_texture_filter_anisotropic */ - jboolean textureAnisotropicFilterAvailable; - GLenum texture_filter_anisotropic_ext_enum; - GLenum max_texture_filter_anisotropy_enum; - - /* GL_SGIX_texture_lod_bias */ - jboolean textureLodBiasAvailable; - - /* extension mask */ - jint extMask; - jint textureExtMask; - - /* function pointers */ - MYPFNGLBLENDCOLORPROC glBlendColor; - MYPFNGLBLENDCOLOREXTPROC glBlendColorEXT; - MYPFNGLCOLORTABLEPROC glColorTable; - MYPFNGLGETCOLORTABLEPARAMETERIVPROC glGetColorTableParameteriv; - MYPFNGLTEXIMAGE3DPROC glTexImage3DEXT; - MYPFNGLTEXSUBIMAGE3DPROC glTexSubImage3DEXT; - MYPFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture; - MYPFNGLACTIVETEXTUREPROC glActiveTexture; - MYPFNGLMULTIDRAWARRAYSEXTPROC glMultiDrawArraysEXT; - MYPFNGLMULTIDRAWELEMENTSEXTPROC glMultiDrawElementsEXT; - MYPFNGLLOCKARRAYSEXTPROC glLockArraysEXT; - MYPFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXT; - MYPFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv; - MYPFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv; - MYPFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv; - MYPFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd; - MYPFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd; - MYPFNGLGLOBALALPHAFACTORFSUNPROC glGlobalAlphaFactorfSUN; - - MYPFNGLCOMBINERINPUTNV glCombinerInputNV; - MYPFNGLCOMBINEROUTPUTNV glCombinerOutputNV; - MYPFNGLFINALCOMBINERINPUTNV glFinalCombinerInputNV; - MYPFNGLCOMBINERPARAMETERFVNV glCombinerParameterfvNV; - MYPFNGLCOMBINERPARAMETERIVNV glCombinerParameterivNV; - MYPFNGLCOMBINERPARAMETERFNV glCombinerParameterfNV; - MYPFNGLCOMBINERPARAMETERINV glCombinerParameteriNV; - - MYPFNGLSHARPENTEXFUNCSGI glSharpenTexFuncSGIS; - MYPFNGLDETAILTEXFUNCSGI glDetailTexFuncSGIS; - MYPFNGLTEXFILTERFUNCSGI glTexFilterFuncSGIS; - - /* Shading language support */ - jboolean shadingLanguageGLSL; - jboolean shadingLanguageCg; - - /* Function pointers for language-independent vertex attribute functions */ - MYPFNVERTEXATTRPOINTER vertexAttrPointer; - MYPFNENABLEVERTEXATTRARRAY enableVertexAttrArray; - MYPFNDISABLEVERTEXATTRARRAY disableVertexAttrArray; - MYPFNVERTEXATTR1FV vertexAttr1fv; - MYPFNVERTEXATTR2FV vertexAttr2fv; - MYPFNVERTEXATTR3FV vertexAttr3fv; - MYPFNVERTEXATTR4FV vertexAttr4fv; - - /* Pointer to currently bound shader program */ - jlong shaderProgramId; - - /* Implementation-dependent maximum number of vertex attributes */ - int maxVertexAttrs; - - /* GLSL shader context information */ - GLSLCtxInfo *glslCtxInfo; - - /* Cg shader context information */ - CgCtxInfo *cgCtxInfo; - -}; - - -#ifdef WIN32 - -/* define the structure to hold the info. of a pixel format */ -typedef struct PixelFormatInfoRec PixelFormatInfo; - -struct PixelFormatInfoRec { - /* Information about onScreen pixel format */ - int onScreenPFormat; /* PixelFormat for onScreen */ - GLboolean onScreenHasMultisample; /* TRUE if WGL_SAMPLE_BUFFERS_ARB is TRUE and - WGL_SAMPLES_ARB > 1 */ - GLboolean onScreenHasStereo; - GLboolean onScreenHasDoubleBuffer; - GLboolean onScreenHasAccum; - int onScreenStencilSize; - - /* Information about onScreen pixel format */ - int offScreenPFormat; /* PixelFormat for offScreen */ - GLboolean offScreenHasMultisample; /* TRUE if WGL_SAMPLE_BUFFERS_ARB is TRUE and - WGL_SAMPLES_ARB > 1 */ - GLboolean offScreenHasStereo; - GLboolean offScreenHasDoubleBuffer; - GLboolean offScreenHasAccum; - int offScreenStencilSize; - - GLboolean drawToPbuffer; /* value of DRAW_TO_PBUFFER attr for offScreenPFormat */ - - /* Information about extension support */ - char* supportedExtensions; /* list of supported ARB extensions */ - GLboolean supportARB; /* TRUE if wgl*PixelFormat*ARB functions supported */ - GLboolean supportPbuffer; /* TRUE if wgl*Pbuffer functions supported */ - - - /* handle to ARB functions */ - PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB; - PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB; - PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB; - PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB; - PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB; - PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB; - PFNWGLQUERYPBUFFERARBPROC wglQueryPbufferARB; -}; - -#endif /* WIN32 */ - -/* define the structure to hold the info. of a offScreen buffer */ -typedef struct OffScreenBufferInfoRec OffScreenBufferInfo; - -struct OffScreenBufferInfoRec { - GLboolean isPbuffer; /* GL_TRUE if Pbuffer is used. */ - -#if defined(UNIX) -#endif - -#ifdef WIN32 - HPBUFFERARB hpbuf; /* Handle to the Pbuffer */ -#endif /* WIN32 */ - -}; - - -#endif /* D3D */ -#endif /* _Java3D_gldefs_h_ */ |