From ae685dcf4b4607d34a4075a80ea68f1095c429fa Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 10 Feb 2004 18:02:16 +0000 Subject: [PATCH] split glgsg into glmisc; expand on mesadisplay --- panda/metalibs/panda/Sources.pp | 2 +- panda/metalibs/pandagl/Sources.pp | 2 +- panda/src/display/graphicsPipe.cxx | 10 +- panda/src/glgsg/Sources.pp | 18 +- panda/src/glgsg/config_glgsg.cxx | 73 +- panda/src/glgsg/config_glgsg.h | 16 +- panda/src/glgsg/glext.h | 3296 ----------------- panda/src/glgsg/glgsg_composite1.cxx | 4 +- panda/src/glstuff/Sources.pp | 34 + .../glGeomNodeContext_src.I} | 8 +- .../glGeomNodeContext_src.cxx} | 6 +- .../glGeomNodeContext_src.h} | 25 +- .../glGraphicsStateGuardian_src.I} | 483 ++- .../glGraphicsStateGuardian_src.cxx} | 1013 +++-- .../glGraphicsStateGuardian_src.h} | 52 +- .../glSavedFrameBuffer_src.I} | 14 +- .../glSavedFrameBuffer_src.cxx} | 4 +- .../glSavedFrameBuffer_src.h} | 25 +- .../glTextureContext_src.I} | 8 +- .../glTextureContext_src.cxx} | 4 +- .../glTextureContext_src.h} | 26 +- panda/src/glstuff/glmisc_src.cxx | 87 + panda/src/glstuff/glmisc_src.h | 60 + panda/src/glstuff/glpure.cxx | 26 + panda/src/glstuff/glstuff_src.cxx | 29 + panda/src/glstuff/glstuff_src.h | 44 + panda/src/glstuff/glstuff_undef_src.h | 29 + panda/src/glxdisplay/glxGraphicsBuffer.cxx | 2 +- .../src/glxdisplay/glxGraphicsStateGuardian.h | 2 +- panda/src/glxdisplay/glxGraphicsWindow.cxx | 2 +- panda/src/mesadisplay/Sources.pp | 17 +- panda/src/mesadisplay/config_mesadisplay.cxx | 22 +- panda/src/mesadisplay/config_mesadisplay.h | 6 +- panda/src/mesadisplay/mesagsg.cxx | 24 + panda/src/mesadisplay/mesagsg.h | 46 + ...aGraphicsPipe.I => osMesaGraphicsBuffer.I} | 2 +- ...icsBuffer.cxx => osMesaGraphicsBuffer.cxx} | 40 +- ...raphicsBuffer.h => osMesaGraphicsBuffer.h} | 20 +- ...aGraphicsBuffer.I => osMesaGraphicsPipe.I} | 2 +- ...raphicsPipe.cxx => osMesaGraphicsPipe.cxx} | 48 +- ...esaGraphicsPipe.h => osMesaGraphicsPipe.h} | 18 +- ...ardian.I => osMesaGraphicsStateGuardian.I} | 4 +- ...an.cxx => osMesaGraphicsStateGuardian.cxx} | 20 +- ...ardian.h => osMesaGraphicsStateGuardian.h} | 30 +- panda/src/pandabase/pandasymbols.h | 11 + panda/src/wgldisplay/wglGraphicsBuffer.cxx | 2 +- .../src/wgldisplay/wglGraphicsStateGuardian.h | 2 +- panda/src/wgldisplay/wglGraphicsWindow.cxx | 2 +- 48 files changed, 1318 insertions(+), 4402 deletions(-) delete mode 100644 panda/src/glgsg/glext.h create mode 100644 panda/src/glstuff/Sources.pp rename panda/src/{glgsg/glGeomNodeContext.I => glstuff/glGeomNodeContext_src.I} (84%) rename panda/src/{glgsg/glGeomNodeContext.cxx => glstuff/glGeomNodeContext_src.cxx} (84%) rename panda/src/{glgsg/glGeomNodeContext.h => glstuff/glGeomNodeContext_src.h} (79%) rename panda/src/{glgsg/glGraphicsStateGuardian.I => glstuff/glGraphicsStateGuardian_src.I} (64%) rename panda/src/{glgsg/glGraphicsStateGuardian.cxx => glstuff/glGraphicsStateGuardian_src.cxx} (86%) rename panda/src/{glgsg/glGraphicsStateGuardian.h => glstuff/glGraphicsStateGuardian_src.h} (92%) rename panda/src/{glgsg/glSavedFrameBuffer.I => glstuff/glSavedFrameBuffer_src.I} (76%) rename panda/src/{glgsg/glSavedFrameBuffer.cxx => glstuff/glSavedFrameBuffer_src.cxx} (89%) rename panda/src/{glgsg/glSavedFrameBuffer.h => glstuff/glSavedFrameBuffer_src.h} (75%) rename panda/src/{glgsg/glTextureContext.I => glstuff/glTextureContext_src.I} (85%) rename panda/src/{glgsg/glTextureContext.cxx => glstuff/glTextureContext_src.cxx} (89%) rename panda/src/{glgsg/glTextureContext.h => glstuff/glTextureContext_src.h} (74%) create mode 100644 panda/src/glstuff/glmisc_src.cxx create mode 100644 panda/src/glstuff/glmisc_src.h create mode 100644 panda/src/glstuff/glpure.cxx create mode 100644 panda/src/glstuff/glstuff_src.cxx create mode 100644 panda/src/glstuff/glstuff_src.h create mode 100644 panda/src/glstuff/glstuff_undef_src.h create mode 100644 panda/src/mesadisplay/mesagsg.cxx create mode 100644 panda/src/mesadisplay/mesagsg.h rename panda/src/mesadisplay/{mesaGraphicsPipe.I => osMesaGraphicsBuffer.I} (94%) rename panda/src/mesadisplay/{mesaGraphicsBuffer.cxx => osMesaGraphicsBuffer.cxx} (82%) rename panda/src/mesadisplay/{mesaGraphicsBuffer.h => osMesaGraphicsBuffer.h} (79%) rename panda/src/mesadisplay/{mesaGraphicsBuffer.I => osMesaGraphicsPipe.I} (94%) rename panda/src/mesadisplay/{mesaGraphicsPipe.cxx => osMesaGraphicsPipe.cxx} (74%) rename panda/src/mesadisplay/{mesaGraphicsPipe.h => osMesaGraphicsPipe.h} (86%) rename panda/src/mesadisplay/{mesaGraphicsStateGuardian.I => osMesaGraphicsStateGuardian.I} (88%) rename panda/src/mesadisplay/{mesaGraphicsStateGuardian.cxx => osMesaGraphicsStateGuardian.cxx} (71%) rename panda/src/mesadisplay/{mesaGraphicsStateGuardian.h => osMesaGraphicsStateGuardian.h} (60%) diff --git a/panda/metalibs/panda/Sources.pp b/panda/metalibs/panda/Sources.pp index d3947aceca..ff06704671 100644 --- a/panda/metalibs/panda/Sources.pp +++ b/panda/metalibs/panda/Sources.pp @@ -18,7 +18,7 @@ parametrics pnm \ pnmimagetypes pnmimage sgattrib sgmanip sgraph sgraphutil \ switchnode pnmtext text tform tiff lerp loader putil \ - audio pgui pandabase + audio pgui pandabase glstuff diff --git a/panda/metalibs/pandagl/Sources.pp b/panda/metalibs/pandagl/Sources.pp index ac0185b21a..6d1a7459e2 100644 --- a/panda/metalibs/pandagl/Sources.pp +++ b/panda/metalibs/pandagl/Sources.pp @@ -12,7 +12,7 @@ // We don't have any components if we're linking the GL library // directly into Panda. #define COMPONENT_LIBS \ - glgsg glxdisplay mesadisplay \ + glgsg glxdisplay \ wgldisplay #endif diff --git a/panda/src/display/graphicsPipe.cxx b/panda/src/display/graphicsPipe.cxx index 93b4a853ad..44a889be26 100644 --- a/panda/src/display/graphicsPipe.cxx +++ b/panda/src/display/graphicsPipe.cxx @@ -112,7 +112,7 @@ get_hw_channel(GraphicsOutput *, int) { PT(GraphicsDevice) GraphicsPipe:: make_device(void *scrn) { display_cat.error() - << "Error: make_device() unimplemented by graphicsPipe!\n"; + << "make_device() unimplemented by " << get_type() << "\n"; return NULL; } @@ -125,8 +125,8 @@ make_device(void *scrn) { //////////////////////////////////////////////////////////////////// PT(GraphicsStateGuardian) GraphicsPipe:: make_gsg(const FrameBufferProperties &properties) { - // shouldnt this method really be pure virtual? it's an error for a pipe to not implement it - display_cat.error() << "Error: make_gsg() unimplemented by graphicsPipe!\n"; + display_cat.error() + << "make_gsg() unimplemented by " << get_type() << "\n"; return NULL; } @@ -155,6 +155,8 @@ close_gsg(GraphicsStateGuardian *gsg) { //////////////////////////////////////////////////////////////////// PT(GraphicsWindow) GraphicsPipe:: make_window(GraphicsStateGuardian *) { + display_cat.error() + << get_type() << " cannot create onscreen windows.\n"; return NULL; } @@ -165,5 +167,7 @@ make_window(GraphicsStateGuardian *) { //////////////////////////////////////////////////////////////////// PT(GraphicsBuffer) GraphicsPipe:: make_buffer(GraphicsStateGuardian *, int, int, bool) { + display_cat.error() + << get_type() << " cannot create offscreen buffers.\n"; return NULL; } diff --git a/panda/src/glgsg/Sources.pp b/panda/src/glgsg/Sources.pp index 8deaf67e6f..d5a4a2de86 100644 --- a/panda/src/glgsg/Sources.pp +++ b/panda/src/glgsg/Sources.pp @@ -7,25 +7,15 @@ #begin lib_target #define TARGET glgsg #define LOCAL_LIBS \ - gsgmisc gsgbase gobj display \ + glstuff gsgmisc gsgbase gobj display \ putil linmath mathutil pnmimage - #define COMBINED_SOURCES $[TARGET]_composite1.cxx - #define SOURCES \ - glGraphicsStateGuardian.cxx \ - config_glgsg.h glGraphicsStateGuardian.I \ - glGraphicsStateGuardian.h glSavedFrameBuffer.I \ - glSavedFrameBuffer.h glTextureContext.I glext.h \ - glGeomNodeContext.I glGeomNodeContext.h glTextureContext.h - - #define INCLUDED_SOURCES \ - config_glgsg.cxx glSavedFrameBuffer.cxx \ - glGeomNodeContext.cxx glTextureContext.cxx - + config_glgsg.h config_glgsg.cxx \ + glgsg.h glgsg.cxx #define INSTALL_HEADERS \ - config_glgsg.h glGraphicsStateGuardian.I glGraphicsStateGuardian.h + config_glgsg.h glgsg.h #end lib_target diff --git a/panda/src/glgsg/config_glgsg.cxx b/panda/src/glgsg/config_glgsg.cxx index e5727da9fa..ac0eb173a7 100644 --- a/panda/src/glgsg/config_glgsg.cxx +++ b/panda/src/glgsg/config_glgsg.cxx @@ -17,77 +17,13 @@ //////////////////////////////////////////////////////////////////// #include "config_glgsg.h" -#include "glGraphicsStateGuardian.h" -#include "glSavedFrameBuffer.h" -#include "glTextureContext.h" -#include "glGeomNodeContext.h" +#include "glgsg.h" #include "dconfig.h" -Configure(config_glgsg); +ConfigureDef(config_glgsg); NotifyCategoryDef(glgsg, ":display:gsg"); -// Configure this true to glHint the textures into the cheapest -// possible mode. -bool gl_cheap_textures = config_glgsg.GetBool("gl-cheap-textures", false); - -// Configure this true to ignore texture modes like modulate that -// blend texture color with polygon color (a little cheaper for -// software renderers). -bool gl_always_decal_textures = config_glgsg.GetBool("gl-always-decal-textures", false); - -// Configure this true to disable texture clamp mode (all textures -// repeat, a little cheaper for software renderers). -bool gl_ignore_clamp = config_glgsg.GetBool("gl-ignore-clamp", false); - -// Configure this true to disable any texture filters at all (forcing -// point sampling). -bool gl_ignore_filters = config_glgsg.GetBool("gl-ignore-filters", false); - -// Configure this true to disable mipmapping only. -bool gl_ignore_mipmaps = config_glgsg.GetBool("gl-ignore-mipmaps", false) || gl_ignore_filters; - -// Configure this true to enable full trilinear mipmapping on every -// texture, whether it asks for it or not. -bool gl_force_mipmaps = config_glgsg.GetBool("gl-force-mipmaps", false); - -// Configure this true to cause mipmaps to be rendered with phony -// colors, using mipmap_level_*.rgb if they are available. -bool gl_show_mipmaps = config_glgsg.GetBool("gl-show-mipmaps", false); - -// Configure this true to cause the generated mipmap images to be -// written out to image files on the disk as they are generated. -bool gl_save_mipmaps = config_glgsg.GetBool("gl-save-mipmaps", false); - -// Configure this true to cause all lighting normals to automatically -// be normalized by the graphics hardware before rendering. This is -// necessary if you intend to render things under scale transforms and -// expect lighting to work correctly. Maybe one day there will be -// another way to set this at runtime, instead of only as a configure -// variable. -bool gl_auto_normalize_lighting = config_glgsg.GetBool("auto-normalize-lighting", true); - -// Configure this true to try to implement decals using a -// DepthOffsetAttrib, false to do them with the more reliable 3-pass -// rendering method instead. -bool gl_depth_offset_decals = config_glgsg.GetBool("depth-offset-decals", false); - -// Configure this true to indicate the current version of GL fully -// supports textures with B, G, R ordering; false if it only supports -// R, G, B. false will always work, but true might be faster if the -// implementation supports it. -#ifdef GL_BGR -bool gl_supports_bgr = config_glgsg.GetBool("gl-supports-bgr", false); -#else -// If it's not even defined, we can't use it. -bool gl_supports_bgr = false; -#endif // GL_BGR - -// Configure this false if your GL's implementation of glColorMask() -// is broken (some are). This will force the use of a (presumably) -// more expensive blending operation instead. -bool gl_color_mask = config_glgsg.GetBool("gl-color-mask", true); - ConfigureFn(config_glgsg) { init_libglgsg(); } @@ -108,8 +44,5 @@ init_libglgsg() { } initialized = true; - GLGraphicsStateGuardian::init_type(); - GLSavedFrameBuffer::init_type(); - GLTextureContext::init_type(); - GLGeomNodeContext::init_type(); + GLinit_classes(); } diff --git a/panda/src/glgsg/config_glgsg.h b/panda/src/glgsg/config_glgsg.h index fc8920a111..fb54740145 100644 --- a/panda/src/glgsg/config_glgsg.h +++ b/panda/src/glgsg/config_glgsg.h @@ -21,23 +21,11 @@ #include "pandabase.h" #include "notifyCategoryProxy.h" +#include "dconfig.h" +ConfigureDecl(config_glgsg, EXPCL_PANDAGL, EXPTP_PANDAGL); NotifyCategoryDecl(glgsg, EXPCL_PANDAGL, EXPTP_PANDAGL); -extern bool gl_cheap_textures; -extern bool gl_always_decal_textures; -extern bool gl_ignore_clamp; -extern bool gl_ignore_filters; -extern bool gl_ignore_mipmaps; -extern bool gl_force_mipmaps; -extern bool gl_show_mipmaps; -extern bool gl_save_mipmaps; -extern bool gl_auto_normalize_lighting; -extern bool gl_depth_offset_decals; -extern bool gl_supports_bgr; -extern bool gl_color_mask; - - extern EXPCL_PANDAGL void init_libglgsg(); #endif diff --git a/panda/src/glgsg/glext.h b/panda/src/glgsg/glext.h deleted file mode 100644 index d9ebe1c886..0000000000 --- a/panda/src/glgsg/glext.h +++ /dev/null @@ -1,3296 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 1998, 1999, 2000, 2001, NVIDIA Corporation. -** All rights Reserved. -** -** THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL TO -** NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY THIRD PARTY -** IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORPORATION. -*/ - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif - -/*************************************************************/ - -/* Header file version number, required by OpenGL ABI for Linux */ -#define GL_GLEXT_VERSION 6 - -#ifndef GL_VERSION_1_2 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE3_RGB_EXT 0x8583 -#define GL_SOURCE4_RGB_EXT 0x8584 -#define GL_SOURCE5_RGB_EXT 0x8585 -#define GL_SOURCE6_RGB_EXT 0x8586 -#define GL_SOURCE7_RGB_EXT 0x8587 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_SOURCE3_ALPHA_EXT 0x858B -#define GL_SOURCE4_ALPHA_EXT 0x858C -#define GL_SOURCE5_ALPHA_EXT 0x858D -#define GL_SOURCE6_ALPHA_EXT 0x858E -#define GL_SOURCE7_ALPHA_EXT 0x858F -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND3_RGB_EXT 0x8593 -#define GL_OPERAND4_RGB_EXT 0x8594 -#define GL_OPERAND5_RGB_EXT 0x8595 -#define GL_OPERAND6_RGB_EXT 0x8596 -#define GL_OPERAND7_RGB_EXT 0x8597 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#define GL_OPERAND3_ALPHA_EXT 0x859B -#define GL_OPERAND4_ALPHA_EXT 0x859C -#define GL_OPERAND5_ALPHA_EXT 0x859D -#define GL_OPERAND6_ALPHA_EXT 0x859E -#define GL_OPERAND7_ALPHA_EXT 0x859F -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x01 -#define GL_REPLACE_MIDDLE_SUN 0x02 -#define GL_REPLACE_OLDEST_SUN 0x03 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW_MATRIX1_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - - -/*************************************************************/ - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); -extern void APIENTRY glBlendEquation (GLenum); -extern void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -extern void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); -extern void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); -extern void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); -extern void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); -extern void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); -extern void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); -extern void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); -extern void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); -extern void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -extern void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); -extern void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -extern void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -extern void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); -extern void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); -extern void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); -extern void APIENTRY glMinmax (GLenum, GLenum, GLboolean); -extern void APIENTRY glResetHistogram (GLenum); -extern void APIENTRY glResetMinmax (GLenum); -extern void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (APIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DPROC) (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 * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glActiveTextureARB (GLenum); -extern void APIENTRY glClientActiveTextureARB (GLenum); -extern void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); -extern void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); -extern void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); -extern void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); -extern void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); -extern void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); -extern void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); -extern void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); -extern void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); -extern void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); -extern void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); -extern void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); -extern void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); -extern void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); -extern void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); -extern void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); -extern void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); -extern void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); -extern void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); -extern void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); -extern void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); -extern void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); -extern void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); -extern void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -extern void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); -extern void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); -extern void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); -extern void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); -extern void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); -extern void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); -extern void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); -extern void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); -extern void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); -extern void APIENTRY glSamplePassARB (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRY * PFNGLSAMPLEPASSARBPROC) (GLenum pass); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -extern void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -extern void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -extern void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -extern void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -extern void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -extern void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, void *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); -extern void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); -extern void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); -extern void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); -extern void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -extern void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); -extern void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); -extern void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); -extern void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); -extern void APIENTRY glResetHistogramEXT (GLenum); -extern void APIENTRY glResetMinmaxEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); -extern void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); -extern void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); -extern void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); -extern void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -extern void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); -extern void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -extern void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_EXT_color_matrix -#define GL_EXT_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); -extern void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); -extern void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glPixelTexGenSGIX (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); -extern void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); -extern void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); -extern void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); -extern void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); -extern void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -extern GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); -extern void APIENTRY glBindTextureEXT (GLenum, GLuint); -extern void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); -extern void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); -extern GLboolean APIENTRY glIsTextureEXT (GLuint); -extern void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -extern void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -extern void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); -extern void APIENTRY glSamplePatternSGIS (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glArrayElementEXT (GLint); -extern void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -extern void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); -extern void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); -extern void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); -extern void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -extern void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -extern void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -extern void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glBlendEquationEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); -extern void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); -extern void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); -extern void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glPointParameterfEXT (GLenum, GLfloat); -extern void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); -extern void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); -extern void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -extern GLint APIENTRY glGetInstrumentsSGIX (void); -extern void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); -extern GLint APIENTRY glPollInstrumentsSGIX (GLint *); -extern void APIENTRY glReadInstrumentsSGIX (GLint); -extern void APIENTRY glStartInstrumentsSGIX (void); -extern void APIENTRY glStopInstrumentsSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRY * PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRY * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRY * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRY * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRY * PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRY * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFrameZoomSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTagSampleBufferSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glReferencePlaneSGIX (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFlushRasterSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); -extern void APIENTRY glGetFogFuncSGIS (const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRY * PFNGLGETFOGFUNCSGISPROC) (const GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); -extern void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); -extern void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); -extern void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); -extern void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glHintPGI (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -extern void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); -extern void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); -extern void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); -extern void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); -extern void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); -extern void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); -extern void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); -extern void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glIndexMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glIndexFuncEXT (GLenum, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glLockArraysEXT (GLint, GLsizei); -extern void APIENTRY glUnlockArraysEXT (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); -extern void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); -extern void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); -extern void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); -extern void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); -extern void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); -extern void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); -extern void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); -extern void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); -extern void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); -extern void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); -extern void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); -extern void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); -extern void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); -extern void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); -extern void APIENTRY glLightEnviSGIX (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glApplyTextureEXT (GLenum); -extern void APIENTRY glTextureLightEXT (GLenum); -extern void APIENTRY glTextureMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); -extern void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); -extern void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); -extern void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); -typedef void (APIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); -extern void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); -extern void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); -extern void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); -extern void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); -extern void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); -extern void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); -extern void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); -extern void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); -extern void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); -extern void APIENTRY glSecondaryColor3ivEXT (const GLint *); -extern void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); -extern void APIENTRY glSecondaryColor3svEXT (const GLshort *); -extern void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); -extern void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); -extern void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); -extern void APIENTRY glSecondaryColor3uivEXT (const GLuint *); -extern void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); -extern void APIENTRY glSecondaryColor3usvEXT (const GLushort *); -extern void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTextureNormalEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); -extern void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFogCoordfEXT (GLfloat); -extern void APIENTRY glFogCoordfvEXT (const GLfloat *); -extern void APIENTRY glFogCoorddEXT (GLdouble); -extern void APIENTRY glFogCoorddvEXT (const GLdouble *); -extern void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); -extern void APIENTRY glTangent3bvEXT (const GLbyte *); -extern void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); -extern void APIENTRY glTangent3dvEXT (const GLdouble *); -extern void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTangent3fvEXT (const GLfloat *); -extern void APIENTRY glTangent3iEXT (GLint, GLint, GLint); -extern void APIENTRY glTangent3ivEXT (const GLint *); -extern void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); -extern void APIENTRY glTangent3svEXT (const GLshort *); -extern void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); -extern void APIENTRY glBinormal3bvEXT (const GLbyte *); -extern void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); -extern void APIENTRY glBinormal3dvEXT (const GLdouble *); -extern void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); -extern void APIENTRY glBinormal3fvEXT (const GLfloat *); -extern void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); -extern void APIENTRY glBinormal3ivEXT (const GLint *); -extern void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); -extern void APIENTRY glBinormal3svEXT (const GLshort *); -extern void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); -extern void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRY * PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRY * PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRY * PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRY * PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRY * PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRY * PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRY * PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRY * PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRY * PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRY * PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRY * PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRY * PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRY * PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRY * PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRY * PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRY * PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRY * PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRY * PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRY * PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFinishTextureSUNX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); -extern void APIENTRY glGlobalAlphaFactorsSUN (GLshort); -extern void APIENTRY glGlobalAlphaFactoriSUN (GLint); -extern void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); -extern void APIENTRY glGlobalAlphaFactordSUN (GLdouble); -extern void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); -extern void APIENTRY glGlobalAlphaFactorusSUN (GLushort); -extern void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glReplacementCodeuiSUN (GLuint); -extern void APIENTRY glReplacementCodeusSUN (GLushort); -extern void APIENTRY glReplacementCodeubSUN (GLubyte); -extern void APIENTRY glReplacementCodeuivSUN (const GLuint *); -extern void APIENTRY glReplacementCodeusvSUN (const GLushort *); -extern void APIENTRY glReplacementCodeubvSUN (const GLubyte *); -extern void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); -extern void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); -extern void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); -extern void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); -extern void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); -extern void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); -extern void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); -extern void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); -extern void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLenum *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLenum, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLenum *, const GLubyte *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *, const GLfloat *); -extern void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLenum, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLenum *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLenum rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLenum rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLenum *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLenum rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glVertexWeightfEXT (GLfloat); -extern void APIENTRY glVertexWeightfvEXT (const GLfloat *); -extern void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glFlushVertexArrayRangeNV (void); -extern void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei size, const GLvoid *pointer); -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); -extern void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); -extern void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); -extern void APIENTRY glCombinerParameteriNV (GLenum, GLint); -extern void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -extern void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -extern void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); -extern void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); -extern void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); -extern void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); -extern void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glResizeBuffersMESA (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); -extern void APIENTRY glWindowPos2dvMESA (const GLdouble *); -extern void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); -extern void APIENTRY glWindowPos2fvMESA (const GLfloat *); -extern void APIENTRY glWindowPos2iMESA (GLint, GLint); -extern void APIENTRY glWindowPos2ivMESA (const GLint *); -extern void APIENTRY glWindowPos2sMESA (GLshort, GLshort); -extern void APIENTRY glWindowPos2svMESA (const GLshort *); -extern void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); -extern void APIENTRY glWindowPos3dvMESA (const GLdouble *); -extern void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); -extern void APIENTRY glWindowPos3fvMESA (const GLfloat *); -extern void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); -extern void APIENTRY glWindowPos3ivMESA (const GLint *); -extern void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); -extern void APIENTRY glWindowPos3svMESA (const GLshort *); -extern void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); -extern void APIENTRY glWindowPos4dvMESA (const GLdouble *); -extern void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); -extern void APIENTRY glWindowPos4fvMESA (const GLfloat *); -extern void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); -extern void APIENTRY glWindowPos4ivMESA (const GLint *); -extern void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); -extern void APIENTRY glWindowPos4svMESA (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glMultiModeDrawArraysIBM (GLenum, const GLint *, const GLsizei *, GLsizei, GLint); -extern void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* *, GLsizei, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -extern void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -extern void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); -extern void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -extern void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -extern void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -extern void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -extern void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTbufferMask3DFX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); -extern void APIENTRY glSamplePatternEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#endif - -#ifndef GL_SGI_vertex_preclip -#define GL_SGI_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -extern void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRY * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - - - -/* added by Cass -- this part will be auto-generated in the future*/ - - -/* Extensions */ -#define GL_ARB_texture_border_clamp 1 -#define GL_ARB_texture_env_combine 1 -#define GL_ARB_texture_env_dot3 1 -#define GL_EXT_texture_env_dot3 1 -#define GL_IBM_texture_mirrored_repeat 1 -#define GL_NV_evaluators 1 -#define GL_NV_fence 1 -#define GL_NV_multisample_filter_hint 1 -#define GL_NV_packed_depth_stencil 1 -#define GL_NV_register_combiners2 1 -#define GL_NV_texture_compression_vtc 1 -#define GL_NV_texture_rectangle 1 -#define GL_NV_texture_shader 1 -#define GL_NV_texture_shader2 1 -#define GL_NV_vertex_program 1 - -/* ARB_texture_border_clamp */ -#define GL_CLAMP_TO_BORDER_ARB 0x812D - -/* ARB_texture_env_combine */ -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_SUBTRACT_ARB 0x84E7 - -/* ARB_texture_env_dot3 */ -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF - -/* EXT_texture_env_dot3 */ -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 - -/* IBM_texture_mirrored_repeat */ -#define GL_MIRRORED_REPEAT_IBM 0x8370 - -/* NV_vertex_program */ -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F - -/* NV_evaluators */ -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 - -/* NV_fence */ -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 - -/* NV_texture_rectangle */ -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 - -/* NV_texture_shader */ -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F - -/* NV_texture_shader2 */ -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF - -/* NV_register_combiners2 */ -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 - -/* NV_packed_depth_stencil */ -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA - -/* NV_multisample_filter_hint */ -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 - -/* NV_texture_compression_vtc */ - -/* NV_vertex_program */ -typedef GLboolean (APIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); - -/* NV_evaluators */ -typedef void (APIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void (APIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void (APIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); - -/* NV_fence */ -typedef void (APIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRY * PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); - - -/* NV_register_combiners2 */ -typedef void (APIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); - - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/panda/src/glgsg/glgsg_composite1.cxx b/panda/src/glgsg/glgsg_composite1.cxx index 213a367cd2..2c11321db1 100644 --- a/panda/src/glgsg/glgsg_composite1.cxx +++ b/panda/src/glgsg/glgsg_composite1.cxx @@ -1,5 +1,3 @@ #include "config_glgsg.cxx" -#include "glSavedFrameBuffer.cxx" -#include "glGeomNodeContext.cxx" -#include "glTextureContext.cxx" +#include "glgsg.cxx" diff --git a/panda/src/glstuff/Sources.pp b/panda/src/glstuff/Sources.pp new file mode 100644 index 0000000000..2ad5cf08bc --- /dev/null +++ b/panda/src/glstuff/Sources.pp @@ -0,0 +1,34 @@ +#define OTHER_LIBS interrogatedb:c dconfig:c dtoolconfig:m \ + dtoolutil:c dtoolbase:c dtool:m + +// Most of the files here are not actually compiled into anything; +// they're just included by various other directories. + +#begin lib_target + #define TARGET glstuff + #define LOCAL_LIBS \ + gsgmisc gsgbase gobj display \ + putil linmath mathutil pnmimage + + #define INSTALL_HEADERS \ + glstuff_src.cxx \ + glstuff_src.h \ + glstuff_undef_src.h \ + glGraphicsStateGuardian_src.cxx \ + glGraphicsStateGuardian_src.I \ + glGraphicsStateGuardian_src.h \ + glSavedFrameBuffer_src.cxx \ + glSavedFrameBuffer_src.I \ + glSavedFrameBuffer_src.h \ + glTextureContext_src.cxx \ + glTextureContext_src.I \ + glTextureContext_src.h \ + glGeomNodeContext_src.cxx \ + glGeomNodeContext_src.I \ + glGeomNodeContext_src.h + + #define SOURCES \ + $[INSTALL_HEADERS] glpure.cxx + +#end lib_target + diff --git a/panda/src/glgsg/glGeomNodeContext.I b/panda/src/glstuff/glGeomNodeContext_src.I similarity index 84% rename from panda/src/glgsg/glGeomNodeContext.I rename to panda/src/glstuff/glGeomNodeContext_src.I index 69d8471892..0ea49ebba2 100644 --- a/panda/src/glgsg/glGeomNodeContext.I +++ b/panda/src/glstuff/glGeomNodeContext_src.I @@ -1,4 +1,4 @@ -// Filename: glGeomNodeContext.I +// Filename: glGeomNodeContext_src.I // Created by: drose (12Jun01) // //////////////////////////////////////////////////////////////////// @@ -18,12 +18,12 @@ //////////////////////////////////////////////////////////////////// -// Function: GLGeomNodeContext::Constructor +// Function: CLP(GeomNodeContext)::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE GLGeomNodeContext:: -GLGeomNodeContext(GeomNode *node) : +INLINE CLP(GeomNodeContext):: +CLP(GeomNodeContext)(GeomNode *node) : GeomNodeContext(node) { _index = 0; diff --git a/panda/src/glgsg/glGeomNodeContext.cxx b/panda/src/glstuff/glGeomNodeContext_src.cxx similarity index 84% rename from panda/src/glgsg/glGeomNodeContext.cxx rename to panda/src/glstuff/glGeomNodeContext_src.cxx index 9f1dfc189a..ca4a7ac18c 100644 --- a/panda/src/glgsg/glGeomNodeContext.cxx +++ b/panda/src/glstuff/glGeomNodeContext_src.cxx @@ -1,4 +1,4 @@ -// Filename: glGeomNodeContext.cxx +// Filename: glGeomNodeContext_src.cxx // Created by: drose (12Jun01) // //////////////////////////////////////////////////////////////////// @@ -16,6 +16,4 @@ // //////////////////////////////////////////////////////////////////// -#include "glGeomNodeContext.h" - -TypeHandle GLGeomNodeContext::_type_handle; +TypeHandle CLP(GeomNodeContext)::_type_handle; diff --git a/panda/src/glgsg/glGeomNodeContext.h b/panda/src/glstuff/glGeomNodeContext_src.h similarity index 79% rename from panda/src/glgsg/glGeomNodeContext.h rename to panda/src/glstuff/glGeomNodeContext_src.h index d291ca959b..44045f2de7 100644 --- a/panda/src/glgsg/glGeomNodeContext.h +++ b/panda/src/glstuff/glGeomNodeContext_src.h @@ -1,4 +1,4 @@ -// Filename: glGeomNodeContext.h +// Filename: glGeomNodeContext_src.h // Created by: drose (12Jun01) // //////////////////////////////////////////////////////////////////// @@ -16,30 +16,18 @@ // //////////////////////////////////////////////////////////////////// -#ifndef GLGEOMNODECONTEXT_H -#define GLGEOMNODECONTEXT_H - #include "pandabase.h" #include "geomNodeContext.h" #include "geomNode.h" #include "pvector.h" -#ifdef WIN32_VC -// Must include windows.h before gl.h on NT -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#endif - -#include - //////////////////////////////////////////////////////////////////// // Class : GLGeomNodeContext // Description : //////////////////////////////////////////////////////////////////// -class EXPCL_PANDAGL GLGeomNodeContext : public GeomNodeContext { +class EXPCL_GL CLP(GeomNodeContext) : public GeomNodeContext { public: - INLINE GLGeomNodeContext(GeomNode *node); + INLINE CLP(GeomNodeContext)(GeomNode *node); // The GL display list index that draws the contents of this // GeomNode. @@ -60,7 +48,7 @@ public: } static void init_type() { GeomNodeContext::init_type(); - register_type(_type_handle, "GLGeomNodeContext", + register_type(_type_handle, CLASSPREFIX_QUOTED "GeomNodeContext", GeomNodeContext::get_class_type()); } virtual TypeHandle get_type() const { @@ -72,7 +60,4 @@ private: static TypeHandle _type_handle; }; -#include "glGeomNodeContext.I" - -#endif - +#include "glGeomNodeContext_src.I" diff --git a/panda/src/glgsg/glGraphicsStateGuardian.I b/panda/src/glstuff/glGraphicsStateGuardian_src.I similarity index 64% rename from panda/src/glgsg/glGraphicsStateGuardian.I rename to panda/src/glstuff/glGraphicsStateGuardian_src.I index 14ecb8f06d..7db014b30a 100644 --- a/panda/src/glgsg/glGraphicsStateGuardian.I +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.I @@ -1,4 +1,4 @@ -// Filename: glGraphicsStateGuardian.I +// Filename: glGraphicsStateGuardian_src.I // Created by: drose (02Feb99) // //////////////////////////////////////////////////////////////////// @@ -16,12 +16,9 @@ // //////////////////////////////////////////////////////////////////// -#include "config_glgsg.h" - -#include "graphicsWindow.h" //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::report_errors +// Function: CLP(GraphicsStateGuardian)::report_errors // Access: Public, Static // Description: Checks for any outstanding error codes and outputs // them, if found. If NDEBUG is defined, this function @@ -30,10 +27,10 @@ // This is a static method so it can be called when // there's no gsg pointer around. //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: report_errors(int line, const char *source_file) { #ifndef NDEBUG - GLenum error_code = glGetError(); + GLenum error_code = GLP(GetError)(); if (error_code != GL_NO_ERROR) { report_errors_loop(line, source_file, error_code); } @@ -41,18 +38,18 @@ report_errors(int line, const char *source_file) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glClearColor +// Function: CLP(GraphicsStateGuardian)::call_glClearColor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { if (red != _clear_color_red || green != _clear_color_green || blue != _clear_color_blue || alpha != _clear_color_alpha) { - glClearColor(red, green, blue, alpha); + GLP(ClearColor)(red, green, blue, alpha); _clear_color_red = red; _clear_color_green = green; _clear_color_blue = blue; @@ -61,49 +58,49 @@ call_glClearColor(GLclampf red, GLclampf green, GLclampf blue, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glClearDepth +// Function: CLP(GraphicsStateGuardian)::call_glClearDepth // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glClearDepth(GLclampd depth) { if (depth != _clear_depth) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glClearDepth(" << (double)depth << ")" << endl; #endif - glClearDepth(depth); + GLP(ClearDepth)(depth); _clear_depth = depth; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glClearStencil +// Function: CLP(GraphicsStateGuardian)::call_glClearStencil // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glClearStencil(GLint s) { if (s != _clear_stencil) { - glClearStencil(s); + GLP(ClearStencil)(s); _clear_stencil = s; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glClearAccum +// Function: CLP(GraphicsStateGuardian)::call_glClearAccum // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glClearAccum(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { if (red != _clear_accum_red || green != _clear_accum_green || blue != _clear_accum_blue || alpha != _clear_accum_alpha) { - glClearAccum(red, green, blue, alpha); + GLP(ClearAccum)(red, green, blue, alpha); _clear_accum_red = red; _clear_accum_green = green; _clear_accum_blue = blue; @@ -112,84 +109,84 @@ call_glClearAccum(GLclampf red, GLclampf green, GLclampf blue, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glDrawBuffer +// Function: CLP(GraphicsStateGuardian)::call_glDrawBuffer // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glDrawBuffer(GLenum mode) { if (mode != _draw_buffer_mode) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glDrawBuffer("; + GLCAT.spam() << "glDrawBuffer("; switch (mode) { case GL_FRONT: - glgsg_cat.spam(false) << "GL_FRONT)"; + GLCAT.spam(false) << "GL_FRONT)"; break; case GL_BACK: - glgsg_cat.spam(false) << "GL_BACK)"; + GLCAT.spam(false) << "GL_BACK)"; break; case GL_RIGHT: - glgsg_cat.spam(false) << "GL_RIGHT)"; + GLCAT.spam(false) << "GL_RIGHT)"; break; case GL_LEFT: - glgsg_cat.spam(false) << "GL_LEFT)"; + GLCAT.spam(false) << "GL_LEFT)"; break; case GL_FRONT_RIGHT: - glgsg_cat.spam(false) << "GL_FRONT_RIGHT)"; + GLCAT.spam(false) << "GL_FRONT_RIGHT)"; break; case GL_FRONT_LEFT: - glgsg_cat.spam(false) << "GL_FRONT_LEFT)"; + GLCAT.spam(false) << "GL_FRONT_LEFT)"; break; case GL_BACK_RIGHT: - glgsg_cat.spam(false) << "GL_BACK_RIGHT)"; + GLCAT.spam(false) << "GL_BACK_RIGHT)"; break; case GL_BACK_LEFT: - glgsg_cat.spam(false) << "GL_BACK_LEFT)"; + GLCAT.spam(false) << "GL_BACK_LEFT)"; break; case GL_FRONT_AND_BACK: - glgsg_cat.spam(false) << "GL_FRONT_AND_BACK)"; + GLCAT.spam(false) << "GL_FRONT_AND_BACK)"; break; } - glgsg_cat.spam(false) << endl; + GLCAT.spam(false) << endl; #endif - glDrawBuffer(mode); + GLP(DrawBuffer)(mode); _draw_buffer_mode = mode; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glReadBuffer +// Function: CLP(GraphicsStateGuardian)::call_glReadBuffer // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glReadBuffer(GLenum mode) { if (mode != _read_buffer_mode) { - glReadBuffer(mode); + GLP(ReadBuffer)(mode); _read_buffer_mode = mode; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glShadeModel +// Function: CLP(GraphicsStateGuardian)::call_glShadeModel // Access: // Description: Set the shading model to be either GL_FLAT or GL_SMOOTH //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glShadeModel(GLenum mode) { if (_shade_model_mode != mode) { - glShadeModel(mode); + GLP(ShadeModel)(mode); _shade_model_mode = mode; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glScissor +// Function: CLP(GraphicsStateGuardian)::call_glScissor // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { if ( _scissor_x != x || _scissor_y != y || @@ -197,16 +194,16 @@ call_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { _scissor_x = x; _scissor_y = y; _scissor_width = width; _scissor_height = height; - glScissor( x, y, width, height ); + GLP(Scissor)( x, y, width, height ); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glViewport +// Function: CLP(GraphicsStateGuardian)::call_glViewport // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { if ( _viewport_x != x || _viewport_y != y || @@ -214,772 +211,772 @@ call_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { _viewport_x = x; _viewport_y = y; _viewport_width = width; _viewport_height = height; - glViewport( x, y, width, height ); + GLP(Viewport)( x, y, width, height ); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glLightModelLocal +// Function: CLP(GraphicsStateGuardian)::call_glLightModelLocal // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glLightModelLocal(GLboolean local) { if ( _lmodel_local != local ) { _lmodel_local = local; - glLightModeli( GL_LIGHT_MODEL_LOCAL_VIEWER, local ); + GLP(LightModeli)( GL_LIGHT_MODEL_LOCAL_VIEWER, local ); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glLightModelLocal +// Function: CLP(GraphicsStateGuardian)::call_glLightModelLocal // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glLightModelTwoSide(GLboolean twoside) { if (_lmodel_twoside != twoside) { _lmodel_twoside = twoside; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glLightModel(GL_LIGHT_MODEL_TWO_SIDE, " << (int)twoside << ")" << endl; #endif - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, twoside); + GLP(LightModeli)(GL_LIGHT_MODEL_TWO_SIDE, twoside); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glStencilFunc +// Function: CLP(GraphicsStateGuardian)::call_glStencilFunc // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glStencilFunc(GLenum func,GLint ref,GLuint mask) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glStencilFunc("; + GLCAT.spam() << "glStencilFunc("; switch (func) { case GL_NEVER: - glgsg_cat.spam(false) << "GL_NEVER, "; + GLCAT.spam(false) << "GL_NEVER, "; break; case GL_LESS: - glgsg_cat.spam(false) << "GL_LESS, "; + GLCAT.spam(false) << "GL_LESS, "; break; case GL_EQUAL: - glgsg_cat.spam(false) << "GL_EQUAL, "; + GLCAT.spam(false) << "GL_EQUAL, "; break; case GL_LEQUAL: - glgsg_cat.spam(false) << "GL_LEQUAL, "; + GLCAT.spam(false) << "GL_LEQUAL, "; break; case GL_GREATER: - glgsg_cat.spam(false) << "GL_GREATER, "; + GLCAT.spam(false) << "GL_GREATER, "; break; case GL_NOTEQUAL: - glgsg_cat.spam(false) << "GL_NOTEQUAL, "; + GLCAT.spam(false) << "GL_NOTEQUAL, "; break; case GL_GEQUAL: - glgsg_cat.spam(false) << "GL_GEQUAL, "; + GLCAT.spam(false) << "GL_GEQUAL, "; break; case GL_ALWAYS: - glgsg_cat.spam(false) << "GL_ALWAYS, "; + GLCAT.spam(false) << "GL_ALWAYS, "; break; default: - glgsg_cat.spam(false) << "unknown, "; + GLCAT.spam(false) << "unknown, "; break; } - glgsg_cat.spam(false) << (int)ref << ", " << (int)mask << ")\n"; + GLCAT.spam(false) << (int)ref << ", " << (int)mask << ")\n"; #endif - glStencilFunc(func, ref, mask); + GLP(StencilFunc)(func, ref, mask); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glStencilOp +// Function: CLP(GraphicsStateGuardian)::call_glStencilOp // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glStencilOp(GLenum fail,GLenum zfail,GLenum zpass) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glStencilOp(fail, zfail, "; + GLCAT.spam() << "glStencilOp(fail, zfail, "; switch (zpass) { case GL_KEEP: - glgsg_cat.spam(false) << "GL_KEEP)"; + GLCAT.spam(false) << "GL_KEEP)"; break; case GL_ZERO: - glgsg_cat.spam(false) << "GL_ZERO)"; + GLCAT.spam(false) << "GL_ZERO)"; break; case GL_REPLACE: - glgsg_cat.spam(false) << "GL_REPLACE)"; + GLCAT.spam(false) << "GL_REPLACE)"; break; case GL_INCR: - glgsg_cat.spam(false) << "GL_INCR)"; + GLCAT.spam(false) << "GL_INCR)"; break; case GL_DECR: - glgsg_cat.spam(false) << "GL_DECR)"; + GLCAT.spam(false) << "GL_DECR)"; break; case GL_INVERT: - glgsg_cat.spam(false) << "GL_INVERT)"; + GLCAT.spam(false) << "GL_INVERT)"; break; default: - glgsg_cat.spam(false) << "unknown)"; + GLCAT.spam(false) << "unknown)"; break; } - glgsg_cat.spam(false) << endl; + GLCAT.spam(false) << endl; #endif - glStencilOp(fail,zfail,zpass); + GLP(StencilOp)(fail,zfail,zpass); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glLineWidth +// Function: CLP(GraphicsStateGuardian)::call_glLineWidth // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glLineWidth(GLfloat width) { if (_line_width != width) { _line_width = width; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glLineWidth(" << width << ")" << endl; #endif - glLineWidth(width); + GLP(LineWidth)(width); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glPointSize +// Function: CLP(GraphicsStateGuardian)::call_glPointSize // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glPointSize(GLfloat size) { if (_point_size != size) { _point_size = size; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glPointSize(" << size << ")" << endl; #endif - glPointSize(size); + GLP(PointSize)(size); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glBlendFunc +// Function: CLP(GraphicsStateGuardian)::call_glBlendFunc // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glBlendFunc(GLenum sfunc, GLenum dfunc) { if (_blend_source_func != sfunc || _blend_dest_func != dfunc) { _blend_source_func = sfunc; _blend_dest_func = dfunc; #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glBlendFunc("; + GLCAT.spam() << "glBlendFunc("; switch (sfunc) { case GL_ZERO: - glgsg_cat.spam(false) << "GL_ZERO, "; + GLCAT.spam(false) << "GL_ZERO, "; break; case GL_ONE: - glgsg_cat.spam(false) << "GL_ONE, "; + GLCAT.spam(false) << "GL_ONE, "; break; case GL_DST_COLOR: - glgsg_cat.spam(false) << "GL_DST_COLOR, "; + GLCAT.spam(false) << "GL_DST_COLOR, "; break; case GL_ONE_MINUS_DST_COLOR: - glgsg_cat.spam(false) << "GL_ONE_MINUS_DST_COLOR, "; + GLCAT.spam(false) << "GL_ONE_MINUS_DST_COLOR, "; break; case GL_SRC_ALPHA: - glgsg_cat.spam(false) << "GL_SRC_ALPHA, "; + GLCAT.spam(false) << "GL_SRC_ALPHA, "; break; case GL_ONE_MINUS_SRC_ALPHA: - glgsg_cat.spam(false) << "GL_ONE_MINUS_SRC_ALPHA, "; + GLCAT.spam(false) << "GL_ONE_MINUS_SRC_ALPHA, "; break; case GL_DST_ALPHA: - glgsg_cat.spam(false) << "GL_DST_ALPHA, "; + GLCAT.spam(false) << "GL_DST_ALPHA, "; break; case GL_ONE_MINUS_DST_ALPHA: - glgsg_cat.spam(false) << "GL_ONE_MINUS_DST_ALPHA, "; + GLCAT.spam(false) << "GL_ONE_MINUS_DST_ALPHA, "; break; case GL_SRC_ALPHA_SATURATE: - glgsg_cat.spam(false) << "GL_SRC_ALPHA_SATURATE, "; + GLCAT.spam(false) << "GL_SRC_ALPHA_SATURATE, "; break; default: - glgsg_cat.spam(false) << "unknown, "; + GLCAT.spam(false) << "unknown, "; break; } switch (dfunc) { case GL_ZERO: - glgsg_cat.spam(false) << "GL_ZERO)"; + GLCAT.spam(false) << "GL_ZERO)"; break; case GL_ONE: - glgsg_cat.spam(false) << "GL_ONE)"; + GLCAT.spam(false) << "GL_ONE)"; break; case GL_SRC_COLOR: - glgsg_cat.spam(false) << "GL_SRC_COLOR)"; + GLCAT.spam(false) << "GL_SRC_COLOR)"; break; case GL_ONE_MINUS_SRC_COLOR: - glgsg_cat.spam(false) << "GL_ONE_MINUS_SRC_COLOR)"; + GLCAT.spam(false) << "GL_ONE_MINUS_SRC_COLOR)"; break; case GL_SRC_ALPHA: - glgsg_cat.spam(false) << "GL_SRC_ALPHA)"; + GLCAT.spam(false) << "GL_SRC_ALPHA)"; break; case GL_ONE_MINUS_SRC_ALPHA: - glgsg_cat.spam(false) << "GL_ONE_MINUS_SRC_ALPHA)"; + GLCAT.spam(false) << "GL_ONE_MINUS_SRC_ALPHA)"; break; case GL_DST_ALPHA: - glgsg_cat.spam(false) << "GL_DST_ALPHA)"; + GLCAT.spam(false) << "GL_DST_ALPHA)"; break; case GL_ONE_MINUS_DST_ALPHA: - glgsg_cat.spam(false) << "GL_ONE_MINUS_DST_ALPHA)"; + GLCAT.spam(false) << "GL_ONE_MINUS_DST_ALPHA)"; break; default: - glgsg_cat.spam(false) << "unknown)"; + GLCAT.spam(false) << "unknown)"; break; } - glgsg_cat.spam(false) << endl; + GLCAT.spam(false) << endl; #endif - glBlendFunc(sfunc, dfunc); + GLP(BlendFunc)(sfunc, dfunc); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glFogMode +// Function: CLP(GraphicsStateGuardian)::call_glFogMode // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glFogMode(GLint mode) { if (_fog_mode != mode) { _fog_mode = mode; #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glFog(GL_FOG_MODE, "; + GLCAT.spam() << "glFog(GL_FOG_MODE, "; switch(mode) { case GL_LINEAR: - glgsg_cat.spam(false) << "GL_LINEAR)" << endl; + GLCAT.spam(false) << "GL_LINEAR)" << endl; break; case GL_EXP: - glgsg_cat.spam(false) << "GL_EXP)" << endl; + GLCAT.spam(false) << "GL_EXP)" << endl; break; case GL_EXP2: - glgsg_cat.spam(false) << "GL_EXP2)" << endl; + GLCAT.spam(false) << "GL_EXP2)" << endl; break; #ifdef GL_FOG_FUNC_SGIS case GL_FOG_FUNC_SGIS: - glgsg_cat.spam(false) << "GL_FOG_FUNC_SGIS)" << endl; + GLCAT.spam(false) << "GL_FOG_FUNC_SGIS)" << endl; break; #endif default: - glgsg_cat.spam(false) << "unknown)" << endl; + GLCAT.spam(false) << "unknown)" << endl; break; } #endif - glFogi(GL_FOG_MODE, mode); + GLP(Fogi)(GL_FOG_MODE, mode); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glFogStart +// Function: CLP(GraphicsStateGuardian)::call_glFogStart // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glFogStart(GLfloat start) { if (_fog_start != start) { _fog_start = start; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glFog(GL_FOG_START, " << start << ")" << endl; #endif - glFogf(GL_FOG_START, start); + GLP(Fogf)(GL_FOG_START, start); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glFogEnd +// Function: CLP(GraphicsStateGuardian)::call_glFogEnd // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glFogEnd(GLfloat end) { if (_fog_end != end) { _fog_end = end; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glFog(GL_FOG_END, " << end << ")" << endl; #endif - glFogf(GL_FOG_END, end); + GLP(Fogf)(GL_FOG_END, end); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glFogDensity +// Function: CLP(GraphicsStateGuardian)::call_glFogDensity // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glFogDensity(GLfloat density) { if (_fog_density != density) { _fog_density = density; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glFog(GL_FOG_DENSITY, " << density << ")" << endl; #endif - glFogf(GL_FOG_DENSITY, density); + GLP(Fogf)(GL_FOG_DENSITY, density); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glFogColor +// Function: CLP(GraphicsStateGuardian)::call_glFogColor // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glFogColor(const Colorf &color) { if (_fog_color != color) { _fog_color = color; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glFog(GL_FOG_COLOR, " << color << ")" << endl; #endif - glFogfv(GL_FOG_COLOR, color.get_data()); + GLP(Fogfv)(GL_FOG_COLOR, color.get_data()); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glAlphaFunc +// Function: CLP(GraphicsStateGuardian)::call_glAlphaFunc // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glAlphaFunc(GLenum func, GLclampf ref) { if (_alpha_func != func || _alpha_func_ref != ref) { _alpha_func = func; _alpha_func_ref = ref; #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glAlphaFunc("; + GLCAT.spam() << "glAlphaFunc("; switch (func) { case GL_NEVER: - glgsg_cat.spam(false) << "GL_NEVER, "; + GLCAT.spam(false) << "GL_NEVER, "; break; case GL_LESS: - glgsg_cat.spam(false) << "GL_LESS, "; + GLCAT.spam(false) << "GL_LESS, "; break; case GL_EQUAL: - glgsg_cat.spam(false) << "GL_EQUAL, "; + GLCAT.spam(false) << "GL_EQUAL, "; break; case GL_LEQUAL: - glgsg_cat.spam(false) << "GL_LEQUAL, "; + GLCAT.spam(false) << "GL_LEQUAL, "; break; case GL_GREATER: - glgsg_cat.spam(false) << "GL_GREATER, "; + GLCAT.spam(false) << "GL_GREATER, "; break; case GL_NOTEQUAL: - glgsg_cat.spam(false) << "GL_NOTEQUAL, "; + GLCAT.spam(false) << "GL_NOTEQUAL, "; break; case GL_GEQUAL: - glgsg_cat.spam(false) << "GL_GEQUAL, "; + GLCAT.spam(false) << "GL_GEQUAL, "; break; case GL_ALWAYS: - glgsg_cat.spam(false) << "GL_ALWAYS, "; + GLCAT.spam(false) << "GL_ALWAYS, "; break; } - glgsg_cat.spam() << ref << ")" << endl; + GLCAT.spam() << ref << ")" << endl; #endif - glAlphaFunc(func, ref); + GLP(AlphaFunc)(func, ref); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::call_glPolygonMode +// Function: CLP(GraphicsStateGuardian)::call_glPolygonMode // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: call_glPolygonMode(GLenum mode) { if (_polygon_mode != mode) { _polygon_mode = mode; #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glPolygonMode(GL_BACK_AND_FRONT, "; + GLCAT.spam() << "glPolygonMode(GL_BACK_AND_FRONT, "; switch (mode) { case GL_POINT: - glgsg_cat.spam(false) << "GL_POINT)" << endl; + GLCAT.spam(false) << "GL_POINT)" << endl; break; case GL_LINE: - glgsg_cat.spam(false) << "GL_LINE)" << endl; + GLCAT.spam(false) << "GL_LINE)" << endl; break; case GL_FILL: - glgsg_cat.spam(false) << "GL_FILL)" << endl; + GLCAT.spam(false) << "GL_FILL)" << endl; break; } #endif - glPolygonMode(GL_FRONT_AND_BACK, mode); + GLP(PolygonMode)(GL_FRONT_AND_BACK, mode); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::set_pack_alignment +// Function: CLP(GraphicsStateGuardian)::set_pack_alignment // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: set_pack_alignment(GLint alignment) { if (_pack_alignment != alignment) { - glPixelStorei(GL_PACK_ALIGNMENT, alignment); + GLP(PixelStorei)(GL_PACK_ALIGNMENT, alignment); _pack_alignment = alignment; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::set_unpack_alignment +// Function: CLP(GraphicsStateGuardian)::set_unpack_alignment // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: set_unpack_alignment(GLint alignment) { if (_unpack_alignment != alignment) { - glPixelStorei(GL_UNPACK_ALIGNMENT, alignment); + GLP(PixelStorei)(GL_UNPACK_ALIGNMENT, alignment); _unpack_alignment = alignment; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_multisample +// Function: CLP(GraphicsStateGuardian)::enable_multisample // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_multisample(bool val) { if (_multisample_enabled != val) { _multisample_enabled = val; if (val) { #ifdef GL_MULTISAMPLE_SGIS - glEnable(GL_MULTISAMPLE_SGIS); + GLP(Enable)(GL_MULTISAMPLE_SGIS); #endif - glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + GLP(Hint)(GL_POINT_SMOOTH_HINT, GL_NICEST); } else { #ifdef GL_MULTISAMPLE_SGIS - glDisable(GL_MULTISAMPLE_SGIS); + GLP(Disable)(GL_MULTISAMPLE_SGIS); #endif - glHint(GL_POINT_SMOOTH_HINT, GL_FASTEST); + GLP(Hint)(GL_POINT_SMOOTH_HINT, GL_FASTEST); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_line_smooth +// Function: CLP(GraphicsStateGuardian)::enable_line_smooth // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_line_smooth(bool val) { if (_line_smooth_enabled != val) { _line_smooth_enabled = val; if (val) { - glEnable(GL_LINE_SMOOTH); - glHint(GL_LINE_SMOOTH_HINT, GL_FASTEST); + GLP(Enable)(GL_LINE_SMOOTH); + GLP(Hint)(GL_LINE_SMOOTH_HINT, GL_FASTEST); } else { - glDisable(GL_LINE_SMOOTH); + GLP(Disable)(GL_LINE_SMOOTH); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_point_smooth +// Function: CLP(GraphicsStateGuardian)::enable_point_smooth // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_point_smooth(bool val) { if (_point_smooth_enabled != val) { _point_smooth_enabled = val; if (val) { - glEnable(GL_POINT_SMOOTH); - glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + GLP(Enable)(GL_POINT_SMOOTH); + GLP(Hint)(GL_POINT_SMOOTH_HINT, GL_NICEST); } else { - glDisable(GL_POINT_SMOOTH); - glHint(GL_POINT_SMOOTH_HINT, GL_FASTEST); + GLP(Disable)(GL_POINT_SMOOTH); + GLP(Hint)(GL_POINT_SMOOTH_HINT, GL_FASTEST); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_stencil_test +// Function: CLP(GraphicsStateGuardian)::enable_stencil_test // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_stencil_test(bool val) { if (_stencil_test_enabled != val) { _stencil_test_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_STENCIL_TEST)" << endl; #endif - glEnable(GL_STENCIL_TEST); + GLP(Enable)(GL_STENCIL_TEST); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_STENCIL_TEST)" << endl; #endif - glDisable(GL_STENCIL_TEST); + GLP(Disable)(GL_STENCIL_TEST); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_texturing +// Function: CLP(GraphicsStateGuardian)::enable_texturing // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_texturing(bool val) { if (_texturing_enabled != val) { _texturing_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_TEXTURE_2D)" << endl; #endif - glEnable(GL_TEXTURE_2D); + GLP(Enable)(GL_TEXTURE_2D); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_TEXTURE_2D)" << endl; #endif - glDisable(GL_TEXTURE_2D); + GLP(Disable)(GL_TEXTURE_2D); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_scissor +// Function: CLP(GraphicsStateGuardian)::enable_scissor // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_scissor(bool val) { if ( _scissor_enabled != val ) { _scissor_enabled = val; if ( val ) - glEnable( GL_SCISSOR_TEST ); + GLP(Enable)( GL_SCISSOR_TEST ); else - glDisable( GL_SCISSOR_TEST ); + GLP(Disable)( GL_SCISSOR_TEST ); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_multisample_alpha_one +// Function: CLP(GraphicsStateGuardian)::enable_multisample_alpha_one // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_multisample_alpha_one(bool val) { if (_multisample_alpha_one_enabled != val) { _multisample_alpha_one_enabled = val; #ifdef GL_SAMPLE_ALPHA_TO_ONE_SGIS if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_SAMPLE_ALPHA_TO_ONE_SGIS)" << endl; #endif - glEnable(GL_SAMPLE_ALPHA_TO_ONE_SGIS); + GLP(Enable)(GL_SAMPLE_ALPHA_TO_ONE_SGIS); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_SAMPLE_ALPHA_TO_ONE_SGIS)" << endl; #endif - glDisable(GL_SAMPLE_ALPHA_TO_ONE_SGIS); + GLP(Disable)(GL_SAMPLE_ALPHA_TO_ONE_SGIS); } #endif // GL_SAMPLE_ALPHA_TO_ONE_SGIS } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_multisample_alpha_mask +// Function: CLP(GraphicsStateGuardian)::enable_multisample_alpha_mask // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_multisample_alpha_mask(bool val) { if (_multisample_alpha_mask_enabled != val) { _multisample_alpha_mask_enabled = val; #ifdef GL_SAMPLE_ALPHA_TO_MASK_SGIS if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_SAMPLE_ALPHA_TO_MASK_SGIS)" << endl; #endif - glEnable(GL_SAMPLE_ALPHA_TO_MASK_SGIS); + GLP(Enable)(GL_SAMPLE_ALPHA_TO_MASK_SGIS); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_SAMPLE_ALPHA_TO_MASK_SGIS)" << endl; #endif - glDisable(GL_SAMPLE_ALPHA_TO_MASK_SGIS); + GLP(Disable)(GL_SAMPLE_ALPHA_TO_MASK_SGIS); } #endif // GL_SAMPLE_ALPHA_TO_MASK_SGIS } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_blend +// Function: CLP(GraphicsStateGuardian)::enable_blend // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_blend(bool val) { if (_blend_enabled != val) { _blend_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_BLEND)" << endl; #endif - glEnable(GL_BLEND); + GLP(Enable)(GL_BLEND); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_BLEND)" << endl; #endif - glDisable(GL_BLEND); + GLP(Disable)(GL_BLEND); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_depth_test +// Function: CLP(GraphicsStateGuardian)::enable_depth_test // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_depth_test(bool val) { if (_depth_test_enabled != val) { _depth_test_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_DEPTH_TEST)" << endl; #endif - glEnable(GL_DEPTH_TEST); + GLP(Enable)(GL_DEPTH_TEST); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_DEPTH_TEST)" << endl; #endif - glDisable(GL_DEPTH_TEST); + GLP(Disable)(GL_DEPTH_TEST); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_fog +// Function: CLP(GraphicsStateGuardian)::enable_fog // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_fog(bool val) { if (_fog_enabled != val) { _fog_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_FOG)" << endl; #endif - glEnable(GL_FOG); + GLP(Enable)(GL_FOG); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_FOG)" << endl; #endif - glDisable(GL_FOG); + GLP(Disable)(GL_FOG); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_alpha_test +// Function: CLP(GraphicsStateGuardian)::enable_alpha_test // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_alpha_test(bool val) { if (_alpha_test_enabled != val) { _alpha_test_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_ALPHA_TEST)" << endl; #endif - glEnable(GL_ALPHA_TEST); + GLP(Enable)(GL_ALPHA_TEST); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_ALPHA_TEST)" << endl; #endif - glDisable(GL_ALPHA_TEST); + GLP(Disable)(GL_ALPHA_TEST); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_polygon_offset +// Function: CLP(GraphicsStateGuardian)::enable_polygon_offset // Access: // Description: //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: enable_polygon_offset(bool val) { if (_polygon_offset_enabled != val) { _polygon_offset_enabled = val; if (val) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glEnable(GL_POLYGON_OFFSET_*)" << endl; #endif - glEnable(GL_POLYGON_OFFSET_FILL); + GLP(Enable)(GL_POLYGON_OFFSET_FILL); } else { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glDisable(GL_POLYGON_OFFSET_*)" << endl; #endif - glDisable(GL_POLYGON_OFFSET_FILL); + GLP(Disable)(GL_POLYGON_OFFSET_FILL); } } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_light_id +// Function: CLP(GraphicsStateGuardian)::get_light_id // Access: Public // Description: Convert index to gl light id //////////////////////////////////////////////////////////////////// -INLINE GLenum GLGraphicsStateGuardian::get_light_id(int index) const { +INLINE GLenum CLP(GraphicsStateGuardian)::get_light_id(int index) const { return GL_LIGHT0 + index; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_clip_plane_id +// Function: CLP(GraphicsStateGuardian)::get_clip_plane_id // Access: Public // Description: Convert index to gl clip plane id //////////////////////////////////////////////////////////////////// -INLINE GLenum GLGraphicsStateGuardian:: +INLINE GLenum CLP(GraphicsStateGuardian):: get_clip_plane_id(int index) const { return GL_CLIP_PLANE0 + index; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_scene_graph_color +// Function: CLP(GraphicsStateGuardian)::issue_scene_graph_color // Access: Public // Description: Checks whether the scene graph color needs to be // issued, and sends the appropriate glColor command if // it does. //////////////////////////////////////////////////////////////////// -INLINE void GLGraphicsStateGuardian:: +INLINE void CLP(GraphicsStateGuardian):: issue_scene_graph_color() { if (_scene_graph_color_stale) { issue_transformed_color(_scene_graph_color); diff --git a/panda/src/glgsg/glGraphicsStateGuardian.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx similarity index 86% rename from panda/src/glgsg/glGraphicsStateGuardian.cxx rename to panda/src/glstuff/glGraphicsStateGuardian_src.cxx index c2c26f432b..a5e494612f 100644 --- a/panda/src/glgsg/glGraphicsStateGuardian.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -1,4 +1,4 @@ -// Filename: glGraphicsStateGuardian.cxx +// Filename: glGraphicsStateGuardian_src.cxx // Created by: drose (02Feb99) // //////////////////////////////////////////////////////////////////// @@ -16,12 +16,6 @@ // //////////////////////////////////////////////////////////////////// -#include "glGraphicsStateGuardian.h" -#include "glSavedFrameBuffer.h" -#include "glTextureContext.h" -#include "glGeomNodeContext.h" -#include "config_glgsg.h" - #include "config_util.h" #include "displayRegion.h" #include "renderBuffer.h" @@ -35,7 +29,6 @@ #include "pointLight.h" #include "spotlight.h" #include "planeNode.h" -#include "GL/glu.h" #include "textureAttrib.h" #include "lightAttrib.h" #include "cullFaceAttrib.h" @@ -62,62 +55,54 @@ #include -#if 0 -#define glGenTextures glGenTexturesEXT -#define glPrioritizeTextures glPrioritizeTexturesEXT -#define glBindTexture glBindTextureEXT -#define glCopyTexImage2D glCopyTexImage2DEXT -#define glDeleteTextures glDeleteTexturesEXT -#endif - #if !defined(GL_BGR) && defined(GL_BGR_EXT) // These symbols are sometimes defined as _EXT variants. #define GL_BGR GL_BGR_EXT #define GL_BGRA GL_BGRA_EXT #endif -TypeHandle GLGraphicsStateGuardian::_type_handle; +TypeHandle CLP(GraphicsStateGuardian)::_type_handle; #if !defined(CPPPARSER) && defined(DO_PSTATS) -PStatCollector GLGraphicsStateGuardian::_vertices_display_list_pcollector("Vertices:Display lists"); +PStatCollector CLP(GraphicsStateGuardian)::_vertices_display_list_pcollector("Vertices:Display lists"); #endif static void issue_vertex_gl(const Geom *geom, Geom::VertexIterator &viterator, GraphicsStateGuardianBase *) { const Vertexf &vertex = geom->get_next_vertex(viterator); - // glgsg_cat.spam() << "Issuing vertex " << vertex << "\n"; - glVertex3fv(vertex.get_data()); + // GLCAT.spam() << "Issuing vertex " << vertex << "\n"; + GLP(Vertex3fv)(vertex.get_data()); } static void issue_normal_gl(const Geom *geom, Geom::NormalIterator &niterator, GraphicsStateGuardianBase *) { const Normalf &normal = geom->get_next_normal(niterator); - // glgsg_cat.spam() << "Issuing normal " << normal << "\n"; - glNormal3fv(normal.get_data()); + // GLCAT.spam() << "Issuing normal " << normal << "\n"; + GLP(Normal3fv)(normal.get_data()); } static void issue_texcoord_gl(const Geom *geom, Geom::TexCoordIterator &tciterator, GraphicsStateGuardianBase *) { const TexCoordf &texcoord = geom->get_next_texcoord(tciterator); - // glgsg_cat.spam() << "Issuing texcoord " << texcoord << "\n"; - glTexCoord2fv(texcoord.get_data()); + // GLCAT.spam() << "Issuing texcoord " << texcoord << "\n"; + GLP(TexCoord2fv)(texcoord.get_data()); } static void issue_color_gl(const Geom *geom, Geom::ColorIterator &citerator, GraphicsStateGuardianBase *) { const Colorf &color = geom->get_next_color(citerator); - // glgsg_cat.spam() << "Issuing color " << color << "\n"; - glColor4fv(color.get_data()); + // GLCAT.spam() << "Issuing color " << color << "\n"; + GLP(Color4fv)(color.get_data()); } static void issue_transformed_color_gl(const Geom *geom, Geom::ColorIterator &citerator, GraphicsStateGuardianBase *gsg) { - const GLGraphicsStateGuardian *glgsg = DCAST(GLGraphicsStateGuardian, gsg); + const CLP(GraphicsStateGuardian) *glgsg = DCAST(CLP(GraphicsStateGuardian), gsg); const Colorf &color = geom->get_next_color(citerator); glgsg->issue_transformed_color(color); } @@ -250,33 +235,33 @@ fix_component_ordering(GLenum external_format, PixelBuffer *pb) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::Constructor +// Function: CLP(GraphicsStateGuardian)::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -GLGraphicsStateGuardian:: -GLGraphicsStateGuardian(const FrameBufferProperties &properties) : +CLP(GraphicsStateGuardian):: +CLP(GraphicsStateGuardian)(const FrameBufferProperties &properties) : GraphicsStateGuardian(properties) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::Destructor +// Function: CLP(GraphicsStateGuardian)::Destructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -GLGraphicsStateGuardian:: -~GLGraphicsStateGuardian() { +CLP(GraphicsStateGuardian):: +~CLP(GraphicsStateGuardian)() { close_gsg(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::reset +// Function: CLP(GraphicsStateGuardian)::reset // Access: Public, Virtual // Description: Resets all internal state as if the gsg were newly // created. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: reset() { free_pointers(); GraphicsStateGuardian::reset(); @@ -295,7 +280,7 @@ reset() { // and disallowing writes to T_back, we need to set T_front on // operations that might have had T_back set otherwise. GLboolean has_back; - glGetBooleanv(GL_DOUBLEBUFFER, &has_back); + GLP(GetBooleanv)(GL_DOUBLEBUFFER, &has_back); if (!has_back) { _buffer_mask &= ~RenderBuffer::T_back; } @@ -307,13 +292,13 @@ reset() { // Check to see if we have stereo (and therefore a right buffer). GLboolean has_stereo; - glGetBooleanv(GL_STEREO, &has_stereo); + GLP(GetBooleanv)(GL_STEREO, &has_stereo); if (!has_stereo) { _buffer_mask &= ~RenderBuffer::T_right; } #endif - // Set up our clear values to invalid values, so the glClear* calls + // Set up our clear values to invalid values, so the GLP(Clear)* calls // will be made initially. _clear_color_red = -1.0f; _clear_color_green = -1.0f; @@ -330,7 +315,7 @@ reset() { _draw_buffer_mode = (has_back) ? GL_BACK : GL_FRONT; _read_buffer_mode = (has_back) ? GL_BACK : GL_FRONT; _shade_model_mode = GL_SMOOTH; - glFrontFace(GL_CCW); + GLP(FrontFace)(GL_CCW); _scissor_x = 0; _scissor_y = 0; @@ -375,7 +360,7 @@ reset() { _decal_level = 0; // Dither is on by default in GL; let's turn it off - glDisable(GL_DITHER); + GLP(Disable)(GL_DITHER); _dithering_enabled = false; // Antialiasing. @@ -383,18 +368,18 @@ reset() { enable_multisample(true); // Should we normalize lighting normals? - if (gl_auto_normalize_lighting) { - glEnable(GL_NORMALIZE); + if (CLP(auto_normalize_lighting)) { + GLP(Enable)(GL_NORMALIZE); } // Count the max number of lights GLint max_lights; - glGetIntegerv(GL_MAX_LIGHTS, &max_lights); + GLP(GetIntegerv)(GL_MAX_LIGHTS, &max_lights); _max_lights = max_lights; // Count the max number of clipping planes GLint max_clip_planes; - glGetIntegerv(GL_MAX_CLIP_PLANES, &max_clip_planes); + GLP(GetIntegerv)(GL_MAX_CLIP_PLANES, &max_clip_planes); _max_clip_planes = max_clip_planes; _current_projection_mat = LMatrix4f::ident_mat(); @@ -415,34 +400,34 @@ reset() { Material empty; apply_material(&empty); - if (gl_cheap_textures) { - glgsg_cat.info() - << "Setting glHint() for fastest textures.\n"; - glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); + if (CLP(cheap_textures)) { + GLCAT.info() + << "Setting GLP(Hint)() for fastest textures.\n"; + GLP(Hint)(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); } // use per-vertex fog if per-pixel fog requires SW renderer - glHint(GL_FOG_HINT,GL_DONT_CARE); + GLP(Hint)(GL_FOG_HINT,GL_DONT_CARE); GLint iRedBits; - glGetIntegerv(GL_RED_BITS,&iRedBits); + GLP(GetIntegerv)(GL_RED_BITS,&iRedBits); if(iRedBits<24) { - glEnable(GL_DITHER); + GLP(Enable)(GL_DITHER); _dithering_enabled = true; - if(glgsg_cat.is_debug()) - glgsg_cat.debug() << "frame buffer depth < 8bits channel, enabling dithering\n"; + if(GLCAT.is_debug()) + GLCAT.debug() << "frame buffer depth < 8bits channel, enabling dithering\n"; } report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::clear +// Function: CLP(GraphicsStateGuardian)::clear // Access: Public, Virtual // Description: Clears all of the indicated buffers to their assigned // colors. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: do_clear(const RenderBuffer &buffer) { // DO_PSTATS_STUFF(PStatTimer timer(_win->_clear_pcollector);) nassertv(buffer._gsg == this); @@ -486,38 +471,38 @@ do_clear(const RenderBuffer &buffer) { } #ifdef GSG_VERBOSE - glgsg_cat.spam() << "glClear("; + GLCAT.spam() << "glClear("; if (mask & GL_COLOR_BUFFER_BIT) { - glgsg_cat.spam(false) << "GL_COLOR_BUFFER_BIT|"; + GLCAT.spam(false) << "GL_COLOR_BUFFER_BIT|"; } if (mask & GL_DEPTH_BUFFER_BIT) { - glgsg_cat.spam(false) << "GL_DEPTH_BUFFER_BIT|"; + GLCAT.spam(false) << "GL_DEPTH_BUFFER_BIT|"; } if (mask & GL_STENCIL_BUFFER_BIT) { - glgsg_cat.spam(false) << "GL_STENCIL_BUFFER_BIT|"; + GLCAT.spam(false) << "GL_STENCIL_BUFFER_BIT|"; } if (mask & GL_ACCUM_BUFFER_BIT) { - glgsg_cat.spam(false) << "GL_ACCUM_BUFFER_BIT|"; + GLCAT.spam(false) << "GL_ACCUM_BUFFER_BIT|"; } - glgsg_cat.spam(false) << ")" << endl; + GLCAT.spam(false) << ")" << endl; #endif modify_state(state); - glClear(mask); + GLP(Clear)(mask); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::prepare_display_region +// Function: CLP(GraphicsStateGuardian)::prepare_display_region // Access: Public, Virtual // Description: Prepare a display region for rendering (set up // scissor region and viewport) //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: prepare_display_region() { if (_current_display_region == (DisplayRegion*)0L) { - glgsg_cat.error() + GLCAT.error() << "Invalid NULL display region in prepare_display_region()\n"; enable_scissor(false); @@ -539,7 +524,7 @@ prepare_display_region() { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::prepare_lens +// Function: CLP(GraphicsStateGuardian)::prepare_lens // Access: Public, Virtual // Description: Makes the current lens (whichever lens was most // recently specified with push_lens()) active, so that @@ -551,7 +536,7 @@ prepare_display_region() { // The return value is true if the lens is acceptable, // false if it is not. //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: prepare_lens() { if (_current_lens == (Lens *)NULL) { return false; @@ -575,11 +560,11 @@ prepare_lens() { projection_mat; #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glMatrixMode(GL_PROJECTION): " << new_projection_mat << endl; #endif - glMatrixMode(GL_PROJECTION); - glLoadMatrixf(new_projection_mat.get_data()); + GLP(MatrixMode)(GL_PROJECTION); + GLP(LoadMatrixf)(new_projection_mat.get_data()); report_gl_errors(); return true; @@ -598,7 +583,7 @@ prepare_lens() { // case nothing will be drawn and end_frame() will not // be called). //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: begin_frame() { if (!GraphicsStateGuardian::begin_frame()) { return false; @@ -609,27 +594,27 @@ begin_frame() { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::end_frame +// Function: CLP(GraphicsStateGuardian)::end_frame // Access: Public, Virtual // Description: Called after each frame is rendered, to allow the // GSG a chance to do any internal cleanup after // rendering the frame, and before the window flips. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: end_frame() { GraphicsStateGuardian::end_frame(); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_point +// Function: CLP(GraphicsStateGuardian)::draw_point // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_point(GeomPoint *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_point()" << endl; + GLCAT.spam() << "draw_point()" << endl; #endif #ifdef DO_PSTATS PStatTimer timer(_draw_primitive_pcollector); @@ -663,7 +648,7 @@ draw_point(GeomPoint *geom, GeomContext *) { issuer.issue_color(G_OVERALL, ci); issuer.issue_normal(G_OVERALL, ni); - glBegin(GL_POINTS); + GLP(Begin)(GL_POINTS); for (int i = 0; i < nprims; i++) { // Draw per primitive @@ -677,19 +662,19 @@ draw_point(GeomPoint *geom, GeomContext *) { issuer.issue_vertex(G_PER_VERTEX, vi); } - glEnd(); + GLP(End)(); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_line +// Function: CLP(GraphicsStateGuardian)::draw_line // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_line(GeomLine *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_line()" << endl; + GLCAT.spam() << "draw_line()" << endl; #endif #ifdef DO_PSTATS PStatTimer timer(_draw_primitive_pcollector); @@ -732,7 +717,7 @@ draw_line(GeomLine *geom, GeomContext *) { issuer.issue_color(G_OVERALL, ci); issuer.issue_normal(G_OVERALL, ni); - glBegin(GL_LINES); + GLP(Begin)(GL_LINES); for (int i = 0; i < nprims; i++) { // Draw per primitive @@ -748,19 +733,19 @@ draw_line(GeomLine *geom, GeomContext *) { } } - glEnd(); + GLP(End)(); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_linestrip +// Function: CLP(GraphicsStateGuardian)::draw_linestrip // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_linestrip(GeomLinestrip *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_linestrip()" << endl; + GLCAT.spam() << "draw_linestrip()" << endl; #endif #ifdef DO_PSTATS @@ -815,7 +800,7 @@ draw_linestrip(GeomLinestrip *geom, GeomContext *) { int num_verts = *(plen++); nassertv(num_verts >= 2); - glBegin(GL_LINE_STRIP); + GLP(Begin)(GL_LINE_STRIP); // Per-component attributes for the first line segment? issuer.issue_color(G_PER_COMPONENT, ci); @@ -843,14 +828,14 @@ draw_linestrip(GeomLinestrip *geom, GeomContext *) { issuer.issue_texcoord(G_PER_VERTEX, ti); issuer.issue_vertex(G_PER_VERTEX, vi); } - glEnd(); + GLP(End)(); } report_gl_errors(); DO_PSTATS_STUFF(_draw_primitive_pcollector.stop()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_sprite +// Function: CLP(GraphicsStateGuardian)::draw_sprite // Access: Public, Virtual // Description: CSN, 7/11/00 //////////////////////////////////////////////////////////////////// @@ -875,7 +860,7 @@ struct draw_sprite_vertex_less { return v0._v[2] < v1._v[2]; } }; -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_sprite(GeomSprite *geom, GeomContext *) { // this is a little bit of a mess, but it's ok. Here's the deal: // we want to draw, and draw quickly, an arbitrarily large number @@ -890,7 +875,7 @@ draw_sprite(GeomSprite *geom, GeomContext *) { // by hand and apply the inverse frustum to the transformed point. // For some cracked out reason, this actually works. #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_sprite()" << endl; + GLCAT.spam() << "draw_sprite()" << endl; #endif // get the array traversal set up. @@ -931,8 +916,8 @@ draw_sprite(GeomSprite *geom, GeomContext *) { // ratio built in. // load up our own matrices - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(LoadIdentity)(); // precomputation stuff float tex_left = geom->get_ll_uv()[0]; @@ -1046,13 +1031,13 @@ draw_sprite(GeomSprite *geom, GeomContext *) { draw_sprite_vertex_less()); if (_dithering_enabled) - glDisable(GL_DITHER); + GLP(Disable)(GL_DITHER); } Vertexf ul, ur, ll, lr; if (color_overall) - glColor4fv(geom->get_next_color(ci).get_data()); + GLP(Color4fv)(geom->get_next_color(ci).get_data()); //////////////////////////////////////////////////////////////////////////// // INNER LOOP PART 2 STARTS HERE @@ -1100,23 +1085,23 @@ draw_sprite(GeomSprite *geom, GeomContext *) { // set the color if (color_overall == false) - glColor4fv(cur_image._c.get_data()); + GLP(Color4fv)(cur_image._c.get_data()); // draw each one as a 2-element tri-strip - glBegin(GL_TRIANGLE_STRIP); - glNormal3f(0.0f, 0.0f, 1.0f); - glTexCoord2f(tex_left, tex_bottom); glVertex3fv(ll.get_data()); - glTexCoord2f(tex_right, tex_bottom); glVertex3fv(lr.get_data()); - glTexCoord2f(tex_left, tex_top); glVertex3fv(ul.get_data()); - glTexCoord2f(tex_right, tex_top); glVertex3fv(ur.get_data()); - glEnd(); + GLP(Begin)(GL_TRIANGLE_STRIP); + GLP(Normal3f)(0.0f, 0.0f, 1.0f); + GLP(TexCoord2f)(tex_left, tex_bottom); GLP(Vertex3fv)(ll.get_data()); + GLP(TexCoord2f)(tex_right, tex_bottom); GLP(Vertex3fv)(lr.get_data()); + GLP(TexCoord2f)(tex_left, tex_top); GLP(Vertex3fv)(ul.get_data()); + GLP(TexCoord2f)(tex_right, tex_top); GLP(Vertex3fv)(ur.get_data()); + GLP(End)(); } // restore the matrices - glLoadMatrixf(modelview_mat.get_data()); + GLP(LoadMatrixf)(modelview_mat.get_data()); if(alpha && _dithering_enabled) - glEnable(GL_DITHER); + GLP(Enable)(GL_DITHER); report_gl_errors(); DO_PSTATS_STUFF(_draw_primitive_pcollector.stop()); @@ -1124,14 +1109,14 @@ draw_sprite(GeomSprite *geom, GeomContext *) { //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_polygon +// Function: CLP(GraphicsStateGuardian)::draw_polygon // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_polygon(GeomPolygon *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_polygon()" << endl; + GLCAT.spam() << "draw_polygon()" << endl; #endif #ifdef DO_PSTATS @@ -1185,7 +1170,7 @@ draw_polygon(GeomPolygon *geom, GeomContext *) { int num_verts = *(plen++); nassertv(num_verts >= 3); - glBegin(GL_POLYGON); + GLP(Begin)(GL_POLYGON); // Draw the vertices. int v; @@ -1196,21 +1181,21 @@ draw_polygon(GeomPolygon *geom, GeomContext *) { issuer.issue_texcoord(G_PER_VERTEX, ti); issuer.issue_vertex(G_PER_VERTEX, vi); } - glEnd(); + GLP(End)(); } report_gl_errors(); DO_PSTATS_STUFF(_draw_primitive_pcollector.stop()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_tri +// Function: CLP(GraphicsStateGuardian)::draw_tri // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_tri(GeomTri *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_tri()" << endl; + GLCAT.spam() << "draw_tri()" << endl; #endif #ifdef DO_PSTATS @@ -1255,7 +1240,7 @@ draw_tri(GeomTri *geom, GeomContext *) { issuer.issue_color(G_OVERALL, ci); issuer.issue_normal(G_OVERALL, ni); - glBegin(GL_TRIANGLES); + GLP(Begin)(GL_TRIANGLES); for (int i = 0; i < nprims; i++) { // Draw per primitive @@ -1271,7 +1256,7 @@ draw_tri(GeomTri *geom, GeomContext *) { } } - glEnd(); + GLP(End)(); report_gl_errors(); #ifdef DO_PSTATS _draw_primitive_pcollector.stop(); @@ -1279,14 +1264,14 @@ draw_tri(GeomTri *geom, GeomContext *) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_quad +// Function: CLP(GraphicsStateGuardian)::draw_quad // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_quad(GeomQuad *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_quad()" << endl; + GLCAT.spam() << "draw_quad()" << endl; #endif #ifdef DO_PSTATS @@ -1331,7 +1316,7 @@ draw_quad(GeomQuad *geom, GeomContext *) { issuer.issue_color(G_OVERALL, ci); issuer.issue_normal(G_OVERALL, ni); - glBegin(GL_QUADS); + GLP(Begin)(GL_QUADS); for (int i = 0; i < nprims; i++) { // Draw per primitive @@ -1347,20 +1332,20 @@ draw_quad(GeomQuad *geom, GeomContext *) { } } - glEnd(); + GLP(End)(); report_gl_errors(); DO_PSTATS_STUFF(_draw_primitive_pcollector.stop()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_tristrip +// Function: CLP(GraphicsStateGuardian)::draw_tristrip // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_tristrip(GeomTristrip *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_tristrip()" << endl; + GLCAT.spam() << "draw_tristrip()" << endl; #endif #ifdef DO_PSTATS @@ -1414,7 +1399,7 @@ draw_tristrip(GeomTristrip *geom, GeomContext *) { int num_verts = *(plen++); nassertv(num_verts >= 3); - glBegin(GL_TRIANGLE_STRIP); + GLP(Begin)(GL_TRIANGLE_STRIP); // Per-component attributes for the first triangle? issuer.issue_color(G_PER_COMPONENT, ci); @@ -1442,21 +1427,21 @@ draw_tristrip(GeomTristrip *geom, GeomContext *) { issuer.issue_texcoord(G_PER_VERTEX, ti); issuer.issue_vertex(G_PER_VERTEX, vi); } - glEnd(); + GLP(End)(); } report_gl_errors(); DO_PSTATS_STUFF(_draw_primitive_pcollector.stop()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_trifan +// Function: CLP(GraphicsStateGuardian)::draw_trifan // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_trifan(GeomTrifan *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_trifan()" << endl; + GLCAT.spam() << "draw_trifan()" << endl; #endif #ifdef DO_PSTATS @@ -1510,7 +1495,7 @@ draw_trifan(GeomTrifan *geom, GeomContext *) { int num_verts = *(plen++); nassertv(num_verts >= 3); - glBegin(GL_TRIANGLE_FAN); + GLP(Begin)(GL_TRIANGLE_FAN); // Per-component attributes for the first triangle? issuer.issue_color(G_PER_COMPONENT, ci); @@ -1538,7 +1523,7 @@ draw_trifan(GeomTrifan *geom, GeomContext *) { issuer.issue_texcoord(G_PER_VERTEX, ti); issuer.issue_vertex(G_PER_VERTEX, vi); } - glEnd(); + GLP(End)(); } report_gl_errors(); DO_PSTATS_STUFF(_draw_primitive_pcollector.stop()); @@ -1546,14 +1531,14 @@ draw_trifan(GeomTrifan *geom, GeomContext *) { //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_sphere +// Function: CLP(GraphicsStateGuardian)::draw_sphere // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_sphere(GeomSphere *geom, GeomContext *) { #ifdef GSG_VERBOSE - glgsg_cat.spam() << "draw_sphere()" << endl; + GLCAT.spam() << "draw_sphere()" << endl; #endif #ifdef DO_PSTATS @@ -1615,15 +1600,15 @@ draw_sphere(GeomSphere *geom, GeomContext *) { // Since gluSphere doesn't have a center parameter, we have to use // a matrix transform. - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glMultMatrixf(LMatrix4f::translate_mat(center).get_data()); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(PushMatrix)(); + GLP(MultMatrixf)(LMatrix4f::translate_mat(center).get_data()); // Now render the sphere using GLU calls. gluSphere(sph, r, 16, 10); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(PopMatrix)(); } gluDeleteQuadric(sph); @@ -1632,7 +1617,7 @@ draw_sphere(GeomSphere *geom, GeomContext *) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::prepare_texture +// Function: CLP(GraphicsStateGuardian)::prepare_texture // Access: Public, Virtual // Description: Creates a new retained-mode representation of the // given texture, and returns a newly-allocated @@ -1641,13 +1626,13 @@ draw_sphere(GeomSphere *geom, GeomContext *) { // call release_texture() with this same pointer (which // will also delete the pointer). //////////////////////////////////////////////////////////////////// -TextureContext *GLGraphicsStateGuardian:: +TextureContext *CLP(GraphicsStateGuardian):: prepare_texture(Texture *tex) { - GLTextureContext *gtc = new GLTextureContext(tex); - glGenTextures(1, >c->_index); + CLP(TextureContext) *gtc = new CLP(TextureContext)(tex); + GLP(GenTextures)(1, >c->_index); bind_texture(gtc); - glPrioritizeTextures(1, >c->_index, >c->_priority); + GLP(PrioritizeTextures)(1, >c->_index, >c->_priority); specify_texture(tex); apply_texture_immediate(tex); @@ -1663,12 +1648,12 @@ prepare_texture(Texture *tex) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::apply_texture +// Function: CLP(GraphicsStateGuardian)::apply_texture // Access: Public, Virtual // Description: Makes the texture the currently available texture for // rendering. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: apply_texture(TextureContext *tc) { add_to_texture_record(tc); bind_texture(tc); @@ -1689,20 +1674,20 @@ apply_texture(TextureContext *tc) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::release_texture +// Function: CLP(GraphicsStateGuardian)::release_texture // Access: Public, Virtual // Description: Frees the GL resources previously allocated for the // texture. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: release_texture(TextureContext *tc) { - GLTextureContext *gtc = DCAST(GLTextureContext, tc); + CLP(TextureContext) *gtc = DCAST(CLP(TextureContext), tc); Texture *tex = tc->_texture; if (!_closing_gsg) { // Don't bother to delete the GL texture if we're about to destroy // the context anyway. - glDeleteTextures(1, >c->_index); + GLP(DeleteTextures)(1, >c->_index); } gtc->_index = 0; @@ -1721,7 +1706,7 @@ release_texture(TextureContext *tc) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::prepare_geom_node +// Function: CLP(GraphicsStateGuardian)::prepare_geom_node // Access: Public, Virtual // Description: Prepares the indicated GeomNode for retained-mode // rendering. If this function returns non-NULL, the @@ -1729,7 +1714,7 @@ release_texture(TextureContext *tc) { // to draw_geom_node(), which is expected to draw the // contents of the node. //////////////////////////////////////////////////////////////////// -GeomNodeContext *GLGraphicsStateGuardian:: +GeomNodeContext *CLP(GraphicsStateGuardian):: prepare_geom_node(GeomNode *node) { #if 0 // temporarily disabled until we bring to new scene graph @@ -1749,10 +1734,10 @@ prepare_geom_node(GeomNode *node) { } // Ok, we've got something; use it. - GLGeomNodeContext *ggnc = new GLGeomNodeContext(node); - ggnc->_index = glGenLists(1); + CLP(GeomNodeContext) *ggnc = new CLP(GeomNodeContext)(node); + ggnc->_index = GLP(GenLists)(1); if (ggnc->_index == 0) { - glgsg_cat.error() + GLCAT.error() << "Ran out of display list indices.\n"; delete ggnc; return (GeomNodeContext *)NULL; @@ -1779,7 +1764,7 @@ prepare_geom_node(GeomNode *node) { #endif // Now define the display list. - glNewList(ggnc->_index, GL_COMPILE); + GLP(NewList)(ggnc->_index, GL_COMPILE); for (i = 0; i < num_geoms; i++) { dDrawable *geom = node->get_geom(i); if (geom->is_dynamic()) { @@ -1792,7 +1777,7 @@ prepare_geom_node(GeomNode *node) { geom->draw(this); } } - glEndList(); + GLP(EndList)(); #ifdef DO_PSTATS float num_verts_after = @@ -1821,12 +1806,12 @@ prepare_geom_node(GeomNode *node) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_geom_node +// Function: CLP(GraphicsStateGuardian)::draw_geom_node // Access: Public, Virtual // Description: Draws a GeomNode previously indicated by a call to // prepare_geom_node(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_geom_node(GeomNode *node, const RenderState *state, GeomNodeContext *gnc) { #if 0 // temporarily disabled until we bring to new scene graph @@ -1841,8 +1826,8 @@ draw_geom_node(GeomNode *node, const RenderState *state, } else { // We do have a saved context; use it. add_to_geom_node_record(gnc); - GLGeomNodeContext *ggnc = DCAST(GLGeomNodeContext, gnc); - glCallList(ggnc->_index); + CLP(GeomNodeContext) *ggnc = DCAST(CLP(GeomNodeContext), gnc); + GLP(CallList)(ggnc->_index); #ifdef DO_PSTATS PStatTimer timer(_draw_primitive_pcollector); @@ -1859,18 +1844,18 @@ draw_geom_node(GeomNode *node, const RenderState *state, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::release_geom_node +// Function: CLP(GraphicsStateGuardian)::release_geom_node // Access: Public, Virtual // Description: Frees the resources previously allocated via a call // to prepare_geom_node(), including deleting the // GeomNodeContext itself, if necessary. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: release_geom_node(GeomNodeContext *gnc) { #if 0 // temporarily disabled until we bring to new scene graph if (gnc != (GeomNodeContext *)NULL) { - GLGeomNodeContext *ggnc = DCAST(GLGeomNodeContext, gnc); - glDeleteLists(ggnc->_index, 1); + CLP(GeomNodeContext) *ggnc = DCAST(CLP(GeomNodeContext), gnc); + GLP(DeleteLists)(ggnc->_index, 1); bool erased = unmark_prepared_geom_node(ggnc); @@ -1900,12 +1885,12 @@ static int binary_log_cap(const int x) { #endif //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::copy_texture +// Function: CLP(GraphicsStateGuardian)::copy_texture // Access: Public, Virtual // Description: Copy the pixel region indicated by the display // region from the framebuffer into texture memory //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: copy_texture(TextureContext *tc, const DisplayRegion *dr) { nassertv(tc != NULL && dr != NULL); Texture *tex = tc->_texture; @@ -1938,7 +1923,7 @@ copy_texture(TextureContext *tc, const DisplayRegion *dr) { bind_texture(tc); - glCopyTexImage2D(GL_TEXTURE_2D, 0, + GLP(CopyTexImage2D)(GL_TEXTURE_2D, 0, get_internal_image_format(pb->get_format()), xo, yo, w, h, pb->get_border()); @@ -1947,22 +1932,22 @@ copy_texture(TextureContext *tc, const DisplayRegion *dr) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::copy_texture +// Function: CLP(GraphicsStateGuardian)::copy_texture // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: copy_texture(TextureContext *tc, const DisplayRegion *dr, const RenderBuffer &rb) { set_read_buffer(rb); copy_texture(tc, dr); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::texture_to_pixel_buffer +// Function: CLP(GraphicsStateGuardian)::texture_to_pixel_buffer // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: texture_to_pixel_buffer(TextureContext *tc, PixelBuffer *pb) { // This code is now invalidated by the new design; perhaps the // interface is not needed anyway. @@ -1987,11 +1972,11 @@ texture_to_pixel_buffer(TextureContext *tc, PixelBuffer *pb) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::texture_to_pixel_buffer +// Function: CLP(GraphicsStateGuardian)::texture_to_pixel_buffer // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: texture_to_pixel_buffer(TextureContext *tc, PixelBuffer *pb, const DisplayRegion *dr) { nassertv(tc != NULL && pb != NULL && dr != NULL); @@ -2013,17 +1998,17 @@ texture_to_pixel_buffer(TextureContext *tc, PixelBuffer *pb, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::copy_pixel_buffer +// Function: CLP(GraphicsStateGuardian)::copy_pixel_buffer // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: copy_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { nassertr(pb != NULL && dr != NULL, false); set_pack_alignment(1); // Bug fix for RE, RE2, and VTX - need to disable texturing in order - // for glReadPixels() to work + // for GLP(ReadPixels)() to work // NOTE: reading the depth buffer is *much* slower than reading the // color buffer modify_state(get_untextured_state()); @@ -2034,51 +2019,51 @@ copy_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { GLenum external_format = get_external_image_format(pb->get_format()); #ifdef GSG_VERBOSE - glgsg_cat.debug() + GLCAT.debug() << "glReadPixels(" << pb->get_xorg() << ", " << pb->get_yorg() << ", " << pb->get_xsize() << ", " << pb->get_ysize() << ", "; switch (external_format) { case GL_DEPTH_COMPONENT: - glgsg_cat.debug(false) << "GL_DEPTH_COMPONENT, "; + GLCAT.debug(false) << "GL_DEPTH_COMPONENT, "; break; case GL_RGB: - glgsg_cat.debug(false) << "GL_RGB, "; + GLCAT.debug(false) << "GL_RGB, "; break; case GL_RGBA: - glgsg_cat.debug(false) << "GL_RGBA, "; + GLCAT.debug(false) << "GL_RGBA, "; break; #ifdef GL_BGR case GL_BGR: - glgsg_cat.debug(false) << "GL_BGR, "; + GLCAT.debug(false) << "GL_BGR, "; break; case GL_BGRA: - glgsg_cat.debug(false) << "GL_BGRA, "; + GLCAT.debug(false) << "GL_BGRA, "; break; #endif // GL_BGR default: - glgsg_cat.debug(false) << "unknown, "; + GLCAT.debug(false) << "unknown, "; break; } switch (get_image_type(pb->get_image_type())) { case GL_UNSIGNED_BYTE: - glgsg_cat.debug(false) << "GL_UNSIGNED_BYTE, "; + GLCAT.debug(false) << "GL_UNSIGNED_BYTE, "; break; case GL_FLOAT: - glgsg_cat.debug(false) << "GL_FLOAT, "; + GLCAT.debug(false) << "GL_FLOAT, "; break; default: - glgsg_cat.debug(false) << "unknown, "; + GLCAT.debug(false) << "unknown, "; break; } - glgsg_cat.debug(false) + GLCAT.debug(false) << (void *)pb->_image.p() << ")" << endl; #endif // pixelbuffer "origin" represents upper left screen point at which // pixelbuffer should be drawn using draw_pixel_buffer nassertr(!pb->_image.empty(), false); - glReadPixels(pb->get_xorg() + xo, pb->get_yorg() + yo, + GLP(ReadPixels)(pb->get_xorg() + xo, pb->get_yorg() + yo, pb->get_xsize(), pb->get_ysize(), external_format, get_image_type(pb->get_image_type()), @@ -2093,11 +2078,11 @@ copy_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::copy_pixel_buffer +// Function: CLP(GraphicsStateGuardian)::copy_pixel_buffer // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: copy_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr, const RenderBuffer &rb) { set_read_buffer(rb); @@ -2105,43 +2090,43 @@ copy_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::apply_material +// Function: CLP(GraphicsStateGuardian)::apply_material // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian::apply_material(const Material *material) { +void CLP(GraphicsStateGuardian)::apply_material(const Material *material) { GLenum face = material->get_twoside() ? GL_FRONT_AND_BACK : GL_FRONT; - glMaterialfv(face, GL_SPECULAR, material->get_specular().get_data()); - glMaterialfv(face, GL_EMISSION, material->get_emission().get_data()); - glMaterialf(face, GL_SHININESS, material->get_shininess()); + GLP(Materialfv)(face, GL_SPECULAR, material->get_specular().get_data()); + GLP(Materialfv)(face, GL_EMISSION, material->get_emission().get_data()); + GLP(Materialf)(face, GL_SHININESS, material->get_shininess()); if (material->has_ambient() && material->has_diffuse()) { // The material has both an ambient and diffuse specified. This // means we do not need glMaterialColor(). - glDisable(GL_COLOR_MATERIAL); - glMaterialfv(face, GL_AMBIENT, material->get_ambient().get_data()); - glMaterialfv(face, GL_DIFFUSE, material->get_diffuse().get_data()); + GLP(Disable)(GL_COLOR_MATERIAL); + GLP(Materialfv)(face, GL_AMBIENT, material->get_ambient().get_data()); + GLP(Materialfv)(face, GL_DIFFUSE, material->get_diffuse().get_data()); } else if (material->has_ambient()) { // The material specifies an ambient, but not a diffuse component. // The diffuse component comes from the object's color. - glMaterialfv(face, GL_AMBIENT, material->get_ambient().get_data()); - glColorMaterial(face, GL_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); + GLP(Materialfv)(face, GL_AMBIENT, material->get_ambient().get_data()); + GLP(ColorMaterial)(face, GL_DIFFUSE); + GLP(Enable)(GL_COLOR_MATERIAL); } else if (material->has_diffuse()) { // The material specifies a diffuse, but not an ambient component. // The ambient component comes from the object's color. - glMaterialfv(face, GL_DIFFUSE, material->get_diffuse().get_data()); - glColorMaterial(face, GL_AMBIENT); - glEnable(GL_COLOR_MATERIAL); + GLP(Materialfv)(face, GL_DIFFUSE, material->get_diffuse().get_data()); + GLP(ColorMaterial)(face, GL_AMBIENT); + GLP(Enable)(GL_COLOR_MATERIAL); } else { // The material specifies neither a diffuse nor an ambient // component. Both components come from the object's color. - glColorMaterial(face, GL_AMBIENT_AND_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); + GLP(ColorMaterial)(face, GL_AMBIENT_AND_DIFFUSE); + GLP(Enable)(GL_COLOR_MATERIAL); } call_glLightModelLocal(material->get_local()); @@ -2150,11 +2135,11 @@ void GLGraphicsStateGuardian::apply_material(const Material *material) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::apply_fog +// Function: CLP(GraphicsStateGuardian)::apply_fog // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: apply_fog(Fog *fog) { Fog::Mode fmode = fog->get_mode(); call_glFogMode(get_fog_mode_type(fmode)); @@ -2175,42 +2160,42 @@ apply_fog(Fog *fog) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_transform +// Function: CLP(GraphicsStateGuardian)::issue_transform // Access: Public, Virtual // Description: Sends the indicated transform matrix to the graphics // API to be applied to future vertices. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_transform(const TransformState *transform) { #ifdef GSG_VERBOSE - glgsg_cat.spam() + GLCAT.spam() << "glLoadMatrix(GL_MODELVIEW): " << transform->get_mat() << endl; #endif DO_PSTATS_STUFF(_transform_state_pcollector.add_level(1)); - glMatrixMode(GL_MODELVIEW); - glLoadMatrixf(transform->get_mat().get_data()); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(LoadMatrixf)(transform->get_mat().get_data()); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_tex_matrix +// Function: CLP(GraphicsStateGuardian)::issue_tex_matrix // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_tex_matrix(const TexMatrixAttrib *attrib) { - glMatrixMode(GL_TEXTURE); - glLoadMatrixf(attrib->get_mat().get_data()); + GLP(MatrixMode)(GL_TEXTURE); + GLP(LoadMatrixf)(attrib->get_mat().get_data()); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_texture +// Function: CLP(GraphicsStateGuardian)::issue_texture // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_texture(const TextureAttrib *attrib) { DO_PSTATS_STUFF(_texture_state_pcollector.add_level(1)); if (attrib->is_off()) { @@ -2225,11 +2210,11 @@ issue_texture(const TextureAttrib *attrib) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_material +// Function: CLP(GraphicsStateGuardian)::issue_material // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_material(const MaterialAttrib *attrib) { const Material *material = attrib->get_material(); if (material != (const Material *)NULL) { @@ -2243,11 +2228,11 @@ issue_material(const MaterialAttrib *attrib) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_render_mode +// Function: CLP(GraphicsStateGuardian)::issue_render_mode // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_render_mode(const RenderModeAttrib *attrib) { RenderModeAttrib::Mode mode = attrib->get_mode(); @@ -2262,47 +2247,47 @@ issue_render_mode(const RenderModeAttrib *attrib) { break; default: - glgsg_cat.error() + GLCAT.error() << "Unknown render mode " << (int)mode << endl; } report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_texture_apply +// Function: CLP(GraphicsStateGuardian)::issue_texture_apply // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_texture_apply(const TextureApplyAttrib *attrib) { GLint glmode = get_texture_apply_mode_type(attrib->get_mode()); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, glmode); + GLP(TexEnvi)(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, glmode); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_color_write +// Function: CLP(GraphicsStateGuardian)::issue_color_write // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_color_write(const ColorWriteAttrib *attrib) { // If we did not override this function, the default implementation // would achieve turning off color writes by changing the blend mode // in set_blend_mode(). However, since GL does support an easy way // to disable writes to the color buffer, we can take advantage of // it here. - if (gl_color_mask) { + if (CLP(color_mask)) { ColorWriteAttrib::Mode mode = attrib->get_mode(); if (mode == ColorWriteAttrib::M_off) { - glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); + GLP(ColorMask)(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); } else { - glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + GLP(ColorMask)(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); } report_gl_errors(); } else { - // Some implementations don't seem to handle glColorMask() very + // Some implementations don't seem to handle GLP(ColorMask)() very // robustly, however, so we provide this fallback. GraphicsStateGuardian::issue_color_write(attrib); } @@ -2312,28 +2297,28 @@ issue_color_write(const ColorWriteAttrib *attrib) { #define PANDA_TO_GL_COMPAREFUNC(PANDACMPFUNC) (PANDACMPFUNC-1 +0x200) //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_depth_test +// Function: CLP(GraphicsStateGuardian)::issue_depth_test // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_depth_test(const DepthTestAttrib *attrib) { DepthTestAttrib::PandaCompareFunc mode = attrib->get_mode(); if (mode == DepthTestAttrib::M_none) { enable_depth_test(false); } else { enable_depth_test(true); - glDepthFunc(PANDA_TO_GL_COMPAREFUNC(mode)); + GLP(DepthFunc)(PANDA_TO_GL_COMPAREFUNC(mode)); } report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_alpha_test +// Function: CLP(GraphicsStateGuardian)::issue_alpha_test // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_alpha_test(const AlphaTestAttrib *attrib) { AlphaTestAttrib::PandaCompareFunc mode = attrib->get_mode(); if (mode == AlphaTestAttrib::M_none) { @@ -2346,44 +2331,44 @@ issue_alpha_test(const AlphaTestAttrib *attrib) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_depth_write +// Function: CLP(GraphicsStateGuardian)::issue_depth_write // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_depth_write(const DepthWriteAttrib *attrib) { DepthWriteAttrib::Mode mode = attrib->get_mode(); if (mode == DepthWriteAttrib::M_off) { - glDepthMask(GL_FALSE); + GLP(DepthMask)(GL_FALSE); } else { - glDepthMask(GL_TRUE); + GLP(DepthMask)(GL_TRUE); } report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_cull_face +// Function: CLP(GraphicsStateGuardian)::issue_cull_face // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_cull_face(const CullFaceAttrib *attrib) { CullFaceAttrib::Mode mode = attrib->get_effective_mode(); switch (mode) { case CullFaceAttrib::M_cull_none: - glDisable(GL_CULL_FACE); + GLP(Disable)(GL_CULL_FACE); break; case CullFaceAttrib::M_cull_clockwise: - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); + GLP(Enable)(GL_CULL_FACE); + GLP(CullFace)(GL_BACK); break; case CullFaceAttrib::M_cull_counter_clockwise: - glEnable(GL_CULL_FACE); - glCullFace(GL_FRONT); + GLP(Enable)(GL_CULL_FACE); + GLP(CullFace)(GL_FRONT); break; default: - glgsg_cat.error() + GLCAT.error() << "invalid cull face mode " << (int)mode << endl; break; } @@ -2391,11 +2376,11 @@ issue_cull_face(const CullFaceAttrib *attrib) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_fog +// Function: CLP(GraphicsStateGuardian)::issue_fog // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_fog(const FogAttrib *attrib) { if (!attrib->is_off()) { enable_fog(true); @@ -2409,18 +2394,18 @@ issue_fog(const FogAttrib *attrib) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_depth_offset +// Function: CLP(GraphicsStateGuardian)::issue_depth_offset // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_depth_offset(const DepthOffsetAttrib *attrib) { int offset = attrib->get_offset(); if (offset != 0) { // The relationship between these two parameters is a little // unclear and poorly explained in the GL man pages. - glPolygonOffset((GLfloat) -offset, (GLfloat) -offset); + GLP(PolygonOffset)((GLfloat) -offset, (GLfloat) -offset); enable_polygon_offset(true); } else { @@ -2431,20 +2416,20 @@ issue_depth_offset(const DepthOffsetAttrib *attrib) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::bind_light +// Function: CLP(GraphicsStateGuardian)::bind_light // Access: Public, Virtual // Description: Called the first time a particular light has been // bound to a given id within a frame, this should set // up the associated hardware light with the light's // properties. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: bind_light(PointLight *light, int light_id) { GLenum id = get_light_id(light_id); static const Colorf black(0.0f, 0.0f, 0.0f, 1.0f); - glLightfv(id, GL_AMBIENT, black.get_data()); - glLightfv(id, GL_DIFFUSE, light->get_color().get_data()); - glLightfv(id, GL_SPECULAR, light->get_specular_color().get_data()); + GLP(Lightfv)(id, GL_AMBIENT, black.get_data()); + GLP(Lightfv)(id, GL_DIFFUSE, light->get_color().get_data()); + GLP(Lightfv)(id, GL_SPECULAR, light->get_specular_color().get_data()); // Position needs to specify x, y, z, and w // w == 1 implies non-infinite position @@ -2453,39 +2438,39 @@ bind_light(PointLight *light, int light_id) { LPoint3f pos = light->get_point() * light_mat; LPoint4f fpos(pos[0], pos[1], pos[2], 1.0f); - glLightfv(id, GL_POSITION, fpos.get_data()); + GLP(Lightfv)(id, GL_POSITION, fpos.get_data()); // GL_SPOT_DIRECTION is not significant when cutoff == 180 // Exponent == 0 implies uniform light distribution - glLightf(id, GL_SPOT_EXPONENT, 0.0f); + GLP(Lightf)(id, GL_SPOT_EXPONENT, 0.0f); // Cutoff == 180 means uniform point light source - glLightf(id, GL_SPOT_CUTOFF, 180.0f); + GLP(Lightf)(id, GL_SPOT_CUTOFF, 180.0f); const LVecBase3f &att = light->get_attenuation(); - glLightf(id, GL_CONSTANT_ATTENUATION, att[0]); - glLightf(id, GL_LINEAR_ATTENUATION, att[1]); - glLightf(id, GL_QUADRATIC_ATTENUATION, att[2]); + GLP(Lightf)(id, GL_CONSTANT_ATTENUATION, att[0]); + GLP(Lightf)(id, GL_LINEAR_ATTENUATION, att[1]); + GLP(Lightf)(id, GL_QUADRATIC_ATTENUATION, att[2]); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::bind_light +// Function: CLP(GraphicsStateGuardian)::bind_light // Access: Public, Virtual // Description: Called the first time a particular light has been // bound to a given id within a frame, this should set // up the associated hardware light with the light's // properties. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: bind_light(DirectionalLight *light, int light_id) { GLenum id = get_light_id( light_id ); static const Colorf black(0.0f, 0.0f, 0.0f, 1.0f); - glLightfv(id, GL_AMBIENT, black.get_data()); - glLightfv(id, GL_DIFFUSE, light->get_color().get_data()); - glLightfv(id, GL_SPECULAR, light->get_specular_color().get_data()); + GLP(Lightfv)(id, GL_AMBIENT, black.get_data()); + GLP(Lightfv)(id, GL_DIFFUSE, light->get_color().get_data()); + GLP(Lightfv)(id, GL_SPECULAR, light->get_specular_color().get_data()); // Position needs to specify x, y, z, and w. // w == 0 implies light is at infinity @@ -2493,44 +2478,44 @@ bind_light(DirectionalLight *light, int light_id) { const LMatrix4f &light_mat = light_np.get_mat(_scene_setup->get_scene_root()); LVector3f dir = light->get_direction() * light_mat; LPoint4f fdir(-dir[0], -dir[1], -dir[2], 0); - glLightfv(id, GL_POSITION, fdir.get_data()); + GLP(Lightfv)(id, GL_POSITION, fdir.get_data()); // GL_SPOT_DIRECTION is not significant when cutoff == 180 // In this case, position x, y, z specifies direction // Exponent == 0 implies uniform light distribution - glLightf(id, GL_SPOT_EXPONENT, 0.0f); + GLP(Lightf)(id, GL_SPOT_EXPONENT, 0.0f); // Cutoff == 180 means uniform point light source - glLightf(id, GL_SPOT_CUTOFF, 180.0f); + GLP(Lightf)(id, GL_SPOT_CUTOFF, 180.0f); // Default attenuation values (only spotlight and point light can // modify these) - glLightf(id, GL_CONSTANT_ATTENUATION, 1.0f); - glLightf(id, GL_LINEAR_ATTENUATION, 0.0f); - glLightf(id, GL_QUADRATIC_ATTENUATION, 0.0f); + GLP(Lightf)(id, GL_CONSTANT_ATTENUATION, 1.0f); + GLP(Lightf)(id, GL_LINEAR_ATTENUATION, 0.0f); + GLP(Lightf)(id, GL_QUADRATIC_ATTENUATION, 0.0f); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::bind_light +// Function: CLP(GraphicsStateGuardian)::bind_light // Access: Public, Virtual // Description: Called the first time a particular light has been // bound to a given id within a frame, this should set // up the associated hardware light with the light's // properties. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: bind_light(Spotlight *light, int light_id) { Lens *lens = light->get_lens(); nassertv(lens != (Lens *)NULL); GLenum id = get_light_id(light_id); static const Colorf black(0.0f, 0.0f, 0.0f, 1.0f); - glLightfv(id, GL_AMBIENT, black.get_data()); - glLightfv(id, GL_DIFFUSE, light->get_color().get_data()); - glLightfv(id, GL_SPECULAR, light->get_specular_color().get_data()); + GLP(Lightfv)(id, GL_AMBIENT, black.get_data()); + GLP(Lightfv)(id, GL_DIFFUSE, light->get_color().get_data()); + GLP(Lightfv)(id, GL_SPECULAR, light->get_specular_color().get_data()); // Position needs to specify x, y, z, and w // w == 1 implies non-infinite position @@ -2540,55 +2525,55 @@ bind_light(Spotlight *light, int light_id) { LVector3f dir = lens->get_view_vector() * light_mat; LPoint4f fpos(pos[0], pos[1], pos[2], 1.0f); - glLightfv(id, GL_POSITION, fpos.get_data()); - glLightfv(id, GL_SPOT_DIRECTION, dir.get_data()); + GLP(Lightfv)(id, GL_POSITION, fpos.get_data()); + GLP(Lightfv)(id, GL_SPOT_DIRECTION, dir.get_data()); - glLightf(id, GL_SPOT_EXPONENT, light->get_exponent()); - glLightf(id, GL_SPOT_CUTOFF, lens->get_hfov()); + GLP(Lightf)(id, GL_SPOT_EXPONENT, light->get_exponent()); + GLP(Lightf)(id, GL_SPOT_CUTOFF, lens->get_hfov()); const LVecBase3f &att = light->get_attenuation(); - glLightf(id, GL_CONSTANT_ATTENUATION, att[0]); - glLightf(id, GL_LINEAR_ATTENUATION, att[1]); - glLightf(id, GL_QUADRATIC_ATTENUATION, att[2]); + GLP(Lightf)(id, GL_CONSTANT_ATTENUATION, att[0]); + GLP(Lightf)(id, GL_LINEAR_ATTENUATION, att[1]); + GLP(Lightf)(id, GL_QUADRATIC_ATTENUATION, att[2]); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::wants_normals +// Function: CLP(GraphicsStateGuardian)::wants_normals // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: wants_normals() const { return (_lighting_enabled || _normals_enabled); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::wants_texcoords +// Function: CLP(GraphicsStateGuardian)::wants_texcoords // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: wants_texcoords() const { return _texturing_enabled; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::depth_offset_decals +// Function: CLP(GraphicsStateGuardian)::depth_offset_decals // Access: Public, Virtual // Description: Returns true if this GSG can implement decals using a // DepthOffsetAttrib, or false if that is unreliable // and the three-step rendering process should be used // instead. //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: depth_offset_decals() { - return gl_depth_offset_decals; + return CLP(depth_offset_decals); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_internal_coordinate_system +// Function: CLP(GraphicsStateGuardian)::get_internal_coordinate_system // Access: Public, Virtual // Description: Should be overridden by derived classes to return the // coordinate system used internally by the GSG, if any @@ -2600,22 +2585,22 @@ depth_offset_decals() { // GraphicsEngine will automatically convert all // transforms into the indicated coordinate system. //////////////////////////////////////////////////////////////////// -CoordinateSystem GLGraphicsStateGuardian:: +CoordinateSystem CLP(GraphicsStateGuardian):: get_internal_coordinate_system() const { return CS_yup_right; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::compute_distance_to +// Function: CLP(GraphicsStateGuardian)::compute_distance_to // Access: Public, Virtual // Description: This function may only be called during a render // traversal; it will compute the distance to the // indicated point, assumed to be in modelview // coordinates, from the camera plane. //////////////////////////////////////////////////////////////////// -float GLGraphicsStateGuardian:: +float CLP(GraphicsStateGuardian):: compute_distance_to(const LPoint3f &point) const { - // In the case of a GLGraphicsStateGuardian, we know that the + // In the case of a CLP(GraphicsStateGuardian), we know that the // modelview matrix already includes the relative transform from the // camera, as well as a to-y-up conversion. Thus, the distance to // the camera plane is simply the -z distance. @@ -2630,7 +2615,7 @@ compute_distance_to(const LPoint3f &point) const { // Don't call this function; use report_errors() // instead. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: report_errors_loop(int line, const char *source_file, GLenum error_code) { #ifndef NDEBUG static const int max_gl_errors_reported = 20; @@ -2638,29 +2623,29 @@ report_errors_loop(int line, const char *source_file, GLenum error_code) { while ((count < max_gl_errors_reported) && (error_code != GL_NO_ERROR)) { const GLubyte *error_string = gluErrorString(error_code); if (error_string != (const GLubyte *)NULL) { - glgsg_cat.error() + GLCAT.error() << "at " << line << " of " << source_file << ": " << error_string << "\n"; } else { - glgsg_cat.error() + GLCAT.error() << "at " << line << " of " << source_file << ": " << "GL error " << (int)error_code << "\n"; } - error_code = glGetError(); + error_code = GLP(GetError)(); count++; } #endif } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::set_draw_buffer +// Function: CLP(GraphicsStateGuardian)::set_draw_buffer // Access: Protected -// Description: Sets up the glDrawBuffer to render into the buffer +// Description: Sets up the GLP(DrawBuffer) to render into the buffer // indicated by the RenderBuffer object. This only sets // up the color bits; it does not affect the depth, // stencil, accum layers. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: set_draw_buffer(const RenderBuffer &rb) { switch (rb._buffer_type & RenderBuffer::T_color) { case RenderBuffer::T_front: @@ -2702,14 +2687,14 @@ set_draw_buffer(const RenderBuffer &rb) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::set_read_buffer +// Function: CLP(GraphicsStateGuardian)::set_read_buffer // Access: Protected -// Description: Sets up the glReadBuffer to render into the buffer +// Description: Sets up the GLP(ReadBuffer) to render into the buffer // indicated by the RenderBuffer object. This only sets // up the color bits; it does not affect the depth, // stencil, accum layers. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: set_read_buffer(const RenderBuffer &rb) { switch (rb._buffer_type & RenderBuffer::T_color) { case RenderBuffer::T_front: @@ -2752,45 +2737,45 @@ set_read_buffer(const RenderBuffer &rb) { //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::bind_texture +// Function: CLP(GraphicsStateGuardian)::bind_texture // Access: Protected // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: bind_texture(TextureContext *tc) { - GLTextureContext *gtc = DCAST(GLTextureContext, tc); + CLP(TextureContext) *gtc = DCAST(CLP(TextureContext), tc); #ifdef GSG_VERBOSE Texture *tex = tc->_texture; - glgsg_cat.spam() + GLCAT.spam() << "glBindTexture(): " << tex->get_name() << "(" << (int)gtc->_index << ")" << endl; #endif - glBindTexture(GL_TEXTURE_2D, gtc->_index); + GLP(BindTexture)(GL_TEXTURE_2D, gtc->_index); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::specify_texture +// Function: CLP(GraphicsStateGuardian)::specify_texture // Access: Protected // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: specify_texture(Texture *tex) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, + GLP(TexParameteri)(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, get_texture_wrap_mode(tex->get_wrapu())); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, + GLP(TexParameteri)(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, get_texture_wrap_mode(tex->get_wrapv())); - if (gl_force_mipmaps) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, + if (CLP(force_mipmaps)) { + GLP(TexParameteri)(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + GLP(TexParameteri)(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } else { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, + GLP(TexParameteri)(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, get_texture_filter_type(tex->get_minfilter())); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, + GLP(TexParameteri)(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, get_texture_filter_type(tex->get_magfilter())); } report_gl_errors(); @@ -2865,7 +2850,7 @@ compute_gl_image_size(int xsize, int ysize, int external_format, int type) { #endif // NDEBUG //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::apply_texture_immediate +// Function: CLP(GraphicsStateGuardian)::apply_texture_immediate // Access: Protected // Description: Sends the texture image to GL. This can be used to // render a texture in immediate mode, or as part of the @@ -2874,7 +2859,7 @@ compute_gl_image_size(int xsize, int ysize, int external_format, int type) { // The return value is true if successful, or false if // the texture has no image. //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: apply_texture_immediate(Texture *tex) { PixelBuffer *pb = tex->get_ram_image(); if (pb == (PixelBuffer *)NULL) { @@ -2889,7 +2874,7 @@ apply_texture_immediate(Texture *tex) { GLenum type = get_image_type(pb->get_image_type()); PTA_uchar image = pb->_image; - if (!gl_supports_bgr) { + if (!CLP(supports_bgr)) { // If the GL doesn't claim to support BGR, we may have to reverse // the component ordering of the image. image = fix_component_ordering(external_format, pb); @@ -2904,7 +2889,7 @@ apply_texture_immediate(Texture *tex) { set_unpack_alignment(1); #ifdef GSG_VERBOSE - glgsg_cat.debug() + GLCAT.debug() << "glTexImage2D(GL_TEXTURE_2D, " << (int)internal_format << ", " << xsize << ", " << ysize << ", " @@ -2912,10 +2897,10 @@ apply_texture_immediate(Texture *tex) { << (int)type << ", " << tex->get_name() << ")\n"; #endif - if (!gl_ignore_mipmaps || gl_force_mipmaps) { - if (tex->uses_mipmaps() || gl_force_mipmaps) { + if (!CLP(ignore_mipmaps) || CLP(force_mipmaps)) { + if (tex->uses_mipmaps() || CLP(force_mipmaps)) { #ifndef NDEBUG - if (gl_show_mipmaps) { + if (CLP(show_mipmaps)) { build_phony_mipmaps(tex); } else #endif @@ -2924,7 +2909,7 @@ apply_texture_immediate(Texture *tex) { xsize, ysize, external_format, type, image); #ifndef NDEBUG - if (gl_save_mipmaps) { + if (CLP(save_mipmaps)) { save_mipmap_images(tex); } #endif @@ -2936,16 +2921,16 @@ apply_texture_immediate(Texture *tex) { } nassertr(!pb->_image.empty(), false); - glTexImage2D(GL_TEXTURE_2D, 0, internal_format, + GLP(TexImage2D)(GL_TEXTURE_2D, 0, internal_format, xsize, ysize, pb->get_border(), external_format, type, image); //report_gl_errors(); // want to give explict error for texture creation failure - GLenum error_code = glGetError(); + GLenum error_code = GLP(GetError)(); if(error_code != GL_NO_ERROR) { const GLubyte *error_string = gluErrorString(error_code); - glgsg_cat.error() << "GL texture creation failed for " << tex->get_name() << + GLCAT.error() << "GL texture creation failed for " << tex->get_name() << ((error_string != (const GLubyte *)NULL) ? " : " : "") << endl; } @@ -2953,12 +2938,12 @@ apply_texture_immediate(Texture *tex) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_texture +// Function: CLP(GraphicsStateGuardian)::draw_texture // Access: Protected // Description: Copies the texture image directly onto the frame // buffer within the indicated display region. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_texture(TextureContext *tc, const DisplayRegion *dr) { nassertv(tc != NULL && dr != NULL); Texture *tex = tc->_texture; @@ -2993,9 +2978,9 @@ draw_texture(TextureContext *tc, const DisplayRegion *dr) { // viewport to the range [0..1] in both dimensions. Then, when we // create a unit square polygon below, it will exactly fill the // viewport (and thus exactly fill the display region). - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); + GLP(MatrixMode)(GL_PROJECTION); + GLP(PushMatrix)(); + GLP(LoadIdentity)(); gluOrtho2D(0, 1, 0, 1); float txl, txr, tyt, tyb; @@ -3014,25 +2999,25 @@ draw_texture(TextureContext *tc, const DisplayRegion *dr) { // This two-triangle strip is actually a quad. But it's usually // better to render quads as tristrips anyway. - glBegin(GL_TRIANGLE_STRIP); - glTexCoord2f(txl, tyb); glVertex2i(0, 0); - glTexCoord2f(txr, tyb); glVertex2i(1, 0); - glTexCoord2f(txl, tyt); glVertex2i(0, 1); - glTexCoord2f(txr, tyt); glVertex2i(1, 1); - glEnd(); + GLP(Begin)(GL_TRIANGLE_STRIP); + GLP(TexCoord2f)(txl, tyb); GLP(Vertex2i)(0, 0); + GLP(TexCoord2f)(txr, tyb); GLP(Vertex2i)(1, 0); + GLP(TexCoord2f)(txl, tyt); GLP(Vertex2i)(0, 1); + GLP(TexCoord2f)(txr, tyt); GLP(Vertex2i)(1, 1); + GLP(End)(); - glMatrixMode(GL_PROJECTION); - glPopMatrix(); + GLP(MatrixMode)(GL_PROJECTION); + GLP(PopMatrix)(); pop_display_region(old_dr); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_texture +// Function: CLP(GraphicsStateGuardian)::draw_texture // Access: Protected // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_texture(TextureContext *tc, const DisplayRegion *dr, const RenderBuffer &rb) { set_draw_buffer(rb); @@ -3040,12 +3025,12 @@ draw_texture(TextureContext *tc, const DisplayRegion *dr, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_pixel_buffer +// Function: CLP(GraphicsStateGuardian)::draw_pixel_buffer // Access: Protected // Description: Copies the indicated pixel buffer into the frame // buffer in the given display region. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { // This code is now invalidated by the new design; perhaps the // interface is not needed anyway. @@ -3092,7 +3077,7 @@ draw_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { break; default: - glgsg_cat.error() + GLCAT.error() << "draw_pixel_buffer(): unknown buffer format" << endl; } set_transform(TransformState::make_identity()); @@ -3101,61 +3086,61 @@ draw_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { WindowProperties props = _win->get_properties(); - glMatrixMode( GL_PROJECTION ); - glPushMatrix(); - glLoadIdentity(); + GLP(MatrixMode)( GL_PROJECTION ); + GLP(PushMatrix)(); + GLP(LoadIdentity)(); gluOrtho2D(0, props.get_x_size(), 0, props.get_y_size()); #ifdef GSG_VERBOSE - glgsg_cat.debug() + GLCAT.debug() << "glDrawPixels(" << pb->get_xsize() << ", " << pb->get_ysize() << ", "; switch (get_external_image_format(pb->get_format())) { case GL_DEPTH_COMPONENT: - glgsg_cat.debug(false) << "GL_DEPTH_COMPONENT, "; + GLCAT.debug(false) << "GL_DEPTH_COMPONENT, "; break; case GL_RGB: - glgsg_cat.debug(false) << "GL_RGB, "; + GLCAT.debug(false) << "GL_RGB, "; break; case GL_RGBA: - glgsg_cat.debug(false) << "GL_RGBA, "; + GLCAT.debug(false) << "GL_RGBA, "; break; #ifdef GL_BGR case GL_BGR: - glgsg_cat.debug(false) << "GL_BGR, "; + GLCAT.debug(false) << "GL_BGR, "; break; case GL_BGRA: - glgsg_cat.debug(false) << "GL_BGRA, "; + GLCAT.debug(false) << "GL_BGRA, "; break; #endif // GL_BGR default: - glgsg_cat.debug(false) << "unknown, "; + GLCAT.debug(false) << "unknown, "; break; } switch (get_image_type(pb->get_image_type())) { case GL_UNSIGNED_BYTE: - glgsg_cat.debug(false) << "GL_UNSIGNED_BYTE, "; + GLCAT.debug(false) << "GL_UNSIGNED_BYTE, "; break; case GL_FLOAT: - glgsg_cat.debug(false) << "GL_FLOAT, "; + GLCAT.debug(false) << "GL_FLOAT, "; break; default: - glgsg_cat.debug(false) << "unknown, "; + GLCAT.debug(false) << "unknown, "; break; } - glgsg_cat.debug(false) + GLCAT.debug(false) << (void *)pb->_image.p() << ")" << endl; #endif - glRasterPos2i( pb->get_xorg(), pb->get_yorg() ); - glDrawPixels( pb->get_xsize(), pb->get_ysize(), + GLP(RasterPos2i)( pb->get_xorg(), pb->get_yorg() ); + GLP(DrawPixels)( pb->get_xsize(), pb->get_ysize(), get_external_image_format(pb->get_format()), get_image_type(pb->get_image_type()), pb->_image.p() ); - glMatrixMode( GL_PROJECTION ); - glPopMatrix(); + GLP(MatrixMode)( GL_PROJECTION ); + GLP(PopMatrix)(); pop_display_region(old_dr); report_gl_errors(); @@ -3163,11 +3148,11 @@ draw_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::draw_pixel_buffer +// Function: CLP(GraphicsStateGuardian)::draw_pixel_buffer // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: draw_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr, const RenderBuffer &rb) { set_draw_buffer(rb); @@ -3175,14 +3160,14 @@ draw_pixel_buffer(PixelBuffer *pb, const DisplayRegion *dr, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_texture_wrap_mode +// Function: CLP(GraphicsStateGuardian)::get_texture_wrap_mode // Access: Protected // Description: Maps from the Texture's internal wrap mode symbols to // GL's. //////////////////////////////////////////////////////////////////// -GLenum GLGraphicsStateGuardian:: +GLenum CLP(GraphicsStateGuardian):: get_texture_wrap_mode(Texture::WrapMode wm) { - if (gl_ignore_clamp) { + if (CLP(ignore_clamp)) { return GL_REPEAT; } switch (wm) { @@ -3200,22 +3185,22 @@ get_texture_wrap_mode(Texture::WrapMode wm) { case Texture::WM_invalid: break; } - glgsg_cat.error() << "Invalid Texture::WrapMode value!\n"; + GLCAT.error() << "Invalid Texture::WrapMode value!\n"; return GL_CLAMP; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_texture_filter_type +// Function: CLP(GraphicsStateGuardian)::get_texture_filter_type // Access: Protected // Description: Maps from the Texture's internal filter type symbols // to GL's. //////////////////////////////////////////////////////////////////// -GLenum GLGraphicsStateGuardian:: +GLenum CLP(GraphicsStateGuardian):: get_texture_filter_type(Texture::FilterType ft) { - if (gl_ignore_filters) { + if (CLP(ignore_filters)) { return GL_NEAREST; - } else if (gl_ignore_mipmaps) { + } else if (CLP(ignore_mipmaps)) { switch (ft) { case Texture::FT_nearest_mipmap_nearest: case Texture::FT_nearest: @@ -3247,17 +3232,17 @@ get_texture_filter_type(Texture::FilterType ft) { break; } } - glgsg_cat.error() << "Invalid Texture::FilterType value!\n"; + GLCAT.error() << "Invalid Texture::FilterType value!\n"; return GL_NEAREST; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_image_type +// Function: CLP(GraphicsStateGuardian)::get_image_type // Access: Protected // Description: Maps from the PixelBuffer's internal Type symbols // to GL's. //////////////////////////////////////////////////////////////////// -GLenum GLGraphicsStateGuardian:: +GLenum CLP(GraphicsStateGuardian):: get_image_type(PixelBuffer::Type type) { switch (type) { case PixelBuffer::T_unsigned_byte: @@ -3272,18 +3257,18 @@ get_image_type(PixelBuffer::Type type) { return GL_FLOAT; default: - glgsg_cat.error() << "Invalid PixelBuffer::Type value!\n"; + GLCAT.error() << "Invalid PixelBuffer::Type value!\n"; return GL_UNSIGNED_BYTE; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_external_image_format +// Function: CLP(GraphicsStateGuardian)::get_external_image_format // Access: Protected // Description: Maps from the PixelBuffer's Format symbols // to GL's. //////////////////////////////////////////////////////////////////// -GLenum GLGraphicsStateGuardian:: +GLenum CLP(GraphicsStateGuardian):: get_external_image_format(PixelBuffer::Format format) { switch (format) { case PixelBuffer::F_color_index: @@ -3306,7 +3291,7 @@ get_external_image_format(PixelBuffer::Format format) { case PixelBuffer::F_rgb12: case PixelBuffer::F_rgb332: #ifdef GL_BGR - return gl_supports_bgr ? GL_BGR : GL_RGB; + return CLP(supports_bgr) ? GL_BGR : GL_RGB; #else return GL_RGB; #endif // GL_BGR @@ -3317,7 +3302,7 @@ get_external_image_format(PixelBuffer::Format format) { case PixelBuffer::F_rgba8: case PixelBuffer::F_rgba12: #ifdef GL_BGR - return gl_supports_bgr ? GL_BGRA : GL_RGBA; + return CLP(supports_bgr) ? GL_BGRA : GL_RGBA; #else return GL_RGBA; #endif // GL_BGR @@ -3327,19 +3312,19 @@ get_external_image_format(PixelBuffer::Format format) { case PixelBuffer::F_luminance_alpha: return GL_LUMINANCE_ALPHA; } - glgsg_cat.error() + GLCAT.error() << "Invalid PixelBuffer::Format value in get_external_image_format(): " << (int)format << "\n"; return GL_RGB; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_internal_image_format +// Function: CLP(GraphicsStateGuardian)::get_internal_image_format // Access: Protected // Description: Maps from the PixelBuffer's Format symbols to a // suitable internal format for GL textures. //////////////////////////////////////////////////////////////////// -GLenum GLGraphicsStateGuardian:: +GLenum CLP(GraphicsStateGuardian):: get_internal_image_format(PixelBuffer::Format format) { switch (format) { case PixelBuffer::F_rgba: @@ -3378,7 +3363,7 @@ get_internal_image_format(PixelBuffer::Format format) { return GL_LUMINANCE_ALPHA; default: - glgsg_cat.error() + GLCAT.error() << "Invalid image format in get_internal_image_format(): " << (int)format << "\n"; return GL_RGB; @@ -3386,14 +3371,14 @@ get_internal_image_format(PixelBuffer::Format format) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_texture_apply_mode_type +// Function: CLP(GraphicsStateGuardian)::get_texture_apply_mode_type // Access: Protected // Description: Maps from the texture environment's mode types // to the corresponding OpenGL ids //////////////////////////////////////////////////////////////////// -GLint GLGraphicsStateGuardian:: +GLint CLP(GraphicsStateGuardian):: get_texture_apply_mode_type(TextureApplyAttrib::Mode am) const { - if (gl_always_decal_textures) { + if (CLP(always_decal_textures)) { return GL_DECAL; } switch (am) { @@ -3403,17 +3388,17 @@ get_texture_apply_mode_type(TextureApplyAttrib::Mode am) const { case TextureApplyAttrib::M_replace: return GL_REPLACE; case TextureApplyAttrib::M_add: return GL_ADD; } - glgsg_cat.error() + GLCAT.error() << "Invalid TextureApplyAttrib::Mode value" << endl; return GL_MODULATE; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_fog_mode_type +// Function: CLP(GraphicsStateGuardian)::get_fog_mode_type // Access: Protected // Description: Maps from the fog types to gl version //////////////////////////////////////////////////////////////////// -GLenum GLGraphicsStateGuardian:: +GLenum CLP(GraphicsStateGuardian):: get_fog_mode_type(Fog::Mode m) const { switch(m) { case Fog::M_linear: return GL_LINEAR; @@ -3426,69 +3411,69 @@ get_fog_mode_type(Fog::Mode m) const { */ default: - glgsg_cat.error() << "Invalid Fog::Mode value" << endl; + GLCAT.error() << "Invalid Fog::Mode value" << endl; return GL_EXP; } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::print_gfx_visual +// Function: CLP(GraphicsStateGuardian)::print_gfx_visual // Access: Public // Description: Prints a description of the current visual selected. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: print_gfx_visual() { GLint i; GLboolean j; cout << "Graphics Visual Info (# bits of each):" << endl; cout << "RGBA: "; - glGetIntegerv( GL_RED_BITS, &i ); cout << i << " "; - glGetIntegerv( GL_GREEN_BITS, &i ); cout << i << " "; - glGetIntegerv( GL_BLUE_BITS, &i ); cout << i << " "; - glGetIntegerv( GL_ALPHA_BITS, &i ); cout << i << endl; + GLP(GetIntegerv)( GL_RED_BITS, &i ); cout << i << " "; + GLP(GetIntegerv)( GL_GREEN_BITS, &i ); cout << i << " "; + GLP(GetIntegerv)( GL_BLUE_BITS, &i ); cout << i << " "; + GLP(GetIntegerv)( GL_ALPHA_BITS, &i ); cout << i << endl; cout << "Accum RGBA: "; - glGetIntegerv( GL_ACCUM_RED_BITS, &i ); cout << i << " "; - glGetIntegerv( GL_ACCUM_GREEN_BITS, &i ); cout << i << " "; - glGetIntegerv( GL_ACCUM_BLUE_BITS, &i ); cout << i << " "; - glGetIntegerv( GL_ACCUM_ALPHA_BITS, &i ); cout << i << endl; + GLP(GetIntegerv)( GL_ACCUM_RED_BITS, &i ); cout << i << " "; + GLP(GetIntegerv)( GL_ACCUM_GREEN_BITS, &i ); cout << i << " "; + GLP(GetIntegerv)( GL_ACCUM_BLUE_BITS, &i ); cout << i << " "; + GLP(GetIntegerv)( GL_ACCUM_ALPHA_BITS, &i ); cout << i << endl; - glGetIntegerv( GL_INDEX_BITS, &i ); cout << "Color Index: " << i << endl; + GLP(GetIntegerv)( GL_INDEX_BITS, &i ); cout << "Color Index: " << i << endl; - glGetIntegerv( GL_DEPTH_BITS, &i ); cout << "Depth: " << i << endl; - glGetIntegerv( GL_ALPHA_BITS, &i ); cout << "Alpha: " << i << endl; - glGetIntegerv( GL_STENCIL_BITS, &i ); cout << "Stencil: " << i << endl; + GLP(GetIntegerv)( GL_DEPTH_BITS, &i ); cout << "Depth: " << i << endl; + GLP(GetIntegerv)( GL_ALPHA_BITS, &i ); cout << "Alpha: " << i << endl; + GLP(GetIntegerv)( GL_STENCIL_BITS, &i ); cout << "Stencil: " << i << endl; - glGetBooleanv( GL_DOUBLEBUFFER, &j ); cout << "DoubleBuffer? " + GLP(GetBooleanv)( GL_DOUBLEBUFFER, &j ); cout << "DoubleBuffer? " << (int)j << endl; - glGetBooleanv( GL_STEREO, &j ); cout << "Stereo? " << (int)j << endl; + GLP(GetBooleanv)( GL_STEREO, &j ); cout << "Stereo? " << (int)j << endl; #ifdef GL_MULTISAMPLE_SGIS - glGetBooleanv( GL_MULTISAMPLE_SGIS, &j ); cout << "Multisample? " + GLP(GetBooleanv)( GL_MULTISAMPLE_SGIS, &j ); cout << "Multisample? " << (int)j << endl; #endif #ifdef GL_SAMPLES_SGIS - glGetIntegerv( GL_SAMPLES_SGIS, &i ); cout << "Samples: " << i << endl; + GLP(GetIntegerv)( GL_SAMPLES_SGIS, &i ); cout << "Samples: " << i << endl; #endif - glGetBooleanv( GL_BLEND, &j ); cout << "Blend? " << (int)j << endl; - glGetBooleanv( GL_POINT_SMOOTH, &j ); cout << "Point Smooth? " + GLP(GetBooleanv)( GL_BLEND, &j ); cout << "Blend? " << (int)j << endl; + GLP(GetBooleanv)( GL_POINT_SMOOTH, &j ); cout << "Point Smooth? " << (int)j << endl; - glGetBooleanv( GL_LINE_SMOOTH, &j ); cout << "Line Smooth? " + GLP(GetBooleanv)( GL_LINE_SMOOTH, &j ); cout << "Line Smooth? " << (int)j << endl; - glGetIntegerv( GL_AUX_BUFFERS, &i ); cout << "Aux Buffers: " << i << endl; + GLP(GetIntegerv)( GL_AUX_BUFFERS, &i ); cout << "Aux Buffers: " << i << endl; } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::issue_transformed_color +// Function: CLP(GraphicsStateGuardian)::issue_transformed_color // Access: Public // Description: Transform the color by the current color matrix, and // calls the appropriate glColor function. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: issue_transformed_color(const Colorf &color) const { Colorf transformed ((color[0] * _current_color_scale[0]) + _current_color_offset[0], @@ -3496,11 +3481,11 @@ issue_transformed_color(const Colorf &color) const { (color[2] * _current_color_scale[2]) + _current_color_offset[2], (color[3] * _current_color_scale[3]) + _current_color_offset[3]); - glColor4fv(transformed.get_data()); + GLP(Color4fv)(transformed.get_data()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::slot_new_light +// Function: CLP(GraphicsStateGuardian)::slot_new_light // Access: Protected, Virtual // Description: This will be called by the base class before a // particular light id will be used for the first time. @@ -3512,59 +3497,59 @@ issue_transformed_color(const Colorf &color) const { // The return value should be true if the additional // light is supported, or false if it is not. //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: slot_new_light(int light_id) { return (light_id < _max_lights); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_lighting +// Function: CLP(GraphicsStateGuardian)::enable_lighting // Access: Protected, Virtual // Description: Intended to be overridden by a derived class to // enable or disable the use of lighting overall. This // is called by issue_light() according to whether any // lights are in use or not. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: enable_lighting(bool enable) { if (enable) { - glEnable(GL_LIGHTING); + GLP(Enable)(GL_LIGHTING); } else { - glDisable(GL_LIGHTING); + GLP(Disable)(GL_LIGHTING); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::set_ambient_light +// Function: CLP(GraphicsStateGuardian)::set_ambient_light // Access: Protected, Virtual // Description: Intended to be overridden by a derived class to // indicate the color of the ambient light that should // be in effect. This is called by issue_light() after // all other lights have been enabled or disabled. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: set_ambient_light(const Colorf &color) { - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, color.get_data()); + GLP(LightModelfv)(GL_LIGHT_MODEL_AMBIENT, color.get_data()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_light +// Function: CLP(GraphicsStateGuardian)::enable_light // Access: Protected, Virtual // Description: Intended to be overridden by a derived class to // enable the indicated light id. A specific Light will // already have been bound to this id via bind_light(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: enable_light(int light_id, bool enable) { if (enable) { - glEnable(get_light_id(light_id)); + GLP(Enable)(get_light_id(light_id)); } else { - glDisable(get_light_id(light_id)); + GLP(Disable)(get_light_id(light_id)); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::begin_bind_lights +// Function: CLP(GraphicsStateGuardian)::begin_bind_lights // Access: Protected, Virtual // Description: Called immediately before bind_light() is called, // this is intended to provide the derived class a hook @@ -3575,7 +3560,7 @@ enable_light(int light_id, bool enable) { // then one or more bind_light() calls, then // end_bind_lights(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: begin_bind_lights() { // We need to temporarily load a new matrix so we can define the // light in a known coordinate system. We pick the transform of the @@ -3584,13 +3569,13 @@ begin_bind_lights() { // instead of relative to the root, by composing with the matrix // computed by _transform->invert_compose(render_transform). But I // think loading a completely new matrix is simpler.) - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadMatrixf(_scene_setup->get_render_transform()->get_mat().get_data()); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(PushMatrix)(); + GLP(LoadMatrixf)(_scene_setup->get_render_transform()->get_mat().get_data()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::end_bind_lights +// Function: CLP(GraphicsStateGuardian)::end_bind_lights // Access: Protected, Virtual // Description: Called after before bind_light() has been called one // or more times (but before any geometry is issued or @@ -3598,14 +3583,14 @@ begin_bind_lights() { // clean up any temporary changes to the state that may // have been made by begin_bind_lights(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: end_bind_lights() { - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(PopMatrix)(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::slot_new_clip_plane +// Function: CLP(GraphicsStateGuardian)::slot_new_clip_plane // Access: Protected, Virtual // Description: This will be called by the base class before a // particular clip plane id will be used for the first @@ -3618,30 +3603,30 @@ end_bind_lights() { // The return value should be true if the additional // plane is supported, or false if it is not. //////////////////////////////////////////////////////////////////// -bool GLGraphicsStateGuardian:: +bool CLP(GraphicsStateGuardian):: slot_new_clip_plane(int plane_id) { return (plane_id < _max_clip_planes); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::enable_clip_plane +// Function: CLP(GraphicsStateGuardian)::enable_clip_plane // Access: Protected, Virtual // Description: Intended to be overridden by a derived class to // enable the indicated clip_plane id. A specific // PlaneNode will already have been bound to this id via // bind_clip_plane(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: enable_clip_plane(int plane_id, bool enable) { if (enable) { - glEnable(get_clip_plane_id(plane_id)); + GLP(Enable)(get_clip_plane_id(plane_id)); } else { - glDisable(get_clip_plane_id(plane_id)); + GLP(Disable)(get_clip_plane_id(plane_id)); } } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::begin_bind_clip_planes +// Function: CLP(GraphicsStateGuardian)::begin_bind_clip_planes // Access: Protected, Virtual // Description: Called immediately before bind_clip_plane() is called, // this is intended to provide the derived class a hook @@ -3652,7 +3637,7 @@ enable_clip_plane(int plane_id, bool enable) { // then one or more bind_clip_plane() calls, then // end_bind_clip_planes(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: begin_bind_clip_planes() { // We need to temporarily load a new matrix so we can define the // clip_plane in a known coordinate system. We pick the transform of the @@ -3661,20 +3646,20 @@ begin_bind_clip_planes() { // instead of relative to the root, by composing with the matrix // computed by _transform->invert_compose(render_transform). But I // think loading a completely new matrix is simpler.) - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadMatrixf(_scene_setup->get_render_transform()->get_mat().get_data()); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(PushMatrix)(); + GLP(LoadMatrixf)(_scene_setup->get_render_transform()->get_mat().get_data()); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::bind_clip_plane +// Function: CLP(GraphicsStateGuardian)::bind_clip_plane // Access: Protected, Virtual // Description: Called the first time a particular clip_plane has been // bound to a given id within a frame, this should set // up the associated hardware clip_plane with the clip_plane's // properties. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: bind_clip_plane(PlaneNode *plane, int plane_id) { GLenum id = get_clip_plane_id(plane_id); @@ -3683,13 +3668,13 @@ bind_clip_plane(PlaneNode *plane, int plane_id) { Planef xformed_plane = plane->get_plane() * plane_mat; Planed double_plane(LCAST(double, xformed_plane)); - glClipPlane(id, double_plane.get_data()); + GLP(ClipPlane)(id, double_plane.get_data()); report_gl_errors(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::end_bind_clip_planes +// Function: CLP(GraphicsStateGuardian)::end_bind_clip_planes // Access: Protected, Virtual // Description: Called after before bind_clip_plane() has been called one // or more times (but before any geometry is issued or @@ -3697,26 +3682,26 @@ bind_clip_plane(PlaneNode *plane, int plane_id) { // clean up any temporary changes to the state that may // have been made by begin_bind_clip_planes(). //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: end_bind_clip_planes() { - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); + GLP(MatrixMode)(GL_MODELVIEW); + GLP(PopMatrix)(); } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::set_blend_mode +// Function: CLP(GraphicsStateGuardian)::set_blend_mode // Access: Protected, Virtual // Description: Called after any of these three blending states have // changed; this function is responsible for setting the // appropriate color blending mode based on the given // properties. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: set_blend_mode(ColorWriteAttrib::Mode color_write_mode, ColorBlendAttrib::Mode color_blend_mode, TransparencyAttrib::Mode transparency_mode) { // If color_write_mode is off, we disable writing to the color using - // blending. This case is only used if we can't use glColorMask to + // blending. This case is only used if we can't use GLP(ColorMask) to // disable the color writing for some reason (usually a driver // problem). if (color_write_mode == ColorWriteAttrib::M_off) { @@ -3754,7 +3739,7 @@ set_blend_mode(ColorWriteAttrib::Mode color_write_mode, return; default: - glgsg_cat.error() + GLCAT.error() << "Unknown color blend mode " << (int)color_blend_mode << endl; break; } @@ -3794,7 +3779,7 @@ set_blend_mode(ColorWriteAttrib::Mode color_write_mode, return; default: - glgsg_cat.error() + GLCAT.error() << "invalid transparency mode " << (int)transparency_mode << endl; break; } @@ -3806,17 +3791,17 @@ set_blend_mode(ColorWriteAttrib::Mode color_write_mode, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::free_pointers +// Function: CLP(GraphicsStateGuardian)::free_pointers // Access: Protected, Virtual // Description: Frees some memory that was explicitly allocated // within the glgsg. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: free_pointers() { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::save_frame_buffer +// Function: CLP(GraphicsStateGuardian)::save_frame_buffer // Access: Public // Description: Saves the indicated planes of the frame buffer // (within the indicated display region) and returns it @@ -3825,10 +3810,10 @@ free_pointers() { // function for push_frame_buffer() and // pop_frame_buffer(). //////////////////////////////////////////////////////////////////// -PT(SavedFrameBuffer) GLGraphicsStateGuardian:: +PT(SavedFrameBuffer) CLP(GraphicsStateGuardian):: save_frame_buffer(const RenderBuffer &buffer, CPT(DisplayRegion) dr) { - GLSavedFrameBuffer *sfb = new GLSavedFrameBuffer(buffer, dr); + CLP(SavedFrameBuffer) *sfb = new CLP(SavedFrameBuffer)(buffer, dr); if (buffer._buffer_type & RenderBuffer::T_depth) { // Save the depth buffer. @@ -3848,13 +3833,13 @@ save_frame_buffer(const RenderBuffer &buffer, } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::restore_frame_buffer +// Function: CLP(GraphicsStateGuardian)::restore_frame_buffer // Access: Public // Description: Restores the frame buffer that was previously saved. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: restore_frame_buffer(SavedFrameBuffer *frame_buffer) { - GLSavedFrameBuffer *sfb = DCAST(GLSavedFrameBuffer, frame_buffer); + CLP(SavedFrameBuffer) *sfb = DCAST(CLP(SavedFrameBuffer), frame_buffer); if (sfb->_back_rgba != (Texture *)NULL && (sfb->_buffer._buffer_type & RenderBuffer::T_back) != 0) { @@ -3871,12 +3856,12 @@ restore_frame_buffer(SavedFrameBuffer *frame_buffer) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::get_untextured_state +// Function: CLP(GraphicsStateGuardian)::get_untextured_state // Access: Protected, Static // Description: Returns a RenderState object that represents // texturing off. //////////////////////////////////////////////////////////////////// -CPT(RenderState) GLGraphicsStateGuardian:: +CPT(RenderState) CLP(GraphicsStateGuardian):: get_untextured_state() { static CPT(RenderState) state; if (state == (RenderState *)NULL) { @@ -3887,23 +3872,23 @@ get_untextured_state() { #ifndef NDEBUG //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::build_phony_mipmaps +// Function: CLP(GraphicsStateGuardian)::build_phony_mipmaps // Access: Protected // Description: Generates a series of colored mipmap levels to aid in // visualizing the mipmap levels as the hardware applies // them. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: build_phony_mipmaps(Texture *tex) { PixelBuffer *pb = tex->_pbuffer; int xsize = pb->get_xsize(); int ysize = pb->get_ysize(); - glgsg_cat.info() + GLCAT.info() << "Building phony mipmap levels for " << tex->get_name() << "\n"; int level = 0; while (xsize > 0 && ysize > 0) { - glgsg_cat.info(false) + GLCAT.info(false) << " level " << level << " is " << xsize << " by " << ysize << "\n"; build_phony_mipmap_level(level, xsize, ysize); @@ -3913,7 +3898,7 @@ build_phony_mipmaps(Texture *tex) { } while (xsize > 0) { - glgsg_cat.info(false) + GLCAT.info(false) << " level " << level << " is " << xsize << " by 1\n"; build_phony_mipmap_level(level, xsize, 1); @@ -3922,7 +3907,7 @@ build_phony_mipmaps(Texture *tex) { } while (ysize > 0) { - glgsg_cat.info(false) + GLCAT.info(false) << " level " << level << " is 1 by " << ysize << "\n"; build_phony_mipmap_level(level, 1, ysize); @@ -3932,11 +3917,11 @@ build_phony_mipmaps(Texture *tex) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::build_phony_mipmap_level +// Function: CLP(GraphicsStateGuardian)::build_phony_mipmap_level // Access: Protected // Description: Generates a single colored mipmap level. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: build_phony_mipmap_level(int level, int xsize, int ysize) { static const int num_levels = 10; static const char *level_filenames[num_levels] = { @@ -3978,7 +3963,7 @@ build_phony_mipmap_level(int level, int xsize, int ysize) { image_sized.quick_filter_from(image_source); } else { - glgsg_cat.info(false) + GLCAT.info(false) << " " << filename << " cannot be read, making solid color mipmap.\n"; image_sized.fill(level_colors[level][0], level_colors[level][1], @@ -3992,7 +3977,7 @@ build_phony_mipmap_level(int level, int xsize, int ysize) { GLenum external_format = get_external_image_format(pb->get_format()); GLenum type = get_image_type(pb->get_image_type()); - glTexImage2D(GL_TEXTURE_2D, level, internal_format, + GLP(TexImage2D)(GL_TEXTURE_2D, level, internal_format, pb->get_xsize(), pb->get_ysize(), pb->get_border(), external_format, type, pb->_image ); @@ -4000,13 +3985,13 @@ build_phony_mipmap_level(int level, int xsize, int ysize) { } //////////////////////////////////////////////////////////////////// -// Function: GLGraphicsStateGuardian::save_mipmap_images +// Function: CLP(GraphicsStateGuardian)::save_mipmap_images // Access: Protected // Description: Saves out each mipmap level of the indicated texture // (which must also be the currently active texture in // the GL state) as a separate image file to disk. //////////////////////////////////////////////////////////////////// -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: save_mipmap_images(Texture *tex) { Filename filename = tex->get_name(); string name; @@ -4039,7 +4024,7 @@ save_mipmap_images(Texture *tex) { new PixelBuffer(xsize, ysize, pb->get_num_components(), pb->get_component_width(), pb->get_image_type(), pb->get_format()); - glGetTexImage(GL_TEXTURE_2D, mipmap_level, external_format, + GLP(GetTexImage)(GL_TEXTURE_2D, mipmap_level, external_format, type, mpb->_image); Filename mipmap_filename = name + "_" + format_string(mipmap_level) + ".rgb"; nout << "Writing mipmap level " << mipmap_level @@ -4054,42 +4039,42 @@ save_mipmap_images(Texture *tex) { } #endif // NDEBUG -TypeHandle GLGraphicsStateGuardian::get_type(void) const { +TypeHandle CLP(GraphicsStateGuardian)::get_type(void) const { return get_class_type(); } -TypeHandle GLGraphicsStateGuardian::get_class_type(void) { +TypeHandle CLP(GraphicsStateGuardian)::get_class_type(void) { return _type_handle; } -void GLGraphicsStateGuardian::init_type(void) { +void CLP(GraphicsStateGuardian)::init_type(void) { GraphicsStateGuardian::init_type(); - register_type(_type_handle, "GLGraphicsStateGuardian", + register_type(_type_handle, CLASSPREFIX_QUOTED "GraphicsStateGuardian", GraphicsStateGuardian::get_class_type()); } #ifdef GSG_VERBOSE -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: dump_state(void) { - if (glgsg_cat.is_debug()) + if (GLCAT.is_debug()) { - ostream &dump = glgsg_cat.debug(false); - glgsg_cat.debug() << "Dumping GL State" << endl; + ostream &dump = GLCAT.debug(false); + GLCAT.debug() << "Dumping GL State" << endl; - dump << "\t\t" << "GL_LINE_SMOOTH " << _line_smooth_enabled << " " << (bool)glIsEnabled(GL_LINE_SMOOTH) << "\n"; - dump << "\t\t" << "GL_POINT_SMOOTH " << _point_smooth_enabled << " " << (bool)glIsEnabled(GL_POINT_SMOOTH) << "\n"; - dump << "\t\t" << "GL_LIGHTING " << _lighting_enabled << " " << (bool)glIsEnabled(GL_LIGHTING) << "\n"; - dump << "\t\t" << "GL_SCISSOR_TEST " << _scissor_enabled << " " << (bool)glIsEnabled(GL_SCISSOR_TEST) << "\n"; - dump << "\t\t" << "GL_TEXTURE_2D " << _texturing_enabled << " " << (bool)glIsEnabled(GL_TEXTURE_2D) << "\n"; - dump << "\t\t" << "GL_STENCIL_TEST " << " " << (bool)glIsEnabled(GL_STENCIL_TEST) << "\n"; - dump << "\t\t" << "GL_BLEND " << _blend_enabled << " " << (bool)glIsEnabled(GL_BLEND) << "\n"; - dump << "\t\t" << "GL_DEPTH_TEST " << _depth_test_enabled << " " << (bool)glIsEnabled(GL_DEPTH_TEST) << "\n"; - dump << "\t\t" << "GL_FOG " << _fog_enabled << " " << (bool)glIsEnabled(GL_FOG) << "\n"; - dump << "\t\t" << "GL_ALPHA_TEST " << _alpha_test_enabled << " " << (bool)glIsEnabled(GL_ALPHA_TEST) << "\n"; - dump << "\t\t" << "GL_POLYGON_OFFSET_FILL " << _polygon_offset_enabled << " " << (bool)glIsEnabled(GL_POLYGON_OFFSET_FILL) << "\n"; + dump << "\t\t" << "GL_LINE_SMOOTH " << _line_smooth_enabled << " " << (bool)GLP(IsEnabled)(GL_LINE_SMOOTH) << "\n"; + dump << "\t\t" << "GL_POINT_SMOOTH " << _point_smooth_enabled << " " << (bool)GLP(IsEnabled)(GL_POINT_SMOOTH) << "\n"; + dump << "\t\t" << "GL_LIGHTING " << _lighting_enabled << " " << (bool)GLP(IsEnabled)(GL_LIGHTING) << "\n"; + dump << "\t\t" << "GL_SCISSOR_TEST " << _scissor_enabled << " " << (bool)GLP(IsEnabled)(GL_SCISSOR_TEST) << "\n"; + dump << "\t\t" << "GL_TEXTURE_2D " << _texturing_enabled << " " << (bool)GLP(IsEnabled)(GL_TEXTURE_2D) << "\n"; + dump << "\t\t" << "GL_STENCIL_TEST " << " " << (bool)GLP(IsEnabled)(GL_STENCIL_TEST) << "\n"; + dump << "\t\t" << "GL_BLEND " << _blend_enabled << " " << (bool)GLP(IsEnabled)(GL_BLEND) << "\n"; + dump << "\t\t" << "GL_DEPTH_TEST " << _depth_test_enabled << " " << (bool)GLP(IsEnabled)(GL_DEPTH_TEST) << "\n"; + dump << "\t\t" << "GL_FOG " << _fog_enabled << " " << (bool)GLP(IsEnabled)(GL_FOG) << "\n"; + dump << "\t\t" << "GL_ALPHA_TEST " << _alpha_test_enabled << " " << (bool)GLP(IsEnabled)(GL_ALPHA_TEST) << "\n"; + dump << "\t\t" << "GL_POLYGON_OFFSET_FILL " << _polygon_offset_enabled << " " << (bool)GLP(IsEnabled)(GL_POLYGON_OFFSET_FILL) << "\n"; dump << endl; } @@ -4098,7 +4083,7 @@ dump_state(void) #else // GSG_VERBOSE // This function does nothing unless GSG_VERBOSE is compiled in. -void GLGraphicsStateGuardian:: +void CLP(GraphicsStateGuardian):: dump_state(void) { } diff --git a/panda/src/glgsg/glGraphicsStateGuardian.h b/panda/src/glstuff/glGraphicsStateGuardian_src.h similarity index 92% rename from panda/src/glgsg/glGraphicsStateGuardian.h rename to panda/src/glstuff/glGraphicsStateGuardian_src.h index c8f63574a9..0996e2fb5d 100644 --- a/panda/src/glgsg/glGraphicsStateGuardian.h +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.h @@ -1,4 +1,4 @@ -// Filename: glGraphicsStateGuardian.h +// Filename: glGraphicsStateGuardian_src.h // Created by: drose (02Feb99) // //////////////////////////////////////////////////////////////////// @@ -16,11 +16,6 @@ // //////////////////////////////////////////////////////////////////// -#ifndef GLGRAPHICSSTATEGUARDIAN_H -#define GLGRAPHICSSTATEGUARDIAN_H - -//#define GSG_VERBOSE 1 - #include "pandabase.h" #include "graphicsStateGuardian.h" @@ -33,38 +28,21 @@ #include "textureApplyAttrib.h" #include "pointerToArray.h" #include "fog.h" - -#ifdef WIN32_VC -// Must include windows.h before gl.h on NT -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#endif - -#include - +#include "graphicsWindow.h" class PlaneNode; class Light; -#if !defined(WIN32) && defined(GSG_VERBOSE) -ostream &output_gl_enum(ostream &out, GLenum v); -INLINE ostream &operator << (ostream &out, GLenum v) { - return output_gl_enum(out, v); -} -#endif - - //////////////////////////////////////////////////////////////////// // Class : GLGraphicsStateGuardian // Description : A GraphicsStateGuardian specialized for rendering // into OpenGL contexts. There should be no GL calls // outside of this object. //////////////////////////////////////////////////////////////////// -class EXPCL_PANDAGL GLGraphicsStateGuardian : public GraphicsStateGuardian { +class EXPCL_GL CLP(GraphicsStateGuardian) : public GraphicsStateGuardian { public: - GLGraphicsStateGuardian(const FrameBufferProperties &properties); - virtual ~GLGraphicsStateGuardian(); + CLP(GraphicsStateGuardian)(const FrameBufferProperties &properties); + virtual ~CLP(GraphicsStateGuardian)(); virtual void reset(); @@ -332,22 +310,4 @@ private: static TypeHandle _type_handle; }; -#ifdef DO_PSTATS -#define DO_PSTATS_STUFF(XX) XX; -#else -#define DO_PSTATS_STUFF(XX) -#endif - -#define ISPOW2(X) (((X) & ((X)-1))==0) - -#ifndef NDEBUG -#define report_gl_errors() \ - GLGraphicsStateGuardian::report_errors(__LINE__, __FILE__) -#else -#define report_gl_errors() -#endif - -#include "glGraphicsStateGuardian.I" - -#endif - +#include "glGraphicsStateGuardian_src.I" diff --git a/panda/src/glgsg/glSavedFrameBuffer.I b/panda/src/glstuff/glSavedFrameBuffer_src.I similarity index 76% rename from panda/src/glgsg/glSavedFrameBuffer.I rename to panda/src/glstuff/glSavedFrameBuffer_src.I index 923416b4f0..f69534eefd 100644 --- a/panda/src/glgsg/glSavedFrameBuffer.I +++ b/panda/src/glstuff/glSavedFrameBuffer_src.I @@ -1,4 +1,4 @@ -// Filename: glSavedFrameBuffer.I +// Filename: glSavedFrameBuffer_src.I // Created by: drose (06Oct99) // //////////////////////////////////////////////////////////////////// @@ -18,22 +18,22 @@ //////////////////////////////////////////////////////////////////// -// Function: GLSavedFrameBuffer::Constructor +// Function: CLP(SavedFrameBuffer)::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE GLSavedFrameBuffer:: -GLSavedFrameBuffer(const RenderBuffer &buffer, CPT(DisplayRegion) dr) : +INLINE CLP(SavedFrameBuffer):: +CLP(SavedFrameBuffer)(const RenderBuffer &buffer, CPT(DisplayRegion) dr) : SavedFrameBuffer(buffer, dr) { } //////////////////////////////////////////////////////////////////// -// Function: GLSavedFrameBuffer::Destructor +// Function: CLP(SavedFrameBuffer)::Destructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE GLSavedFrameBuffer:: -~GLSavedFrameBuffer() { +INLINE CLP(SavedFrameBuffer):: +~CLP(SavedFrameBuffer)() { } diff --git a/panda/src/glgsg/glSavedFrameBuffer.cxx b/panda/src/glstuff/glSavedFrameBuffer_src.cxx similarity index 89% rename from panda/src/glgsg/glSavedFrameBuffer.cxx rename to panda/src/glstuff/glSavedFrameBuffer_src.cxx index bf182d3566..a7ee99e3bb 100644 --- a/panda/src/glgsg/glSavedFrameBuffer.cxx +++ b/panda/src/glstuff/glSavedFrameBuffer_src.cxx @@ -16,6 +16,4 @@ // //////////////////////////////////////////////////////////////////// -#include "glSavedFrameBuffer.h" - -TypeHandle GLSavedFrameBuffer::_type_handle; +TypeHandle CLP(SavedFrameBuffer)::_type_handle; diff --git a/panda/src/glgsg/glSavedFrameBuffer.h b/panda/src/glstuff/glSavedFrameBuffer_src.h similarity index 75% rename from panda/src/glgsg/glSavedFrameBuffer.h rename to panda/src/glstuff/glSavedFrameBuffer_src.h index 0de6353919..78657e427a 100644 --- a/panda/src/glgsg/glSavedFrameBuffer.h +++ b/panda/src/glstuff/glSavedFrameBuffer_src.h @@ -1,4 +1,4 @@ -// Filename: glSavedFrameBuffer.h +// Filename: glSavedFrameBuffer_src.h // Created by: drose (06Oct99) // //////////////////////////////////////////////////////////////////// @@ -16,26 +16,23 @@ // //////////////////////////////////////////////////////////////////// -#ifndef GLSAVEDFRAMEBUFFER_H -#define GLSAVEDFRAMEBUFFER_H - #include "pandabase.h" -#include -#include -#include -#include +#include "savedFrameBuffer.h" +#include "texture.h" +#include "textureContext.h" +#include "pixelBuffer.h" //////////////////////////////////////////////////////////////////// // Class : GLSavedFrameBuffer // Description : //////////////////////////////////////////////////////////////////// -class EXPCL_PANDAGL GLSavedFrameBuffer : public SavedFrameBuffer { +class EXPCL_GL CLP(SavedFrameBuffer) : public SavedFrameBuffer { public: - INLINE GLSavedFrameBuffer(const RenderBuffer &buffer, + INLINE CLP(SavedFrameBuffer)(const RenderBuffer &buffer, CPT(DisplayRegion) dr); - INLINE ~GLSavedFrameBuffer(); + INLINE ~CLP(SavedFrameBuffer)(); PT(Texture) _back_rgba; PT(PixelBuffer) _depth; @@ -46,7 +43,7 @@ public: } static void init_type() { SavedFrameBuffer::init_type(); - register_type(_type_handle, "GLSavedFrameBuffer", + register_type(_type_handle, CLASSPREFIX_QUOTED "SavedFrameBuffer", SavedFrameBuffer::get_class_type()); } virtual TypeHandle get_type() const { @@ -58,7 +55,5 @@ private: static TypeHandle _type_handle; }; -#include "glSavedFrameBuffer.I" - -#endif +#include "glSavedFrameBuffer_src.I" diff --git a/panda/src/glgsg/glTextureContext.I b/panda/src/glstuff/glTextureContext_src.I similarity index 85% rename from panda/src/glgsg/glTextureContext.I rename to panda/src/glstuff/glTextureContext_src.I index d368419c45..ccd306082d 100644 --- a/panda/src/glgsg/glTextureContext.I +++ b/panda/src/glstuff/glTextureContext_src.I @@ -1,4 +1,4 @@ -// Filename: glTextureContext.I +// Filename: glTextureContext_src.I // Created by: drose (07Oct99) // //////////////////////////////////////////////////////////////////// @@ -18,12 +18,12 @@ //////////////////////////////////////////////////////////////////// -// Function: GLTextureContext::Constructor +// Function: CLP(TextureContext)::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -INLINE GLTextureContext:: -GLTextureContext(Texture *tex) : +INLINE CLP(TextureContext):: +CLP(TextureContext)(Texture *tex) : TextureContext(tex) { _index = 0; diff --git a/panda/src/glgsg/glTextureContext.cxx b/panda/src/glstuff/glTextureContext_src.cxx similarity index 89% rename from panda/src/glgsg/glTextureContext.cxx rename to panda/src/glstuff/glTextureContext_src.cxx index 7e988418d7..5c17ea3028 100644 --- a/panda/src/glgsg/glTextureContext.cxx +++ b/panda/src/glstuff/glTextureContext_src.cxx @@ -16,6 +16,4 @@ // //////////////////////////////////////////////////////////////////// -#include "glTextureContext.h" - -TypeHandle GLTextureContext::_type_handle; +TypeHandle CLP(TextureContext)::_type_handle; diff --git a/panda/src/glgsg/glTextureContext.h b/panda/src/glstuff/glTextureContext_src.h similarity index 74% rename from panda/src/glgsg/glTextureContext.h rename to panda/src/glstuff/glTextureContext_src.h index 0cbe18efa7..07f7ff1ebc 100644 --- a/panda/src/glgsg/glTextureContext.h +++ b/panda/src/glstuff/glTextureContext_src.h @@ -1,4 +1,4 @@ -// Filename: glTextureContext.h +// Filename: glTextureContext_src.h // Created by: drose (07Oct99) // //////////////////////////////////////////////////////////////////// @@ -16,28 +16,16 @@ // //////////////////////////////////////////////////////////////////// -#ifndef GLTEXTURECONTEXT_H -#define GLTEXTURECONTEXT_H - #include "pandabase.h" - -#ifdef WIN32_VC -// Must include windows.h before gl.h on NT -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#endif - -#include -#include +#include "textureContext.h" //////////////////////////////////////////////////////////////////// // Class : GLTextureContext // Description : //////////////////////////////////////////////////////////////////// -class EXPCL_PANDAGL GLTextureContext : public TextureContext { +class EXPCL_GL CLP(TextureContext) : public TextureContext { public: - INLINE GLTextureContext(Texture *tex); + INLINE CLP(TextureContext)(Texture *tex); // This is the GL "name" of the texture object. GLuint _index; @@ -51,7 +39,7 @@ public: } static void init_type() { TextureContext::init_type(); - register_type(_type_handle, "GLTextureContext", + register_type(_type_handle, CLASSPREFIX_QUOTED "TextureContext", TextureContext::get_class_type()); } virtual TypeHandle get_type() const { @@ -63,7 +51,5 @@ private: static TypeHandle _type_handle; }; -#include "glTextureContext.I" - -#endif +#include "glTextureContext_src.I" diff --git a/panda/src/glstuff/glmisc_src.cxx b/panda/src/glstuff/glmisc_src.cxx new file mode 100644 index 0000000000..c71be889c0 --- /dev/null +++ b/panda/src/glstuff/glmisc_src.cxx @@ -0,0 +1,87 @@ +// Filename: glmisc_src.cxx +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + + +// Configure this true to GLP(Hint) the textures into the cheapest +// possible mode. +bool CLP(cheap_textures) = CONFIGOBJ.GetBool("gl-cheap-textures", false); + +// Configure this true to ignore texture modes like modulate that +// blend texture color with polygon color (a little cheaper for +// software renderers). +bool CLP(always_decal_textures) = CONFIGOBJ.GetBool("gl-always-decal-textures", false); + +// Configure this true to disable texture clamp mode (all textures +// repeat, a little cheaper for software renderers). +bool CLP(ignore_clamp) = CONFIGOBJ.GetBool("gl-ignore-clamp", false); + +// Configure this true to disable any texture filters at all (forcing +// point sampling). +bool CLP(ignore_filters) = CONFIGOBJ.GetBool("gl-ignore-filters", false); + +// Configure this true to disable mipmapping only. +bool CLP(ignore_mipmaps) = CONFIGOBJ.GetBool("gl-ignore-mipmaps", false) || CLP(ignore_filters); + +// Configure this true to enable full trilinear mipmapping on every +// texture, whether it asks for it or not. +bool CLP(force_mipmaps) = CONFIGOBJ.GetBool("gl-force-mipmaps", false); + +// Configure this true to cause mipmaps to be rendered with phony +// colors, using mipmap_level_*.rgb if they are available. +bool CLP(show_mipmaps) = CONFIGOBJ.GetBool("gl-show-mipmaps", false); + +// Configure this true to cause the generated mipmap images to be +// written out to image files on the disk as they are generated. +bool CLP(save_mipmaps) = CONFIGOBJ.GetBool("gl-save-mipmaps", false); + +// Configure this true to cause all lighting normals to automatically +// be normalized by the graphics hardware before rendering. This is +// necessary if you intend to render things under scale transforms and +// expect lighting to work correctly. Maybe one day there will be +// another way to set this at runtime, instead of only as a configure +// variable. +bool CLP(auto_normalize_lighting) = CONFIGOBJ.GetBool("auto-normalize-lighting", true); + +// Configure this true to try to implement decals using a +// DepthOffsetAttrib, false to do them with the more reliable 3-pass +// rendering method instead. +bool CLP(depth_offset_decals) = CONFIGOBJ.GetBool("depth-offset-decals", false); + +// Configure this true to indicate the current version of GL fully +// supports textures with B, G, R ordering; false if it only supports +// R, G, B. false will always work, but true might be faster if the +// implementation supports it. +#ifdef GL_BGR +bool CLP(supports_bgr) = CONFIGOBJ.GetBool("gl-supports-bgr", false); +#else +// If it's not even defined, we can't use it. +bool CLP(supports_bgr) = false; +#endif // GL_BGR + +// Configure this false if your GL's implementation of GLP(ColorMask)() +// is broken (some are). This will force the use of a (presumably) +// more expensive blending operation instead. +bool CLP(color_mask) = CONFIGOBJ.GetBool("gl-color-mask", true); + +void CLP(init_classes)() { + CLP(GraphicsStateGuardian)::init_type(); + CLP(SavedFrameBuffer)::init_type(); + CLP(TextureContext)::init_type(); + CLP(GeomNodeContext)::init_type(); +} + diff --git a/panda/src/glstuff/glmisc_src.h b/panda/src/glstuff/glmisc_src.h new file mode 100644 index 0000000000..fa2e0a4f15 --- /dev/null +++ b/panda/src/glstuff/glmisc_src.h @@ -0,0 +1,60 @@ +// Filename: glmisc_src.h +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +#include "pandabase.h" + +//#define GSG_VERBOSE 1 + +extern bool CLP(cheap_textures); +extern bool CLP(always_decal_textures); +extern bool CLP(ignore_clamp); +extern bool CLP(ignore_filters); +extern bool CLP(ignore_mipmaps); +extern bool CLP(force_mipmaps); +extern bool CLP(show_mipmaps); +extern bool CLP(save_mipmaps); +extern bool CLP(auto_normalize_lighting); +extern bool CLP(depth_offset_decals); +extern bool CLP(supports_bgr); +extern bool CLP(color_mask); + +extern EXPCL_GL void CLP(init_classes)(); + + +#if !defined(WIN32) && defined(GSG_VERBOSE) +ostream &output_gl_enum(ostream &out, GLenum v); +INLINE ostream &operator << (ostream &out, GLenum v) { + return output_gl_enum(out, v); +} +#endif + + +#ifdef DO_PSTATS +#define DO_PSTATS_STUFF(XX) XX; +#else +#define DO_PSTATS_STUFF(XX) +#endif + +#define ISPOW2(X) (((X) & ((X)-1))==0) + +#ifndef NDEBUG +#define report_gl_errors() \ + CLP(GraphicsStateGuardian)::report_errors(__LINE__, __FILE__) +#else +#define report_gl_errors() +#endif diff --git a/panda/src/glstuff/glpure.cxx b/panda/src/glstuff/glpure.cxx new file mode 100644 index 0000000000..e9b8440dac --- /dev/null +++ b/panda/src/glstuff/glpure.cxx @@ -0,0 +1,26 @@ +// Filename: glpure.cxx +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +#include "pandabase.h" + +// This is the one file in this directory which is actually compiled. +// It exists just so we can have some symbols and make the compiler +// happy. + +int glpure; + diff --git a/panda/src/glstuff/glstuff_src.cxx b/panda/src/glstuff/glstuff_src.cxx new file mode 100644 index 0000000000..ea6bb7f5ba --- /dev/null +++ b/panda/src/glstuff/glstuff_src.cxx @@ -0,0 +1,29 @@ +// Filename: glstuff_src.cxx +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +// This .cxx file includes all of the gl-related .cxx files in this +// directory. It works just like glstuff_src.h; see the comments in +// that file for an explanation for what you're supposed to declare in +// order to include this file. + +#include "glmisc_src.cxx" +#include "glGeomNodeContext_src.cxx" +#include "glTextureContext_src.cxx" +#include "glSavedFrameBuffer_src.cxx" +#include "glGraphicsStateGuardian_src.cxx" + diff --git a/panda/src/glstuff/glstuff_src.h b/panda/src/glstuff/glstuff_src.h new file mode 100644 index 0000000000..7cec5f59af --- /dev/null +++ b/panda/src/glstuff/glstuff_src.h @@ -0,0 +1,44 @@ +// Filename: glstuff_src.h +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +// This header file includes all of the gl-related header files in +// this directory. To include a CLP(GraphicsStateGuardian)-like thing of +// some kind (e.g., "true" GL calls, or Mesa-prefixed GL calls, or +// some such), define the following symbols and #include this header +// file. + +// #define GLP(name): returns name prefixed by the gl prefix, e.g. gl##name +// #define CLP(name): returns name prefixed by the class prefix, e.g. GL##name +// #define CLASSPREFIX_QUOTED: the quoted prefix of CLP, e.g. "GL" +// #define CONFIGOBJ: a Configrc object, e.g. config_glgsg +// #define GLCAT: a Notify category, e.g. glgsg_cat +// #define EXPCL_GL, EXPTP_GL: according to the DLL currently being compiled. + +// Also, be sure you include the appropriate GL.h header file to get +// all the GL symbols declared. + +// This file is not protected from multiple inclusion; it may need to +// be included multiple times. + + +#include "glmisc_src.h" +#include "glGeomNodeContext_src.h" +#include "glTextureContext_src.h" +#include "glSavedFrameBuffer_src.h" +#include "glGraphicsStateGuardian_src.h" + diff --git a/panda/src/glstuff/glstuff_undef_src.h b/panda/src/glstuff/glstuff_undef_src.h new file mode 100644 index 0000000000..3243c98f12 --- /dev/null +++ b/panda/src/glstuff/glstuff_undef_src.h @@ -0,0 +1,29 @@ +// Filename: glstuff_undef_src.h +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +// This header file #undefs all the stuff you had to #define to +// include glstuff_src.h or glstuff_src.cxx. + +#undef GLP +#undef CLP +#undef CLASSPREFIX_QUOTED +#undef CONFIGOBJ +#undef GLCAT +#undef EXPCL +#undef EXPTP + diff --git a/panda/src/glxdisplay/glxGraphicsBuffer.cxx b/panda/src/glxdisplay/glxGraphicsBuffer.cxx index e3912eab5d..b3eb2f14ca 100644 --- a/panda/src/glxdisplay/glxGraphicsBuffer.cxx +++ b/panda/src/glxdisplay/glxGraphicsBuffer.cxx @@ -22,7 +22,7 @@ #include "glxGraphicsPipe.h" #include "graphicsPipe.h" -#include "glGraphicsStateGuardian.h" +#include "glgsg.h" TypeHandle glxGraphicsBuffer::_type_handle; diff --git a/panda/src/glxdisplay/glxGraphicsStateGuardian.h b/panda/src/glxdisplay/glxGraphicsStateGuardian.h index 6b1d2bed47..bf9a3b3e8c 100644 --- a/panda/src/glxdisplay/glxGraphicsStateGuardian.h +++ b/panda/src/glxdisplay/glxGraphicsStateGuardian.h @@ -21,7 +21,7 @@ #include "pandabase.h" -#include "glGraphicsStateGuardian.h" +#include "glgsg.h" #include "glxGraphicsPipe.h" //////////////////////////////////////////////////////////////////// diff --git a/panda/src/glxdisplay/glxGraphicsWindow.cxx b/panda/src/glxdisplay/glxGraphicsWindow.cxx index 42f8bfcb0d..f1ddf4ba77 100644 --- a/panda/src/glxdisplay/glxGraphicsWindow.cxx +++ b/panda/src/glxdisplay/glxGraphicsWindow.cxx @@ -24,7 +24,7 @@ #include "graphicsPipe.h" #include "keyboardButton.h" #include "mouseButton.h" -#include "glGraphicsStateGuardian.h" +#include "glgsg.h" #include "clockObject.h" #include diff --git a/panda/src/mesadisplay/Sources.pp b/panda/src/mesadisplay/Sources.pp index ac519b4f51..afcb9dcec3 100644 --- a/panda/src/mesadisplay/Sources.pp +++ b/panda/src/mesadisplay/Sources.pp @@ -1,22 +1,25 @@ #define BUILD_DIRECTORY $[HAVE_MESA] +#define BUILDING_DLL BUILDING_PANDAMESA #define OTHER_LIBS interrogatedb:c dconfig:c dtoolconfig:m \ dtoolutil:c dtoolbase:c dtool:m -#define USE_PACKAGES gl mesa +#define USE_PACKAGES mesa #begin lib_target #define TARGET mesadisplay #define LOCAL_LIBS \ - glgsg + glstuff gsgmisc gsgbase gobj display \ + putil linmath mathutil pnmimage #define SOURCES \ config_mesadisplay.cxx config_mesadisplay.h \ - mesaGraphicsBuffer.I mesaGraphicsBuffer.cxx mesaGraphicsBuffer.h \ - mesaGraphicsPipe.I mesaGraphicsPipe.cxx mesaGraphicsPipe.h \ - mesaGraphicsStateGuardian.h mesaGraphicsStateGuardian.cxx \ - mesaGraphicsStateGuardian.I + mesagsg.h mesagsg.cxx \ + osMesaGraphicsBuffer.I osMesaGraphicsBuffer.cxx osMesaGraphicsBuffer.h \ + osMesaGraphicsPipe.I osMesaGraphicsPipe.cxx osMesaGraphicsPipe.h \ + osMesaGraphicsStateGuardian.h osMesaGraphicsStateGuardian.cxx \ + osMesaGraphicsStateGuardian.I - #define IGATESCAN mesaGraphicsPipe.h + #define IGATESCAN osMesaGraphicsPipe.h #end lib_target diff --git a/panda/src/mesadisplay/config_mesadisplay.cxx b/panda/src/mesadisplay/config_mesadisplay.cxx index 6a9e0401ad..4761ab1c15 100644 --- a/panda/src/mesadisplay/config_mesadisplay.cxx +++ b/panda/src/mesadisplay/config_mesadisplay.cxx @@ -17,13 +17,14 @@ //////////////////////////////////////////////////////////////////// #include "config_mesadisplay.h" -#include "mesaGraphicsBuffer.h" -#include "mesaGraphicsPipe.h" -#include "mesaGraphicsStateGuardian.h" +#include "osMesaGraphicsBuffer.h" +#include "osMesaGraphicsPipe.h" +#include "osMesaGraphicsStateGuardian.h" #include "graphicsPipeSelection.h" #include "dconfig.h" +#include "mesagsg.h" -Configure(config_mesadisplay); +ConfigureDef(config_mesadisplay); NotifyCategoryDef(mesadisplay, "display"); ConfigureFn(config_mesadisplay) { @@ -46,12 +47,13 @@ init_libmesadisplay() { } initialized = true; - MesaGraphicsBuffer::init_type(); - MesaGraphicsPipe::init_type(); - MesaGraphicsStateGuardian::init_type(); + OsMesaGraphicsBuffer::init_type(); + OsMesaGraphicsPipe::init_type(); + OSMesaGraphicsStateGuardian::init_type(); - cerr << "Adding MesaGraphicsPipe\n"; GraphicsPipeSelection *selection = GraphicsPipeSelection::get_global_ptr(); - selection->add_pipe_type(MesaGraphicsPipe::get_class_type(), - MesaGraphicsPipe::pipe_constructor); + selection->add_pipe_type(OsMesaGraphicsPipe::get_class_type(), + OsMesaGraphicsPipe::pipe_constructor); + + Mesainit_classes(); } diff --git a/panda/src/mesadisplay/config_mesadisplay.h b/panda/src/mesadisplay/config_mesadisplay.h index 629afe19e0..df388987dd 100644 --- a/panda/src/mesadisplay/config_mesadisplay.h +++ b/panda/src/mesadisplay/config_mesadisplay.h @@ -21,9 +21,11 @@ #include "pandabase.h" #include "notifyCategoryProxy.h" +#include "dconfig.h" -NotifyCategoryDecl(mesadisplay, EXPCL_PANDAGL, EXPTP_PANDAGL); +ConfigureDecl(config_mesadisplay, EXPCL_PANDAMESA, EXPTP_PANDAMESA); +NotifyCategoryDecl(mesadisplay, EXPCL_PANDAMESA, EXPTP_PANDAMESA); -extern EXPCL_PANDAGL void init_libmesadisplay(); +extern EXPCL_PANDAMESA void init_libmesadisplay(); #endif diff --git a/panda/src/mesadisplay/mesagsg.cxx b/panda/src/mesadisplay/mesagsg.cxx new file mode 100644 index 0000000000..e5025254bf --- /dev/null +++ b/panda/src/mesadisplay/mesagsg.cxx @@ -0,0 +1,24 @@ +// Filename: mesagsg.cxx +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +// This is the actual .cxx file to include if you want to pick up +// any or all of the header files in this directory as compiled to use +// the Mesa library. + +#include "mesagsg.h" +#include "glstuff_src.cxx" diff --git a/panda/src/mesadisplay/mesagsg.h b/panda/src/mesadisplay/mesagsg.h new file mode 100644 index 0000000000..a833219f89 --- /dev/null +++ b/panda/src/mesadisplay/mesagsg.h @@ -0,0 +1,46 @@ +// Filename: mesagsg.h +// Created by: drose (09Feb04) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +#ifndef MESAGSG_H +#define MESAGSG_H + +// This is the actual header file to include if you want to pick up +// any or all of the header files in this directory as compiled to use +// the Mesa library. + +#include "pandabase.h" +#include "config_mesadisplay.h" + +#ifdef USE_MGL_NAMESPACE + #define GLP(name) mgl##name +#else + #define GLP(name) gl##name +#endif +#define CLP(name) Mesa##name +#define CLASSPREFIX_QUOTED "Mesa" +#define CONFIGOBJ config_mesadisplay +#define GLCAT mesadisplay_cat +#define EXPCL_GL EXPCL_PANDAMESA +#define EXPTP_GL EXPTP_PANDAMESA + +#include +#include + +#include "glstuff_src.h" + +#endif // MESAGSG_H diff --git a/panda/src/mesadisplay/mesaGraphicsPipe.I b/panda/src/mesadisplay/osMesaGraphicsBuffer.I similarity index 94% rename from panda/src/mesadisplay/mesaGraphicsPipe.I rename to panda/src/mesadisplay/osMesaGraphicsBuffer.I index 4b984fe9ca..02bb53c53a 100644 --- a/panda/src/mesadisplay/mesaGraphicsPipe.I +++ b/panda/src/mesadisplay/osMesaGraphicsBuffer.I @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsPipe.I +// Filename: osMesaGraphicsBuffer.I // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// diff --git a/panda/src/mesadisplay/mesaGraphicsBuffer.cxx b/panda/src/mesadisplay/osMesaGraphicsBuffer.cxx similarity index 82% rename from panda/src/mesadisplay/mesaGraphicsBuffer.cxx rename to panda/src/mesadisplay/osMesaGraphicsBuffer.cxx index 407f60b640..b75e3f00b2 100644 --- a/panda/src/mesadisplay/mesaGraphicsBuffer.cxx +++ b/panda/src/mesadisplay/osMesaGraphicsBuffer.cxx @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsBuffer.cxx +// Filename: osMesaGraphicsBuffer.cxx // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// @@ -16,20 +16,20 @@ // //////////////////////////////////////////////////////////////////// -#include "mesaGraphicsBuffer.h" +#include "osMesaGraphicsBuffer.h" #include "config_mesadisplay.h" -#include "mesaGraphicsPipe.h" -#include "mesaGraphicsStateGuardian.h" +#include "osMesaGraphicsPipe.h" +#include "osMesaGraphicsStateGuardian.h" -TypeHandle MesaGraphicsBuffer::_type_handle; +TypeHandle OsMesaGraphicsBuffer::_type_handle; //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsBuffer::Constructor +// Function: OsMesaGraphicsBuffer::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -MesaGraphicsBuffer:: -MesaGraphicsBuffer(GraphicsPipe *pipe, GraphicsStateGuardian *gsg, +OsMesaGraphicsBuffer:: +OsMesaGraphicsBuffer(GraphicsPipe *pipe, GraphicsStateGuardian *gsg, int x_size, int y_size, bool want_texture) : GraphicsBuffer(pipe, gsg, x_size, y_size, want_texture) { @@ -37,24 +37,24 @@ MesaGraphicsBuffer(GraphicsPipe *pipe, GraphicsStateGuardian *gsg, } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsBuffer::Destructor +// Function: OsMesaGraphicsBuffer::Destructor // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -MesaGraphicsBuffer:: -~MesaGraphicsBuffer() { +OsMesaGraphicsBuffer:: +~OsMesaGraphicsBuffer() { } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsBuffer::make_current +// Function: OsMesaGraphicsBuffer::make_current // Access: Public, Virtual // Description: This function will be called within the draw thread // during begin_frame() to ensure the graphics context // is ready for drawing. //////////////////////////////////////////////////////////////////// -void MesaGraphicsBuffer:: +void OsMesaGraphicsBuffer:: make_current() { - MesaGraphicsStateGuardian *mesagsg; + OSMesaGraphicsStateGuardian *mesagsg; DCAST_INTO_V(mesagsg, _gsg); OSMesaMakeCurrent(mesagsg->_context, _image.p(), _type, _x_size, _y_size); @@ -63,7 +63,7 @@ make_current() { } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsBuffer::begin_flip +// Function: OsMesaGraphicsBuffer::begin_flip // Access: Public, Virtual // Description: This function will be called within the draw thread // after end_frame() has been called on all windows, to @@ -76,7 +76,7 @@ make_current() { // end_flip(), to make it easier to flip all of the // windows at the same time. //////////////////////////////////////////////////////////////////// -void MesaGraphicsBuffer:: +void OsMesaGraphicsBuffer:: begin_flip() { if (has_texture()) { // Use glCopyTexImage2D to copy the framebuffer to the texture. @@ -89,25 +89,25 @@ begin_flip() { } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsBuffer::close_buffer +// Function: OsMesaGraphicsBuffer::close_buffer // Access: Protected, Virtual // Description: Closes the buffer right now. Called from the window // thread. //////////////////////////////////////////////////////////////////// -void MesaGraphicsBuffer:: +void OsMesaGraphicsBuffer:: close_buffer() { _image.clear(); _is_valid = false; } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsBuffer::open_buffer +// Function: OsMesaGraphicsBuffer::open_buffer // Access: Protected, Virtual // Description: Opens the buffer right now. Called from the window // thread. Returns true if the buffer is successfully // opened, or false if there was a problem. //////////////////////////////////////////////////////////////////// -bool MesaGraphicsBuffer:: +bool OsMesaGraphicsBuffer:: open_buffer() { _image = PTA_uchar::empty_array(_x_size * _y_size * 4); _is_valid = true; diff --git a/panda/src/mesadisplay/mesaGraphicsBuffer.h b/panda/src/mesadisplay/osMesaGraphicsBuffer.h similarity index 79% rename from panda/src/mesadisplay/mesaGraphicsBuffer.h rename to panda/src/mesadisplay/osMesaGraphicsBuffer.h index f7505029af..d02943861f 100644 --- a/panda/src/mesadisplay/mesaGraphicsBuffer.h +++ b/panda/src/mesadisplay/osMesaGraphicsBuffer.h @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsBuffer.h +// Filename: osMesaGraphicsBuffer.h // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// @@ -16,26 +16,26 @@ // //////////////////////////////////////////////////////////////////// -#ifndef MESAGRAPHICSBUFFER_H -#define MESAGRAPHICSBUFFER_H +#ifndef OSMESAGRAPHICSBUFFER_H +#define OSMESAGRAPHICSBUFFER_H #include "pandabase.h" -#include "mesaGraphicsPipe.h" +#include "osMesaGraphicsPipe.h" #include "graphicsBuffer.h" //////////////////////////////////////////////////////////////////// -// Class : MesaGraphicsBuffer +// Class : OsMesaGraphicsBuffer // Description : An offscreen buffer using direct calls to Mesa. This // is the only kind of graphics output supported by // osmesa.h. //////////////////////////////////////////////////////////////////// -class MesaGraphicsBuffer : public GraphicsBuffer { +class EXPCL_PANDAMESA OsMesaGraphicsBuffer : public GraphicsBuffer { public: - MesaGraphicsBuffer(GraphicsPipe *pipe, GraphicsStateGuardian *gsg, + OsMesaGraphicsBuffer(GraphicsPipe *pipe, GraphicsStateGuardian *gsg, int x_size, int y_size, bool want_texture); - virtual ~MesaGraphicsBuffer(); + virtual ~OsMesaGraphicsBuffer(); virtual void make_current(); @@ -55,7 +55,7 @@ public: } static void init_type() { GraphicsBuffer::init_type(); - register_type(_type_handle, "MesaGraphicsBuffer", + register_type(_type_handle, "OsMesaGraphicsBuffer", GraphicsBuffer::get_class_type()); } virtual TypeHandle get_type() const { @@ -67,6 +67,6 @@ private: static TypeHandle _type_handle; }; -#include "mesaGraphicsBuffer.I" +#include "osMesaGraphicsBuffer.I" #endif diff --git a/panda/src/mesadisplay/mesaGraphicsBuffer.I b/panda/src/mesadisplay/osMesaGraphicsPipe.I similarity index 94% rename from panda/src/mesadisplay/mesaGraphicsBuffer.I rename to panda/src/mesadisplay/osMesaGraphicsPipe.I index 8d18eec6bb..59c29af6f8 100644 --- a/panda/src/mesadisplay/mesaGraphicsBuffer.I +++ b/panda/src/mesadisplay/osMesaGraphicsPipe.I @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsBuffer.I +// Filename: osMesaGraphicsPipe.I // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// diff --git a/panda/src/mesadisplay/mesaGraphicsPipe.cxx b/panda/src/mesadisplay/osMesaGraphicsPipe.cxx similarity index 74% rename from panda/src/mesadisplay/mesaGraphicsPipe.cxx rename to panda/src/mesadisplay/osMesaGraphicsPipe.cxx index cd51f4545f..9c1ffd7da9 100644 --- a/panda/src/mesadisplay/mesaGraphicsPipe.cxx +++ b/panda/src/mesadisplay/osMesaGraphicsPipe.cxx @@ -1,5 +1,5 @@ -// Filename: mesaGraphicsPipe.cxx -// Created by: mike (09Jan97) +// Filename: osMesaGraphicsPipe.cxx +// Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// // @@ -16,37 +16,37 @@ // //////////////////////////////////////////////////////////////////// -#include "mesaGraphicsPipe.h" -#include "mesaGraphicsBuffer.h" -#include "mesaGraphicsStateGuardian.h" +#include "osMesaGraphicsPipe.h" +#include "osMesaGraphicsBuffer.h" +#include "osMesaGraphicsStateGuardian.h" #include "config_mesadisplay.h" #include "frameBufferProperties.h" #include "mutexHolder.h" -TypeHandle MesaGraphicsPipe::_type_handle; +TypeHandle OsMesaGraphicsPipe::_type_handle; //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsPipe::Constructor +// Function: OsMesaGraphicsPipe::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -MesaGraphicsPipe:: -MesaGraphicsPipe() { +OsMesaGraphicsPipe:: +OsMesaGraphicsPipe() { _supported_types = OT_buffer | OT_texture_buffer; _is_valid = true; } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsPipe::Destructor +// Function: OsMesaGraphicsPipe::Destructor // Access: Public, Virtual // Description: //////////////////////////////////////////////////////////////////// -MesaGraphicsPipe:: -~MesaGraphicsPipe() { +OsMesaGraphicsPipe:: +~OsMesaGraphicsPipe() { } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsPipe::get_interface_name +// Function: OsMesaGraphicsPipe::get_interface_name // Access: Published, Virtual // Description: Returns the name of the rendering interface // associated with this GraphicsPipe. This is used to @@ -55,41 +55,41 @@ MesaGraphicsPipe:: // particular platform, so the name should be meaningful // and unique for a given platform. //////////////////////////////////////////////////////////////////// -string MesaGraphicsPipe:: +string OsMesaGraphicsPipe:: get_interface_name() const { return "Offscreen Mesa"; } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsPipe::pipe_constructor +// Function: OsMesaGraphicsPipe::pipe_constructor // Access: Public, Static // Description: This function is passed to the GraphicsPipeSelection // object to allow the user to make a default -// MesaGraphicsPipe. +// OsMesaGraphicsPipe. //////////////////////////////////////////////////////////////////// -PT(GraphicsPipe) MesaGraphicsPipe:: +PT(GraphicsPipe) OsMesaGraphicsPipe:: pipe_constructor() { - return new MesaGraphicsPipe; + return new OsMesaGraphicsPipe; } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsPipe::make_gsg +// Function: OsMesaGraphicsPipe::make_gsg // Access: Protected, Virtual // Description: Creates a new GSG to use the pipe (but no windows // have been created yet for the GSG). This method will // be called in the draw thread for the GSG. //////////////////////////////////////////////////////////////////// -PT(GraphicsStateGuardian) MesaGraphicsPipe:: +PT(GraphicsStateGuardian) OsMesaGraphicsPipe:: make_gsg(const FrameBufferProperties &properties) { - return new MesaGraphicsStateGuardian(properties); + return new OSMesaGraphicsStateGuardian(properties); } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsPipe::make_buffer +// Function: OsMesaGraphicsPipe::make_buffer // Access: Protected, Virtual // Description: Creates a new offscreen buffer on the pipe, if possible. //////////////////////////////////////////////////////////////////// -PT(GraphicsBuffer) MesaGraphicsPipe:: +PT(GraphicsBuffer) OsMesaGraphicsPipe:: make_buffer(GraphicsStateGuardian *gsg, int x_size, int y_size, bool want_texture) { - return new MesaGraphicsBuffer(this, gsg, x_size, y_size, want_texture); + return new OsMesaGraphicsBuffer(this, gsg, x_size, y_size, want_texture); } diff --git a/panda/src/mesadisplay/mesaGraphicsPipe.h b/panda/src/mesadisplay/osMesaGraphicsPipe.h similarity index 86% rename from panda/src/mesadisplay/mesaGraphicsPipe.h rename to panda/src/mesadisplay/osMesaGraphicsPipe.h index ad1991793f..7ba016afef 100644 --- a/panda/src/mesadisplay/mesaGraphicsPipe.h +++ b/panda/src/mesadisplay/osMesaGraphicsPipe.h @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsPipe.h +// Filename: osMesaGraphicsPipe.h // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// @@ -16,8 +16,8 @@ // //////////////////////////////////////////////////////////////////// -#ifndef MESAGRAPHICSPIPE_H -#define MESAGRAPHICSPIPE_H +#ifndef OSMESAGRAPHICSPIPE_H +#define OSMESAGRAPHICSPIPE_H #include "pandabase.h" #include "graphicsWindow.h" @@ -28,7 +28,7 @@ class FrameBufferProperties; //////////////////////////////////////////////////////////////////// -// Class : MesaGraphicsPipe +// Class : OsMesaGraphicsPipe // Description : This graphics pipe represents the interface for // rendering with direct calls to the Mesa open-source // software-only implementation of OpenGL. @@ -38,10 +38,10 @@ class FrameBufferProperties; // buffers without having any X server or other // operating system infrastructure in place. //////////////////////////////////////////////////////////////////// -class MesaGraphicsPipe : public GraphicsPipe { +class EXPCL_PANDAMESA OsMesaGraphicsPipe : public GraphicsPipe { public: - MesaGraphicsPipe(); - virtual ~MesaGraphicsPipe(); + OsMesaGraphicsPipe(); + virtual ~OsMesaGraphicsPipe(); virtual string get_interface_name() const; static PT(GraphicsPipe) pipe_constructor(); @@ -59,7 +59,7 @@ public: } static void init_type() { GraphicsPipe::init_type(); - register_type(_type_handle, "MesaGraphicsPipe", + register_type(_type_handle, "OsMesaGraphicsPipe", GraphicsPipe::get_class_type()); } virtual TypeHandle get_type() const { @@ -71,6 +71,6 @@ private: static TypeHandle _type_handle; }; -#include "mesaGraphicsPipe.I" +#include "osMesaGraphicsPipe.I" #endif diff --git a/panda/src/mesadisplay/mesaGraphicsStateGuardian.I b/panda/src/mesadisplay/osMesaGraphicsStateGuardian.I similarity index 88% rename from panda/src/mesadisplay/mesaGraphicsStateGuardian.I rename to panda/src/mesadisplay/osMesaGraphicsStateGuardian.I index ccb78bb8e7..b430282518 100644 --- a/panda/src/mesadisplay/mesaGraphicsStateGuardian.I +++ b/panda/src/mesadisplay/osMesaGraphicsStateGuardian.I @@ -1,5 +1,5 @@ -// Filename: glxGraphicsStateGuardian.I -// Created by: drose (27Jan03) +// Filename: osMesaGraphicsStateGuardian.I +// Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// // diff --git a/panda/src/mesadisplay/mesaGraphicsStateGuardian.cxx b/panda/src/mesadisplay/osMesaGraphicsStateGuardian.cxx similarity index 71% rename from panda/src/mesadisplay/mesaGraphicsStateGuardian.cxx rename to panda/src/mesadisplay/osMesaGraphicsStateGuardian.cxx index 348f16ffc1..a270b29a3e 100644 --- a/panda/src/mesadisplay/mesaGraphicsStateGuardian.cxx +++ b/panda/src/mesadisplay/osMesaGraphicsStateGuardian.cxx @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsStateGuardian.cxx +// Filename: osMesaGraphicsStateGuardian.cxx // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// @@ -16,29 +16,29 @@ // //////////////////////////////////////////////////////////////////// -#include "mesaGraphicsStateGuardian.h" +#include "osMesaGraphicsStateGuardian.h" -TypeHandle MesaGraphicsStateGuardian::_type_handle; +TypeHandle OSMesaGraphicsStateGuardian::_type_handle; //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsStateGuardian::Constructor +// Function: OSMesaGraphicsStateGuardian::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -MesaGraphicsStateGuardian:: -MesaGraphicsStateGuardian(const FrameBufferProperties &properties) : - GLGraphicsStateGuardian(properties) +OSMesaGraphicsStateGuardian:: +OSMesaGraphicsStateGuardian(const FrameBufferProperties &properties) : + MesaGraphicsStateGuardian(properties) { _context = OSMesaCreateContext(OSMESA_RGBA, NULL); } //////////////////////////////////////////////////////////////////// -// Function: MesaGraphicsStateGuardian::Destructor +// Function: OSMesaGraphicsStateGuardian::Destructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// -MesaGraphicsStateGuardian:: -~MesaGraphicsStateGuardian() { +OSMesaGraphicsStateGuardian:: +~OSMesaGraphicsStateGuardian() { if (_context != (OSMesaContext)NULL) { OSMesaDestroyContext(_context); _context = (OSMesaContext)NULL; diff --git a/panda/src/mesadisplay/mesaGraphicsStateGuardian.h b/panda/src/mesadisplay/osMesaGraphicsStateGuardian.h similarity index 60% rename from panda/src/mesadisplay/mesaGraphicsStateGuardian.h rename to panda/src/mesadisplay/osMesaGraphicsStateGuardian.h index ad9a17674a..32d48cdf14 100644 --- a/panda/src/mesadisplay/mesaGraphicsStateGuardian.h +++ b/panda/src/mesadisplay/osMesaGraphicsStateGuardian.h @@ -1,4 +1,4 @@ -// Filename: mesaGraphicsStateGuardian.h +// Filename: osMesaGraphicsStateGuardian.h // Created by: drose (09Feb04) // //////////////////////////////////////////////////////////////////// @@ -16,23 +16,23 @@ // //////////////////////////////////////////////////////////////////// -#ifndef MESAGRAPHICSSTATEGUARDIAN_H -#define MESAGRAPHICSSTATEGUARDIAN_H +#ifndef OSMESAGRAPHICSSTATEGUARDIAN_H +#define OSMESAGRAPHICSSTATEGUARDIAN_H #include "pandabase.h" +#include "mesagsg.h" -#include "glGraphicsStateGuardian.h" -#include "mesaGraphicsPipe.h" +#include //////////////////////////////////////////////////////////////////// -// Class : MesaGraphicsStateGuardian -// Description : A tiny specialization on GLGraphicsStateGuardian to -// add some Mesa-specific information. +// Class : OSMesaGraphicsStateGuardian +// Description : A tiny specialization on MesaGraphicsStateGuardian to +// add a reference to the OSMesaContext. //////////////////////////////////////////////////////////////////// -class MesaGraphicsStateGuardian : public GLGraphicsStateGuardian { +class EXPCL_PANDAMESA OSMesaGraphicsStateGuardian : public MesaGraphicsStateGuardian { public: - MesaGraphicsStateGuardian(const FrameBufferProperties &properties); - virtual ~MesaGraphicsStateGuardian(); + OSMesaGraphicsStateGuardian(const FrameBufferProperties &properties); + virtual ~OSMesaGraphicsStateGuardian(); OSMesaContext _context; @@ -41,9 +41,9 @@ public: return _type_handle; } static void init_type() { - GLGraphicsStateGuardian::init_type(); - register_type(_type_handle, "MesaGraphicsStateGuardian", - GLGraphicsStateGuardian::get_class_type()); + MesaGraphicsStateGuardian::init_type(); + register_type(_type_handle, "OSMesaGraphicsStateGuardian", + MesaGraphicsStateGuardian::get_class_type()); } virtual TypeHandle get_type() const { return get_class_type(); @@ -54,6 +54,6 @@ private: static TypeHandle _type_handle; }; -#include "mesaGraphicsStateGuardian.I" +#include "osMesaGraphicsStateGuardian.I" #endif diff --git a/panda/src/pandabase/pandasymbols.h b/panda/src/pandabase/pandasymbols.h index 95f0867ee8..d647db4e16 100644 --- a/panda/src/pandabase/pandasymbols.h +++ b/panda/src/pandabase/pandasymbols.h @@ -124,6 +124,14 @@ #define EXPTP_PANDAGLUT extern #endif +#ifdef BUILDING_PANDAMESA + #define EXPCL_PANDAMESA __declspec(dllexport) + #define EXPTP_PANDAMESA +#else + #define EXPCL_PANDAMESA __declspec(dllimport) + #define EXPTP_PANDAMESA extern +#endif + #ifdef BUILDING_PANDAPHYSICS #define EXPCL_PANDAPHYSICS __declspec(dllexport) #define EXPTP_PANDAPHYSICS @@ -194,6 +202,9 @@ #define EXPCL_PANDAGLUT #define EXPTP_PANDAGLUT +#define EXPCL_PANDAMESA +#define EXPTP_PANDAMESA + #define EXPCL_PANDAPHYSICS #define EXPTP_PANDAPHYSICS diff --git a/panda/src/wgldisplay/wglGraphicsBuffer.cxx b/panda/src/wgldisplay/wglGraphicsBuffer.cxx index b47caffd17..fb8c46b88d 100644 --- a/panda/src/wgldisplay/wglGraphicsBuffer.cxx +++ b/panda/src/wgldisplay/wglGraphicsBuffer.cxx @@ -19,7 +19,7 @@ #include "wglGraphicsBuffer.h" #include "config_wgldisplay.h" #include "wglGraphicsPipe.h" -#include "glGraphicsStateGuardian.h" +#include "glgsg.h" #include "frameBufferProperties.h" #include diff --git a/panda/src/wgldisplay/wglGraphicsStateGuardian.h b/panda/src/wgldisplay/wglGraphicsStateGuardian.h index 8a20d730c3..d7f3f82fdf 100755 --- a/panda/src/wgldisplay/wglGraphicsStateGuardian.h +++ b/panda/src/wgldisplay/wglGraphicsStateGuardian.h @@ -22,7 +22,7 @@ #include "pandabase.h" #include "wglExtensions.h" -#include "glGraphicsStateGuardian.h" +#include "glgsg.h" //////////////////////////////////////////////////////////////////// // Class : wglGraphicsStateGuardian diff --git a/panda/src/wgldisplay/wglGraphicsWindow.cxx b/panda/src/wgldisplay/wglGraphicsWindow.cxx index 58bcaa7b84..342a6ef90a 100644 --- a/panda/src/wgldisplay/wglGraphicsWindow.cxx +++ b/panda/src/wgldisplay/wglGraphicsWindow.cxx @@ -20,7 +20,7 @@ #include "config_wgldisplay.h" #include "config_windisplay.h" #include "wglGraphicsPipe.h" -#include "glGraphicsStateGuardian.h" +#include "glgsg.h" #include #include