Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics
[Home] [Tutorials] [All Classes] [Grouped Classes]

X:/dropbox/visualizationlibrary/src/vlCore/vlnamespace.hpp

Go to the documentation of this file.
00001 /**************************************************************************************/
00002 /*                                                                                    */
00003 /*  Visualization Library                                                             */
00004 /*  http://www.visualizationlibrary.org                                               */
00005 /*                                                                                    */
00006 /*  Copyright (c) 2005-2011, Michele Bosi                                             */
00007 /*  All rights reserved.                                                              */
00008 /*                                                                                    */
00009 /*  Redistribution and use in source and binary forms, with or without modification,  */
00010 /*  are permitted provided that the following conditions are met:                     */
00011 /*                                                                                    */
00012 /*  - Redistributions of source code must retain the above copyright notice, this     */
00013 /*  list of conditions and the following disclaimer.                                  */
00014 /*                                                                                    */
00015 /*  - Redistributions in binary form must reproduce the above copyright notice, this  */
00016 /*  list of conditions and the following disclaimer in the documentation and/or       */
00017 /*  other materials provided with the distribution.                                   */
00018 /*                                                                                    */
00019 /*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND   */
00020 /*  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED     */
00021 /*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE            */
00022 /*  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR  */
00023 /*  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    */
00024 /*  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;      */
00025 /*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON    */
00026 /*  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT           */
00027 /*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS     */
00028 /*  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                      */
00029 /*                                                                                    */
00030 /**************************************************************************************/
00031 
00037 #ifndef vlnamespace_INCLUDE_ONCE
00038 #define vlnamespace_INCLUDE_ONCE
00039 
00040 #include <vlCore/OpenGLDefs.hpp>
00041 #include <vlCore/config.hpp>
00042 
00043 namespace vl
00044 {
00045   typedef enum 
00046   {
00047     TF_UNKNOWN = 0,
00048 
00049     TF_ALPHA   = GL_ALPHA, 
00050     TF_ALPHA4  = GL_ALPHA4, 
00051     TF_ALPHA8  = GL_ALPHA8, 
00052     TF_ALPHA12 = GL_ALPHA12, 
00053     TF_ALPHA16 = GL_ALPHA16, 
00054 
00055     TF_INTENSITY   = GL_INTENSITY, 
00056     TF_INTENSITY4  = GL_INTENSITY4, 
00057     TF_INTENSITY8  = GL_INTENSITY8, 
00058     TF_INTENSITY12 = GL_INTENSITY12, 
00059     TF_INTENSITY16 = GL_INTENSITY16, 
00060     TF_LUMINANCE   = GL_LUMINANCE, 
00061     TF_LUMINANCE4  = GL_LUMINANCE4, 
00062     TF_LUMINANCE8  = GL_LUMINANCE8, 
00063     TF_LUMINANCE12 = GL_LUMINANCE12, 
00064     TF_LUMINANCE16 = GL_LUMINANCE16, 
00065     TF_LUMINANCE_ALPHA     = GL_LUMINANCE_ALPHA, 
00066     TF_LUMINANCE4_ALPHA4   = GL_LUMINANCE4_ALPHA4, 
00067     TF_LUMINANCE6_ALPHA2   = GL_LUMINANCE6_ALPHA2, 
00068     TF_LUMINANCE8_ALPHA8   = GL_LUMINANCE8_ALPHA8, 
00069     TF_LUMINANCE12_ALPHA4  = GL_LUMINANCE12_ALPHA4, 
00070     TF_LUMINANCE12_ALPHA12 = GL_LUMINANCE12_ALPHA12, 
00071     TF_LUMINANCE16_ALPHA16 = GL_LUMINANCE16_ALPHA16, 
00072     TF_R3_G3_B2 = GL_R3_G3_B2, 
00073     TF_RGB      = GL_RGB, 
00074     TF_RGB4     = GL_RGB4, 
00075     TF_RGB5     = GL_RGB5, 
00076     TF_RGB8     = GL_RGB8, 
00077     TF_RGB10    = GL_RGB10, 
00078     TF_RGB12    = GL_RGB12, 
00079     TF_RGB16    = GL_RGB16, 
00080     TF_RGBA     = GL_RGBA, 
00081     TF_RGBA2    = GL_RGBA2, 
00082     TF_RGBA4    = GL_RGBA4, 
00083     TF_RGB5_A1  = GL_RGB5_A1, 
00084     TF_RGBA8    = GL_RGBA8, 
00085     TF_RGB10_A2 = GL_RGB10_A2, 
00086     TF_RGBA12   = GL_RGBA12, 
00087     TF_RGBA16   = GL_RGBA16,
00088 
00089     // ARB_texture_float / OpenGL 3
00090     TF_RGBA32F = GL_RGBA32F,
00091     TF_RGB32F = GL_RGB32F,
00092     TF_ALPHA32F = GL_ALPHA32F_ARB,
00093     TF_INTENSITY32F = GL_INTENSITY32F_ARB,
00094     TF_LUMINANCE32F = GL_LUMINANCE32F_ARB,
00095     TF_LUMINANCE_ALPHA32F = GL_LUMINANCE_ALPHA32F_ARB,
00096     TF_RGBA16F = GL_RGBA16F,
00097     TF_RGB16F = GL_RGB16F,
00098     TF_ALPHA16F = GL_ALPHA16F_ARB,
00099     TF_INTENSITY16F = GL_INTENSITY16F_ARB,
00100     TF_LUMINANCE16F = GL_LUMINANCE16F_ARB,
00101     TF_LUMINANCE_ALPHA16F = GL_LUMINANCE_ALPHA16F_ARB,
00102 
00103     // ATI_texture_float (the enums are the same as ARB_texture_float)
00104     TF_RGBA_FLOAT32_ATI = GL_RGBA_FLOAT32_ATI,
00105     TF_RGB_FLOAT32_ATI = GL_RGB_FLOAT32_ATI,
00106     TF_ALPHA_FLOAT32_ATI = GL_ALPHA_FLOAT32_ATI,
00107     TF_INTENSITY_FLOAT32_ATI = GL_INTENSITY_FLOAT32_ATI,
00108     TF_LUMINANCE_FLOAT32_ATI = GL_LUMINANCE_FLOAT32_ATI,
00109     TF_LUMINANCE_ALPHA_FLOAT32_ATI = GL_LUMINANCE_ALPHA_FLOAT32_ATI,
00110     TF_RGBA_FLOAT16_ATI = GL_RGBA_FLOAT16_ATI,
00111     TF_RGB_FLOAT16_ATI = GL_RGB_FLOAT16_ATI,
00112     TF_ALPHA_FLOAT16_ATI = GL_ALPHA_FLOAT16_ATI,
00113     TF_INTENSITY_FLOAT16_ATI = GL_INTENSITY_FLOAT16_ATI,
00114     TF_LUMINANCE_FLOAT16_ATI = GL_LUMINANCE_FLOAT16_ATI,
00115     TF_LUMINANCE_ALPHA_FLOAT16_ATI = GL_LUMINANCE_ALPHA_FLOAT16_ATI,
00116 
00117     // EXT_texture_shared_exponent
00118     TF_RGB9_E5_EXT = GL_RGB9_E5_EXT,
00119 
00120     // EXT_packed_float
00121     TF_11F_G11F_B10F_EXT = GL_R11F_G11F_B10F_EXT,
00122 
00123     // EXT_packed_depth_stencil / GL_ARB_framebuffer_object
00124     TF_DEPTH_STENCIL    = GL_DEPTH_STENCIL,
00125     TF_DEPTH24_STENCIL8 = GL_DEPTH24_STENCIL8,
00126 
00127     // ARB_depth_buffer_float
00128     TF_DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F,
00129     TF_DEPTH32F_STENCIL8  = GL_DEPTH32F_STENCIL8,
00130 
00131     // ARB_depth_texture
00132     TF_DEPTH_COMPONENT   = GL_DEPTH_COMPONENT,
00133     TF_DEPTH_COMPONENT16 = GL_DEPTH_COMPONENT16,
00134     TF_DEPTH_COMPONENT24 = GL_DEPTH_COMPONENT24,
00135     TF_DEPTH_COMPONENT32 = GL_DEPTH_COMPONENT32,
00136 
00137     // ARB_texture_compression
00138     TF_COMPRESSED_ALPHA           = GL_COMPRESSED_ALPHA_ARB,        
00139     TF_COMPRESSED_INTENSITY       = GL_COMPRESSED_INTENSITY_ARB,
00140     TF_COMPRESSED_LUMINANCE       = GL_COMPRESSED_LUMINANCE_ARB,      
00141     TF_COMPRESSED_LUMINANCE_ALPHA = GL_COMPRESSED_LUMINANCE_ALPHA_ARB,      
00142     TF_COMPRESSED_RGB             = GL_COMPRESSED_RGB_ARB,        
00143     TF_COMPRESSED_RGBA            = GL_COMPRESSED_RGBA_ARB,
00144 
00145     // 3DFX_texture_compression_FXT1
00146     TF_COMPRESSED_RGB_FXT1_3DFX  = GL_COMPRESSED_RGB_FXT1_3DFX,        
00147     TF_COMPRESSED_RGBA_FXT1_3DFX = GL_COMPRESSED_RGBA_FXT1_3DFX,        
00148 
00149     // EXT_texture_compression_s3tc
00150     TF_COMPRESSED_RGB_S3TC_DXT1_EXT  = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,                   
00151     TF_COMPRESSED_RGBA_S3TC_DXT1_EXT = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,               
00152     TF_COMPRESSED_RGBA_S3TC_DXT3_EXT = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,                  
00153     TF_COMPRESSED_RGBA_S3TC_DXT5_EXT = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,                 
00154 
00155     // EXT_texture_compression_latc
00156     TF_COMPRESSED_LUMINANCE_LATC1_EXT              = GL_COMPRESSED_LUMINANCE_LATC1_EXT,
00157     TF_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT       = GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT,
00158     TF_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT        = GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT,
00159     TF_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT,
00160 
00161     // EXT_texture_compression_rgtc
00162     TF_COMPRESSED_RED_RGTC1_EXT              = GL_COMPRESSED_RED_RGTC1_EXT,                       
00163     TF_COMPRESSED_SIGNED_RED_RGTC1_EXT       = GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,                
00164     TF_COMPRESSED_RED_GREEN_RGTC2_EXT        = GL_COMPRESSED_RED_GREEN_RGTC2_EXT,                 
00165     TF_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
00166 
00167     // EXT_texture_integer
00168     TF_RGBA32UI_EXT = GL_RGBA32UI_EXT,           
00169     TF_RGB32UI_EXT = GL_RGB32UI_EXT,            
00170     TF_ALPHA32UI_EXT = GL_ALPHA32UI_EXT,          
00171     TF_INTENSITY32UI_EXT = GL_INTENSITY32UI_EXT,      
00172     TF_LUMINANCE32UI_EXT = GL_LUMINANCE32UI_EXT,      
00173     TF_LUMINANCE_ALPHA32UI_EXT = GL_LUMINANCE_ALPHA32UI_EXT,
00174 
00175     TF_RGBA16UI_EXT = GL_RGBA16UI_EXT,           
00176     TF_RGB16UI_EXT = GL_RGB16UI_EXT,            
00177     TF_ALPHA16UI_EXT = GL_ALPHA16UI_EXT,          
00178     TF_INTENSITY16UI_EXT = GL_INTENSITY16UI_EXT,      
00179     TF_LUMINANCE16UI_EXT = GL_LUMINANCE16UI_EXT,      
00180     TF_LUMINANCE_ALPHA16UI_EXT = GL_LUMINANCE_ALPHA16UI_EXT, 
00181 
00182     TF_RGBA8UI_EXT = GL_RGBA8UI_EXT,           
00183     TF_RGB8UI_EXT = GL_RGB8UI_EXT,            
00184     TF_ALPHA8UI_EXT = GL_ALPHA8UI_EXT,          
00185     TF_INTENSITY8UI_EXT = GL_INTENSITY8UI_EXT,      
00186     TF_LUMINANCE8UI_EXT = GL_LUMINANCE8UI_EXT,      
00187     TF_LUMINANCE_ALPHA8UI_EXT = GL_LUMINANCE_ALPHA8UI_EXT,
00188 
00189     TF_RGBA32I_EXT = GL_RGBA32I_EXT,           
00190     TF_RGB32I_EXT = GL_RGB32I_EXT,            
00191     TF_ALPHA32I_EXT = GL_ALPHA32I_EXT,          
00192     TF_INTENSITY32I_EXT = GL_INTENSITY32I_EXT,      
00193     TF_LUMINANCE32I_EXT = GL_LUMINANCE32I_EXT,      
00194     TF_LUMINANCE_ALPHA32I_EXT = GL_LUMINANCE_ALPHA32I_EXT,
00195 
00196     TF_RGBA16I_EXT = GL_RGBA16I_EXT,           
00197     TF_RGB16I_EXT = GL_RGB16I_EXT,            
00198     TF_ALPHA16I_EXT = GL_ALPHA16I_EXT,          
00199     TF_INTENSITY16I_EXT = GL_INTENSITY16I_EXT,      
00200     TF_LUMINANCE16I_EXT = GL_LUMINANCE16I_EXT,      
00201     TF_LUMINANCE_ALPHA16I_EXT = GL_LUMINANCE_ALPHA16I_EXT,
00202 
00203     TF_RGBA8I_EXT = GL_RGBA8I_EXT,
00204     TF_RGB8I_EXT = GL_RGB8I_EXT,
00205     TF_ALPHA8I_EXT = GL_ALPHA8I_EXT,
00206     TF_INTENSITY8I_EXT = GL_INTENSITY8I_EXT,
00207     TF_LUMINANCE8I_EXT = GL_LUMINANCE8I_EXT,
00208     TF_LUMINANCE_ALPHA8I_EXT = GL_LUMINANCE_ALPHA8I_EXT,
00209 
00210     // GL_ARB_texture_rg
00211     TF_RED = GL_RED,
00212     TF_COMPRESSED_RED = GL_COMPRESSED_RED,
00213     TF_COMPRESSED_RG = GL_COMPRESSED_RG,
00214     TF_RG = GL_RG,
00215     TF_R8 = GL_R8,
00216     TF_R16 = GL_R16,
00217     TF_RG8 = GL_RG8,
00218     TF_RG16 = GL_RG16,
00219     TF_R16F = GL_R16F,
00220     TF_R32F = GL_R32F,
00221     TF_RG16F = GL_RG16F,
00222     TF_RG32F = GL_RG32F,
00223     TF_R8I = GL_R8I,
00224     TF_R8UI = GL_R8UI,
00225     TF_R16I = GL_R16I,
00226     TF_R16UI = GL_R16UI,
00227     TF_R32I = GL_R32I,
00228     TF_R32UI = GL_R32UI,
00229     TF_RG8I = GL_RG8I,
00230     TF_RG8UI = GL_RG8UI,
00231     TF_RG16I = GL_RG16I,
00232     TF_RG16UI = GL_RG16UI,
00233     TF_RG32I = GL_RG32I,
00234     TF_RG32UI = GL_RG32UI,
00235 
00236     // sRGB OpenGL 2.1
00237     TF_SLUMINANCE_ALPHA = GL_SLUMINANCE_ALPHA,
00238     TF_SLUMINANCE8_ALPHA8 = GL_SLUMINANCE8_ALPHA8,
00239     TF_SLUMINANCE = GL_SLUMINANCE,
00240     TF_SLUMINANCE8 = GL_SLUMINANCE8,
00241     TF_COMPRESSED_SLUMINANCE = GL_COMPRESSED_SLUMINANCE,
00242     TF_COMPRESSED_SLUMINANCE_ALPHA = GL_COMPRESSED_SLUMINANCE_ALPHA,
00243 
00244     // sRGB OpenGL 2.1 / 3.x
00245     TF_SRGB = GL_SRGB,
00246     TF_SRGB8 = GL_SRGB8,
00247     TF_SRGB_ALPHA = GL_SRGB_ALPHA,
00248     TF_SRGB8_ALPHA8 = GL_SRGB8_ALPHA8,
00249     TF_COMPRESSED_SRGB = GL_COMPRESSED_SRGB,
00250     TF_COMPRESSED_SRGB_ALPHA = GL_COMPRESSED_SRGB_ALPHA,
00251 
00252     // GL_EXT_texture_sRGB compressed formats
00253     TF_COMPRESSED_SRGB_S3TC_DXT1_EXT = GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
00254     TF_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
00255     TF_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
00256     TF_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
00257 
00258     // from table 3.12 opengl api specs 4.1
00259     TF_R8_SNORM = GL_R8_SNORM,
00260     TF_R16_SNORM = GL_R16_SNORM,
00261     TF_RG8_SNORM = GL_RG8_SNORM,
00262     TF_RG16_SNORM = GL_RG16_SNORM,
00263     TF_RGB8_SNORM = GL_RGB8_SNORM,
00264     TF_RGBA8_SNORM = GL_RGBA8_SNORM,
00265     TF_RGB10_A2UI = GL_RGB10_A2UI,
00266     TF_RGBA16_SNORM = GL_RGBA16_SNORM,
00267     TF_R11F_G11F_B10F = GL_R11F_G11F_B10F,
00268     TF_RGB9_E5 = GL_RGB9_E5,
00269     TF_RGB8I = GL_RGB8I,
00270     TF_RGB8UI = GL_RGB8UI,
00271     TF_RGB16I = GL_RGB16I,
00272     TF_RGB16UI = GL_RGB16UI,
00273     TF_RGB32I = GL_RGB32I,
00274     TF_RGB32UI = GL_RGB32UI,
00275     TF_RGBA8I = GL_RGBA8I,
00276     TF_RGBA8UI = GL_RGBA8UI,
00277     TF_RGBA16I = GL_RGBA16I,
00278     TF_RGBA16UI = GL_RGBA16UI,
00279     TF_RGBA32I = GL_RGBA32I,
00280     TF_RGBA32UI = GL_RGBA32UI
00281 
00282   } ETextureFormat;
00283     
00284   typedef enum
00285   {
00286     IF_RGB   = GL_RGB,
00287     IF_RGBA  = GL_RGBA,
00288     IF_BGR   = GL_BGR,
00289     IF_BGRA  = GL_BGRA,
00290     IF_RG    = GL_RG,
00291     IF_RG_INTEGER = GL_RG_INTEGER,
00292     IF_RED   = GL_RED,
00293     IF_GREEN = GL_GREEN,
00294     IF_BLUE  = GL_BLUE,
00295     IF_ALPHA = GL_ALPHA,
00296     IF_LUMINANCE       = GL_LUMINANCE,
00297     IF_LUMINANCE_ALPHA = GL_LUMINANCE_ALPHA,
00298     IF_DEPTH_COMPONENT = GL_DEPTH_COMPONENT,
00299     IF_STENCIL_INDEX   = GL_STENCIL_INDEX,
00300 
00301     // EXT_packed_depth_stencil / GL_ARB_framebuffer_object
00302     IF_DEPTH_STENCIL = GL_DEPTH_STENCIL,
00303 
00304     // compressed formats
00305     // note: with these format the type must be IT_IMPLICIT_TYPE
00306 
00307     IF_COMPRESSED_RGB_S3TC_DXT1  = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
00308     IF_COMPRESSED_RGBA_S3TC_DXT1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
00309     IF_COMPRESSED_RGBA_S3TC_DXT3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
00310     IF_COMPRESSED_RGBA_S3TC_DXT5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
00311 
00312     // GL 3.0 (EXT_texture_integer)
00313     IF_RED_INTEGER   = GL_RED_INTEGER,
00314     IF_GREEN_INTEGER = GL_GREEN_INTEGER,
00315     IF_BLUE_INTEGER  = GL_BLUE_INTEGER,
00316     IF_ALPHA_INTEGER = GL_ALPHA_INTEGER,
00317     IF_RGB_INTEGER   = GL_RGB_INTEGER,
00318     IF_RGBA_INTEGER  = GL_RGBA_INTEGER,
00319     IF_BGR_INTEGER   = GL_BGR_INTEGER,
00320     IF_BGRA_INTEGER  = GL_BGRA_INTEGER,
00321 
00322     // EXT_texture_integer
00323     IF_LUMINANCE_INTEGER = GL_LUMINANCE_INTEGER_EXT,
00324     IF_LUMINANCE_ALPHA_INTEGER = GL_LUMINANCE_ALPHA_INTEGER_EXT,
00325 
00326   } EImageFormat;
00327 
00328   typedef enum
00329   {
00330     T2DT_TEXTURE_2D = GL_TEXTURE_2D,
00331     T2DT_TEXTURE_CUBE_MAP_POSITIVE_X = GL_TEXTURE_CUBE_MAP_POSITIVE_X,
00332     T2DT_TEXTURE_CUBE_MAP_NEGATIVE_X = GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
00333     T2DT_TEXTURE_CUBE_MAP_POSITIVE_Y = GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
00334     T2DT_TEXTURE_CUBE_MAP_NEGATIVE_Y = GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
00335     T2DT_TEXTURE_CUBE_MAP_POSITIVE_Z = GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
00336     T2DT_TEXTURE_CUBE_MAP_NEGATIVE_Z = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
00337     T2DT_TEXTURE_RECTANGLE           = GL_TEXTURE_RECTANGLE_ARB,
00338     T2DT_TEXTURE_1D_ARRAY            = GL_TEXTURE_1D_ARRAY,
00339     T2DT_TEXTURE_2D_MULTISAMPLE      = GL_TEXTURE_2D_MULTISAMPLE,
00340   } ETex2DTarget;
00341 
00342   typedef enum
00343   {
00344     AP_NO_ATTACHMENT = 0,
00345 
00346     AP_COLOR_ATTACHMENT0  = GL_COLOR_ATTACHMENT0,
00347     AP_COLOR_ATTACHMENT1  = GL_COLOR_ATTACHMENT1,
00348     AP_COLOR_ATTACHMENT2  = GL_COLOR_ATTACHMENT2,
00349     AP_COLOR_ATTACHMENT3  = GL_COLOR_ATTACHMENT3,
00350     AP_COLOR_ATTACHMENT4  = GL_COLOR_ATTACHMENT4,
00351     AP_COLOR_ATTACHMENT5  = GL_COLOR_ATTACHMENT5,
00352     AP_COLOR_ATTACHMENT6  = GL_COLOR_ATTACHMENT6,
00353     AP_COLOR_ATTACHMENT7  = GL_COLOR_ATTACHMENT7,
00354     AP_COLOR_ATTACHMENT8  = GL_COLOR_ATTACHMENT8,
00355     AP_COLOR_ATTACHMENT9  = GL_COLOR_ATTACHMENT9,
00356     AP_COLOR_ATTACHMENT10 = GL_COLOR_ATTACHMENT10,
00357     AP_COLOR_ATTACHMENT11 = GL_COLOR_ATTACHMENT11,
00358     AP_COLOR_ATTACHMENT12 = GL_COLOR_ATTACHMENT12,
00359     AP_COLOR_ATTACHMENT13 = GL_COLOR_ATTACHMENT13,
00360     AP_COLOR_ATTACHMENT14 = GL_COLOR_ATTACHMENT14,
00361     AP_COLOR_ATTACHMENT15 = GL_COLOR_ATTACHMENT15,
00362 
00363     AP_DEPTH_ATTACHMENT   = GL_DEPTH_ATTACHMENT,
00364 
00365     AP_STENCIL_ATTACHMENT = GL_STENCIL_ATTACHMENT,
00366 
00367     AP_DEPTH_STENCIL_ATTACHMENT = GL_DEPTH_STENCIL_ATTACHMENT,
00368   } EAttachmentPoint;
00369 
00371   typedef enum
00372   {
00373     CBF_RED = GL_RED,
00374     CBF_RG = GL_RG,
00375     CBF_RGB = GL_RGB,
00376     CBF_RGBA = GL_RGBA,
00377 
00378     // see table 3.12 opengl api specs 4.1
00379     CBF_R8 = GL_R8,
00380     // CBF_R8_SNORM = GL_R8_SNORM,
00381     CBF_R16 = GL_R16,
00382     // CBF_R16_SNORM = GL_R16_SNORM,
00383     CBF_RG8 = GL_RG8,
00384     // CBF_RG8_SNORM = GL_RG8_SNORM,
00385     CBF_RG16 = GL_RG16,
00386     // CBF_RG16_SNORM = GL_RG16_SNORM,
00387     // CBF_R3_G3_B2 = GL_R3_G3_B2,
00388     // CBF_RGB4 = GL_RGB4,
00389     // CBF_RGB5 = GL_RGB5,
00390     // CBF_RGB8 = GL_RGB8,
00391     // CBF_RGB8_SNORM = GL_RGB8_SNORM,
00392     // CBF_RGB10 = GL_RGB10,
00393     // CBF_RGB12 = GL_RGB12,
00394     // CBF_RGB16 = GL_RGB16,
00395     // CBF_RGB16_SNORM = GL_RGB16_SNORM,
00396     // CBF_RGBA2 = GL_RGBA2,
00397     // CBF_RGBA4 = GL_RGBA4,
00398     // CBF_RGB5_A1 = GL_RGB5_A1,
00399     CBF_RGBA8 = GL_RGBA8,
00400     // CBF_RGBA8_SNORM = GL_RGBA8_SNORM,
00401     CBF_RGB10_A2 = GL_RGB10_A2,
00402     CBF_RGB10_A2UI = GL_RGB10_A2UI,
00403     // CBF_RGBA12 = GL_RGBA12,
00404     CBF_RGBA16 = GL_RGBA16,
00405     // CBF_RGBA16_SNORM = GL_RGBA16_SNORM,
00406     // CBF_SRGB8 = GL_SRGB8,
00407     CBF_SRGB8_ALPHA8 = GL_SRGB8_ALPHA8,
00408     CBF_R16F = GL_R16F,
00409     CBF_RG16F = GL_RG16F,
00410     // CBF_RGB16F = GL_RGB16F,
00411     CBF_RGBA16F = GL_RGBA16F,
00412     CBF_R32F = GL_R32F,
00413     CBF_RG32F = GL_RG32F,
00414     // CBF_RGB32F = GL_RGB32F,
00415     CBF_RGBA32F = GL_RGBA32F,
00416     CBF_R11F_G11F_B10F = GL_R11F_G11F_B10F,
00417     // CBF_RGB9_E5 = GL_RGB9_E5,
00418     CBF_R8I = GL_R8I,
00419     CBF_R8UI = GL_R8UI,
00420     CBF_R16I = GL_R16I,
00421     CBF_R16UI = GL_R16UI,
00422     CBF_R32I = GL_R32I,
00423     CBF_R32UI = GL_R32UI,
00424     CBF_RG8I = GL_RG8I,
00425     CBF_RG8UI = GL_RG8UI,
00426     CBF_RG16I = GL_RG16I,
00427     CBF_RG16UI = GL_RG16UI,
00428     CBF_RG32I = GL_RG32I,
00429     CBF_RG32UI = GL_RG32UI,
00430     // CBF_RGB8I = GL_RGB8I,
00431     // CBF_RGB8UI = GL_RGB8UI,
00432     // CBF_RGB16I = GL_RGB16I,
00433     // CBF_RGB16UI = GL_RGB16UI,
00434     // CBF_RGB32I = GL_RGB32I,
00435     // CBF_RGB32UI = GL_RGB32UI,
00436     CBF_RGBA8I = GL_RGBA8I,
00437     CBF_RGBA8UI = GL_RGBA8UI,
00438     CBF_RGBA16I = GL_RGBA16I,
00439     CBF_RGBA16UI = GL_RGBA16UI,
00440     CBF_RGBA32I = GL_RGBA32I,
00441     CBF_RGBA32UI = GL_RGBA32UI
00442 
00443   } EColorBufferFormat;
00444 
00445   typedef enum
00446   {
00447     DBF_DEPTH_COMPONENT    = GL_DEPTH_COMPONENT,
00448     DBF_DEPTH_COMPONENT16  = GL_DEPTH_COMPONENT16,
00449     DBF_DEPTH_COMPONENT24  = GL_DEPTH_COMPONENT24,
00450     DBF_DEPTH_COMPONENT32  = GL_DEPTH_COMPONENT32,
00451     DBF_DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F,
00452   } EDepthBufferFormat;
00453 
00454   typedef enum
00455   {
00456     SBF_STENCIL_INDEX1  = GL_STENCIL_INDEX1_EXT,
00457     SBF_STENCIL_INDEX4  = GL_STENCIL_INDEX4_EXT,
00458     SBF_STENCIL_INDEX8  = GL_STENCIL_INDEX8_EXT,
00459     SBF_STENCIL_INDEX16 = GL_STENCIL_INDEX16_EXT
00460   } EStencilBufferFormat;
00461 
00462   typedef enum
00463   {
00464     DSBT_DEPTH_STENCIL     = GL_DEPTH_STENCIL,
00465     DSBT_DEPTH24_STENCIL8  = GL_DEPTH24_STENCIL8,
00466     DSBT_DEPTH32F_STENCIL8 = GL_DEPTH32F_STENCIL8,
00467   } EDepthStencilBufferFormat;
00468 
00469   typedef enum
00470   {
00471     CF_DO_NOT_CLEAR        = 0,
00472     CF_CLEAR_COLOR         = GL_COLOR_BUFFER_BIT,
00473     CF_CLEAR_DEPTH         = GL_DEPTH_BUFFER_BIT,
00474     CF_CLEAR_STENCIL       = GL_STENCIL_BUFFER_BIT,
00475     CF_CLEAR_COLOR_DEPTH   = CF_CLEAR_COLOR + CF_CLEAR_DEPTH,
00476     CF_CLEAR_COLOR_STENCIL = CF_CLEAR_COLOR + CF_CLEAR_STENCIL,
00477     CF_CLEAR_DEPTH_STENCIL = CF_CLEAR_DEPTH + CF_CLEAR_STENCIL,
00478     CF_CLEAR_COLOR_DEPTH_STENCIL = CF_CLEAR_COLOR + CF_CLEAR_DEPTH + CF_CLEAR_STENCIL,
00479   } EClearFlags;
00480   
00481   typedef enum
00482   {
00483     CCM_Float,
00484     CCM_Int,
00485     CCM_UInt
00486   } EClearColorMode;
00487 
00488   typedef enum 
00489   { 
00490     BF_ZERO=GL_ZERO, 
00491     BF_ONE=GL_ONE, 
00492     BF_SRC_COLOR=GL_SRC_COLOR, 
00493     BF_ONE_MINUS_SRC_COLOR=GL_ONE_MINUS_SRC_COLOR, 
00494     BF_DST_COLOR=GL_DST_COLOR, 
00495     BF_ONE_MINUS_DST_COLOR=GL_ONE_MINUS_DST_COLOR, 
00496     BF_SRC_ALPHA=GL_SRC_ALPHA, 
00497     BF_ONE_MINUS_SRC_ALPHA=GL_ONE_MINUS_SRC_ALPHA, 
00498     BF_DST_ALPHA=GL_DST_ALPHA, 
00499     BF_ONE_MINUS_DST_ALPHA=GL_ONE_MINUS_DST_ALPHA, 
00500     BF_CONSTANT_COLOR=GL_CONSTANT_COLOR, 
00501     BF_ONE_MINUS_CONSTANT_COLOR=GL_ONE_MINUS_CONSTANT_COLOR, 
00502     BF_CONSTANT_ALPHA=GL_CONSTANT_ALPHA, 
00503     BF_ONE_MINUS_CONSTANT_ALPHA=GL_ONE_MINUS_CONSTANT_ALPHA, 
00504     BF_SRC_ALPHA_SATURATE=GL_SRC_ALPHA_SATURATE
00505   } EBlendFactor;
00506 
00507   typedef enum 
00508   { 
00509     TD_TEXTURE_UNKNOWN = 0,
00510     TD_TEXTURE_1D = GL_TEXTURE_1D, 
00511     TD_TEXTURE_2D = GL_TEXTURE_2D, 
00512     TD_TEXTURE_3D = GL_TEXTURE_3D, 
00513     TD_TEXTURE_CUBE_MAP  = GL_TEXTURE_CUBE_MAP,
00514     TD_TEXTURE_RECTANGLE = GL_TEXTURE_RECTANGLE,
00515     TD_TEXTURE_1D_ARRAY  = GL_TEXTURE_1D_ARRAY, 
00516     TD_TEXTURE_2D_ARRAY  = GL_TEXTURE_2D_ARRAY, 
00517     TD_TEXTURE_BUFFER    = GL_TEXTURE_BUFFER,
00518     TD_TEXTURE_2D_MULTISAMPLE = GL_TEXTURE_2D_MULTISAMPLE,
00519     TD_TEXTURE_2D_MULTISAMPLE_ARRAY = GL_TEXTURE_2D_MULTISAMPLE_ARRAY
00520   } ETextureDimension;
00521 
00522   typedef enum
00523   {
00524     TCM_NONE = GL_NONE,
00525     TCM_COMPARE_R_TO_TEXTURE = GL_COMPARE_R_TO_TEXTURE,
00526     TCM_COMPARE_REF_DEPTH_TO_TEXTURE = GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT
00527   } ETexCompareMode;
00528 
00529   typedef enum
00530   { 
00531     TCF_LEQUAL   = GL_LEQUAL,
00532     TCF_GEQUAL   = GL_GEQUAL,
00533     TCF_LESS     = GL_LESS,
00534     TCF_GREATER  = GL_GREATER,
00535     TCF_EQUAL    = GL_EQUAL,
00536     TCF_NOTEQUAL = GL_NOTEQUAL,
00537     TCF_ALWAYS   = GL_ALWAYS,
00538     TCF_NEVER    = GL_NEVER
00539   } ETexCompareFunc;
00540 
00541   typedef enum 
00542   {
00543     DTM_LUMINANCE = GL_LUMINANCE, 
00544     DTM_INTENSITY = GL_INTENSITY, 
00545     DTM_ALPHA     = GL_ALPHA,
00546     DTM_RED       = GL_RED
00547   } EDepthTextureMode;
00548 
00549   typedef enum
00550   {
00551     RDB_NONE        = GL_NONE,
00552     RDB_FRONT_LEFT  = GL_FRONT_LEFT,
00553     RDB_FRONT_RIGHT = GL_FRONT_RIGHT,
00554     RDB_BACK_LEFT   = GL_BACK_LEFT,
00555     RDB_BACK_RIGHT  = GL_BACK_RIGHT,
00556     RDB_AUX0        = GL_AUX0,
00557     RDB_AUX1        = GL_AUX1,
00558     RDB_AUX2        = GL_AUX2,
00559     RDB_AUX3        = GL_AUX3,
00560     RDB_COLOR_ATTACHMENT0  = GL_COLOR_ATTACHMENT0_EXT,
00561     RDB_COLOR_ATTACHMENT1  = GL_COLOR_ATTACHMENT1_EXT,
00562     RDB_COLOR_ATTACHMENT2  = GL_COLOR_ATTACHMENT2_EXT,
00563     RDB_COLOR_ATTACHMENT3  = GL_COLOR_ATTACHMENT3_EXT,
00564     RDB_COLOR_ATTACHMENT4  = GL_COLOR_ATTACHMENT4_EXT,
00565     RDB_COLOR_ATTACHMENT5  = GL_COLOR_ATTACHMENT5_EXT,
00566     RDB_COLOR_ATTACHMENT6  = GL_COLOR_ATTACHMENT6_EXT,
00567     RDB_COLOR_ATTACHMENT7  = GL_COLOR_ATTACHMENT7_EXT,
00568     RDB_COLOR_ATTACHMENT8  = GL_COLOR_ATTACHMENT8_EXT,
00569     RDB_COLOR_ATTACHMENT9  = GL_COLOR_ATTACHMENT9_EXT,
00570     RDB_COLOR_ATTACHMENT10 = GL_COLOR_ATTACHMENT10_EXT,
00571     RDB_COLOR_ATTACHMENT11 = GL_COLOR_ATTACHMENT11_EXT,
00572     RDB_COLOR_ATTACHMENT12 = GL_COLOR_ATTACHMENT12_EXT,
00573     RDB_COLOR_ATTACHMENT13 = GL_COLOR_ATTACHMENT13_EXT,
00574     RDB_COLOR_ATTACHMENT14 = GL_COLOR_ATTACHMENT14_EXT,
00575     RDB_COLOR_ATTACHMENT15 = GL_COLOR_ATTACHMENT15_EXT
00576   } EReadDrawBuffer;
00577 
00578   typedef enum
00579   {
00580     FBB_FRAMEBUFFER      = GL_FRAMEBUFFER,
00581     FBB_DRAW_FRAMEBUFFER = GL_DRAW_FRAMEBUFFER,
00582     FBB_READ_FRAMEBUFFER = GL_READ_FRAMEBUFFER,
00583   } EFramebufferBind;
00584 
00585   typedef enum
00586   {
00587     IT_IMPLICIT_TYPE = 0, 
00588 
00589     IT_UNSIGNED_BYTE  = GL_UNSIGNED_BYTE,
00590     IT_BYTE           = GL_BYTE,
00591     IT_UNSIGNED_SHORT = GL_UNSIGNED_SHORT,
00592     IT_SHORT          = GL_SHORT,
00593     IT_UNSIGNED_INT   = GL_UNSIGNED_INT,
00594     IT_INT            = GL_INT,
00595     IT_FLOAT          = GL_FLOAT,
00596     IT_UNSIGNED_BYTE_3_3_2         = GL_UNSIGNED_BYTE_3_3_2,
00597     IT_UNSIGNED_BYTE_2_3_3_REV     = GL_UNSIGNED_BYTE_2_3_3_REV,
00598     IT_UNSIGNED_SHORT_5_6_5        = GL_UNSIGNED_SHORT_5_6_5,
00599     IT_UNSIGNED_SHORT_5_6_5_REV    = GL_UNSIGNED_SHORT_5_6_5_REV,
00600     IT_UNSIGNED_SHORT_4_4_4_4      = GL_UNSIGNED_SHORT_4_4_4_4,
00601     IT_UNSIGNED_SHORT_4_4_4_4_REV  = GL_UNSIGNED_SHORT_4_4_4_4_REV,
00602     IT_UNSIGNED_SHORT_5_5_5_1      = GL_UNSIGNED_SHORT_5_5_5_1,
00603     IT_UNSIGNED_SHORT_1_5_5_5_REV  = GL_UNSIGNED_SHORT_1_5_5_5_REV,
00604     IT_UNSIGNED_INT_8_8_8_8        = GL_UNSIGNED_INT_8_8_8_8,
00605     IT_UNSIGNED_INT_8_8_8_8_REV    = GL_UNSIGNED_INT_8_8_8_8_REV,
00606     IT_UNSIGNED_INT_10_10_10_2     = GL_UNSIGNED_INT_10_10_10_2,
00607     IT_UNSIGNED_INT_2_10_10_10_REV = GL_UNSIGNED_INT_2_10_10_10_REV,
00608 
00609     IT_UNSIGNED_INT_5_9_9_9_REV       = GL_UNSIGNED_INT_5_9_9_9_REV_EXT,     /* EXT_texture_shared_exponent, supports only GL_RGB */
00610     IT_UNSIGNED_INT_10F_11F_11F_REV   = GL_UNSIGNED_INT_10F_11F_11F_REV_EXT, /* EXT_packed_float, supports only GL_RGB */
00611     IT_UNSIGNED_INT_24_8              = GL_UNSIGNED_INT_24_8,                /* EXT_packed_depth_stencil/GL_ARB_framebuffer_object */
00612     IT_FLOAT_32_UNSIGNED_INT_24_8_REV = GL_FLOAT_32_UNSIGNED_INT_24_8_REV    /* ARB_depth_buffer_float */
00613 
00614   } EImageType;
00615 
00616   typedef enum
00617   {
00618     PT_POINTS         = GL_POINTS,
00619     PT_LINES          = GL_LINES,
00620     PT_LINE_LOOP      = GL_LINE_LOOP,
00621 
00622     PT_LINE_STRIP     = GL_LINE_STRIP,
00623     PT_TRIANGLES      = GL_TRIANGLES,
00624     PT_TRIANGLE_STRIP = GL_TRIANGLE_STRIP,
00625     PT_TRIANGLE_FAN   = GL_TRIANGLE_FAN,
00626     PT_QUADS          = GL_QUADS,
00627     PT_QUAD_STRIP     = GL_QUAD_STRIP,
00628     PT_POLYGON        = GL_POLYGON,
00629 
00630     // geometry shader
00631     PT_LINES_ADJACENCY          = GL_LINES_ADJACENCY_EXT,
00632     PT_LINE_STRIP_ADJACENCY     = GL_LINE_STRIP_ADJACENCY_EXT,
00633     PT_TRIANGLES_ADJACENCY      = GL_TRIANGLES_ADJACENCY_EXT,
00634     PT_TRIANGLE_STRIP_ADJACENCY = GL_TRIANGLE_STRIP_ADJACENCY_EXT,
00635 
00636     // GL_ARB_tessellation_shader
00637     PT_PATCHES = GL_PATCHES,
00638 
00639     PT_UNKNOWN,
00640 
00641   } EPrimitiveType;
00642 
00643   typedef enum 
00644   { 
00645     PF_FRONT=GL_FRONT, 
00646     PF_BACK=GL_BACK, 
00647     PF_FRONT_AND_BACK=GL_FRONT_AND_BACK 
00648   } EPolygonFace;
00649 
00650   typedef enum 
00651   { 
00652     HM_FASTEST=GL_FASTEST, 
00653     HM_NICEST=GL_NICEST, 
00654     HM_DONT_CARE=GL_DONT_CARE 
00655   } EHintMode;
00656 
00657   typedef enum 
00658   { 
00659     FF_CW=GL_CW, 
00660     FF_CCW=GL_CCW 
00661   } EFrontFace;
00662 
00663   typedef enum 
00664   { 
00665     FU_NEVER=GL_NEVER, 
00666     FU_LESS=GL_LESS, 
00667     FU_EQUAL=GL_EQUAL, 
00668     FU_LEQUAL=GL_LEQUAL, 
00669     FU_GREATER=GL_GREATER, 
00670     FU_NOTEQUAL=GL_NOTEQUAL, 
00671     FU_GEQUAL=GL_GEQUAL, 
00672     FU_ALWAYS=GL_ALWAYS 
00673   } EFunction;
00674 
00675   typedef enum 
00676   { 
00677     PM_FILL=GL_FILL, 
00678     PM_LINE=GL_LINE, 
00679     PM_POINT=GL_POINT 
00680   } EPolygonMode;
00681 
00682   typedef enum 
00683   { 
00684     SM_FLAT=GL_FLAT, 
00685     SM_SMOOTH=GL_SMOOTH 
00686   } EShadeModel;
00687 
00688   typedef enum 
00689   {
00690     BE_FUNC_ADD=GL_FUNC_ADD, 
00691     BE_FUNC_SUBTRACT=GL_FUNC_SUBTRACT, 
00692     BE_FUNC_REVERSE_SUBTRACT=GL_FUNC_REVERSE_SUBTRACT, 
00693     BE_MIN=GL_MIN, 
00694     BE_MAX=GL_MAX 
00695   } EBlendEquation;
00696 
00697   typedef enum 
00698   { 
00699     CM_EMISSION=GL_EMISSION, 
00700     CM_AMBIENT=GL_AMBIENT, 
00701     CM_DIFFUSE=GL_DIFFUSE, 
00702     CM_SPECULAR=GL_SPECULAR, 
00703     CM_AMBIENT_AND_DIFFUSE=GL_AMBIENT_AND_DIFFUSE 
00704   } EColorMaterial;
00705 
00706   typedef enum 
00707   { 
00708     CC_SEPARATE_SPECULAR_COLOR=GL_SEPARATE_SPECULAR_COLOR, 
00709     CC_SINGLE_COLOR=GL_SINGLE_COLOR 
00710   } EColorControl;
00711 
00712   typedef enum 
00713   {
00714     FM_LINEAR=GL_LINEAR, 
00715     FM_EXP=GL_EXP, 
00716     FM_EXP2=GL_EXP2 
00717   } EFogMode;
00718 
00719   typedef enum 
00720   { 
00721     LO_CLEAR=GL_CLEAR, 
00722     LO_SET=GL_SET, 
00723     LO_COPY=GL_COPY, 
00724     LO_COPY_INVERTED=GL_COPY_INVERTED, 
00725     LO_NOOP=GL_NOOP, 
00726     LO_INVERT=GL_INVERT, 
00727     LO_AND=GL_AND, 
00728     LO_NAND=GL_NAND, 
00729     LO_OR=GL_OR, 
00730     LO_NOR=GL_NOR, 
00731     LO_XOR=GL_XOR, 
00732     LO_EQUIV=GL_EQUIV, 
00733     LO_AND_REVERSE=GL_AND_REVERSE, 
00734     LO_AND_INVERTED=GL_AND_INVERTED, 
00735     LO_OR_REVERSE=GL_OR_REVERSE, 
00736     LO_OR_INVERTED=GL_OR_INVERTED 
00737   } ELogicOp;
00738 
00739   typedef enum 
00740   { 
00741     SO_KEEP=GL_KEEP, 
00742     SO_ZERO=GL_ZERO, 
00743     SO_REPLACE=GL_REPLACE, 
00744     SO_INCR=GL_INCR, 
00745     SO_INCR_WRAP=GL_INCR_WRAP, 
00746     SO_DECR=GL_DECR, 
00747     SO_DECR_WRAP=GL_DECR_WRAP, 
00748     SO_INVERT=GL_INVERT 
00749   } EStencilOp;
00750 
00751  typedef enum 
00752   { 
00753     TPF_NEAREST=GL_NEAREST, 
00754     TPF_LINEAR=GL_LINEAR, 
00755     TPF_NEAREST_MIPMAP_NEAREST=GL_NEAREST_MIPMAP_NEAREST, 
00756     TPF_LINEAR_MIPMAP_NEAREST=GL_LINEAR_MIPMAP_NEAREST, 
00757     TPF_NEAREST_MIPMAP_LINEAR=GL_NEAREST_MIPMAP_LINEAR, 
00758     TPF_LINEAR_MIPMAP_LINEAR=GL_LINEAR_MIPMAP_LINEAR 
00759   } ETexParamFilter;
00760 
00761   typedef enum 
00762   { 
00763     TPW_CLAMP           = GL_CLAMP, 
00764     TPW_CLAMP_TO_BORDER = GL_CLAMP_TO_BORDER,
00765     TPW_CLAMP_TO_EDGE   = GL_CLAMP_TO_EDGE,
00766     TPW_MIRRORED_REPEAT = GL_MIRRORED_REPEAT,
00767     TPW_REPEAT          = GL_REPEAT
00768   } ETexParamWrap;
00769 
00770   typedef enum 
00771   {
00772     TEM_DECAL=GL_DECAL, 
00773     TEM_MODULATE=GL_MODULATE, 
00774     TEM_ADD=GL_ADD, 
00775     TEM_BLEND=GL_BLEND, 
00776     TEM_REPLACE=GL_REPLACE, 
00777     TEM_COMBINE=GL_COMBINE, 
00778     TEM_ADD_SIGN=GL_ADD_SIGNED, 
00779     TEM_INTERPOLATE=GL_INTERPOLATE, 
00780     TEM_SUBTRACT=GL_SUBTRACT, 
00781     TEM_DOT3_RGB=GL_DOT3_RGB, 
00782     TEM_DOT3_RGBA=GL_DOT3_RGBA 
00783   } ETexEnvMode;
00784 
00785   typedef enum 
00786   {
00787     TES_TEXTURE=GL_TEXTURE, 
00788     TES_TEXTURE0=GL_TEXTURE0, 
00789     TES_TEXTURE1=GL_TEXTURE1, 
00790     TES_TEXTURE2=GL_TEXTURE2, 
00791     TES_TEXTURE3=GL_TEXTURE3, 
00792     TES_TEXTURE4=GL_TEXTURE4, 
00793     TES_TEXTURE5=GL_TEXTURE5, 
00794     TES_TEXTURE6=GL_TEXTURE6, 
00795     TES_TEXTURE7=GL_TEXTURE7, 
00796     TES_CONSTANT=GL_CONSTANT,
00797     TES_PRIMARY_COLOR=GL_PRIMARY_COLOR, 
00798     TES_PREVIOUS=GL_PREVIOUS
00799   } ETexEnvSource;
00800 
00801   typedef enum 
00802   {
00803     TEO_SRC_COLOR=GL_SRC_COLOR, 
00804     TEO_ONE_MINUS_SRC_COLOR=GL_ONE_MINUS_SRC_COLOR,
00805     TEO_SRC_ALPHA=GL_SRC_ALPHA, 
00806     TEO_ONE_MINUS_SRC_ALPHA=GL_ONE_MINUS_SRC_ALPHA
00807   } ETexEnvOperand;
00808 
00810   typedef enum 
00811   {
00812     TGM_DISABLED = 0, 
00813     TGM_EYE_LINEAR = GL_EYE_LINEAR,         
00814     TGM_OBJECT_LINEAR = GL_OBJECT_LINEAR,   
00815     TGM_SPHERE_MAP = GL_SPHERE_MAP,         
00816     TGM_REFLECTION_MAP = GL_REFLECTION_MAP,
00817     TGM_NORMAL_MAP = GL_NORMAL_MAP           
00818   } ETexGenMode;
00819 
00821   typedef enum 
00822   {
00823     // Common ones
00824     EN_BLEND, 
00825     EN_CULL_FACE, 
00826     EN_DEPTH_TEST, 
00827     EN_STENCIL_TEST, 
00828     EN_DITHER, 
00829     EN_POLYGON_OFFSET_FILL, 
00830     EN_POLYGON_OFFSET_LINE, 
00831     EN_POLYGON_OFFSET_POINT, 
00832     EN_COLOR_LOGIC_OP, 
00833     EN_MULTISAMPLE, 
00834 
00835     // Smoothing
00836     EN_POINT_SMOOTH, 
00837     EN_LINE_SMOOTH, 
00838     EN_POLYGON_SMOOTH, 
00839 
00840     // Stippling
00841     EN_LINE_STIPPLE, 
00842     EN_POLYGON_STIPPLE, 
00843 
00844     // Point sprites
00845     EN_POINT_SPRITE, 
00846     EN_PROGRAM_POINT_SIZE, 
00847 
00848     // Fixed function pipeline
00849     EN_ALPHA_TEST, 
00850     EN_LIGHTING, 
00851     EN_COLOR_SUM, 
00852     EN_FOG, 
00853     EN_NORMALIZE, 
00854     EN_RESCALE_NORMAL, 
00855 
00856     // Available only under OpenGL 2.x
00857     EN_VERTEX_PROGRAM_TWO_SIDE, 
00858 
00859     // OpenGL 3.2
00860     EN_TEXTURE_CUBE_MAP_SEAMLESS, 
00861 
00862     // OpenGL 3.0
00863     EN_CLIP_DISTANCE0, 
00864     EN_CLIP_DISTANCE1, 
00865     EN_CLIP_DISTANCE2, 
00866     EN_CLIP_DISTANCE3, 
00867     EN_CLIP_DISTANCE4, 
00868     EN_CLIP_DISTANCE5, 
00869     EN_CLIP_DISTANCE6, 
00870     EN_CLIP_DISTANCE7, 
00871 
00872     // Multisampling
00873     EN_SAMPLE_ALPHA_TO_COVERAGE, 
00874     EN_SAMPLE_ALPHA_TO_ONE, 
00875     EN_SAMPLE_COVERAGE, 
00876 
00877     EN_EnableCount, 
00878 
00879     EN_UnknownEnable 
00880 
00881   } EEnable;
00882 
00883   typedef enum
00884   {
00885     BU_STREAM_DRAW = GL_STREAM_DRAW,   
00886     BU_STREAM_READ = GL_STREAM_READ,   
00887     BU_STREAM_COPY = GL_STREAM_COPY,   
00888     BU_STATIC_DRAW = GL_STATIC_DRAW,   
00889     BU_STATIC_READ = GL_STATIC_READ,   
00890     BU_STATIC_COPY = GL_STATIC_COPY,   
00891     BU_DYNAMIC_DRAW = GL_DYNAMIC_DRAW, 
00892     BU_DYNAMIC_READ = GL_DYNAMIC_READ, 
00893     BU_DYNAMIC_COPY = GL_DYNAMIC_COPY  
00894   } EBufferObjectUsage;
00895 
00896   typedef enum
00897   {
00898     BA_READ_ONLY  = GL_READ_ONLY,
00899     BA_WRITE_ONLY = GL_WRITE_ONLY, 
00900     BA_READ_WRITE = GL_READ_WRITE
00901   } EBufferObjectAccess;
00902 
00903   typedef enum
00904   {
00905     AlignLeft    = 1,
00906     AlignHCenter = 2,
00907     AlignRight   = 4,
00908     AlignTop     = 8,
00909     AlignVCenter = 16,
00910     AlignBottom  = 32
00911   } EAlign;
00912 
00913   typedef enum
00914   {
00915     TextAlignLeft,
00916     TextAlignRight,
00917     TextAlignCenter,
00918     TextAlignJustify,
00919   } ETextAlign;
00920 
00921   typedef enum
00922   {
00923     Text2D = 1,
00924     Text3D = 2
00925   } ETextMode;
00926 
00927   typedef enum
00928   {
00929     LeftToRightText,
00930     RightToLeftText,
00931     TopToBottomText
00932   } ETextLayout;
00933 
00934   typedef enum
00935   {
00936     NeverDepthSort,
00937     AlwaysDepthSort,
00938     AlphaDepthSort
00939   } EDepthSortMode;
00940 
00941   typedef enum
00942   {
00943     ID_None,
00944     ID_1D,
00945     ID_2D,
00946     ID_3D,
00947     ID_Cubemap,
00948     ID_Error
00949   } EImageDimension;
00950 
00951   typedef enum
00952   {
00953     ST_RenderStates = 1,
00954     ST_Enables      = 2,
00955     ST_TextureSamplers = 4,
00956     ST_Lights       = 8,
00957     ST_ClipPlanes   = 16
00958   } EStateType;
00959 
00960   typedef enum
00961   {
00962     RS_VertexAttrib,
00963     RS_VertexAttrib0 = RS_VertexAttrib,
00964     RS_VertexAttrib1,
00965     RS_VertexAttrib2,
00966     RS_VertexAttrib3,
00967     RS_VertexAttrib4,
00968     RS_VertexAttrib5,
00969     RS_VertexAttrib6,
00970     RS_VertexAttrib7,
00971 
00972     RS_AlphaFunc,
00973     RS_BlendColor,
00974     RS_BlendEquation,
00975     RS_BlendFunc,
00976     RS_Color,
00977     RS_ColorMask,
00978     RS_CullFace,
00979     RS_DepthFunc,
00980     RS_DepthMask,
00981     RS_DepthRange,
00982     RS_Fog,
00983     RS_FrontFace,
00984     RS_PolygonMode,
00985     RS_Hint,
00986     RS_LightModel,
00987     RS_LineStipple,
00988     RS_LineWidth,
00989     RS_LogicOp,
00990     RS_Material,
00991     RS_Normal,
00992     RS_PixelTransfer,
00993     RS_PointParameter,
00994     RS_PointSize,
00995     RS_PolygonOffset,
00996     RS_PolygonStipple,
00997     RS_SampleCoverage,
00998     RS_SecondaryColor,
00999     RS_ShadeModel,
01000     RS_StencilFunc,
01001     RS_StencilMask,
01002     RS_StencilOp,
01003     RS_GLSLProgram,
01004 
01005     RS_Light,
01006     RS_Light0 = RS_Light,
01007     RS_Light1,
01008     RS_Light2,
01009     RS_Light3,
01010     RS_Light4,
01011     RS_Light5,
01012     RS_Light6,
01013     RS_Light7,
01014 
01015     RS_ClipPlane,
01016     RS_ClipPlane0 = RS_ClipPlane,
01017     RS_ClipPlane1,
01018     RS_ClipPlane2,
01019     RS_ClipPlane3,
01020     RS_ClipPlane4,
01021     RS_ClipPlane5,
01022 
01023     RS_TextureSampler,
01024     RS_TextureSampler0  = RS_TextureSampler + 0,
01025     RS_TextureSampler1  = RS_TextureSampler + 1,
01026     RS_TextureSampler2  = RS_TextureSampler + 2,
01027     RS_TextureSampler3  = RS_TextureSampler + 3,
01028     RS_TextureSampler4  = RS_TextureSampler + 4,
01029     RS_TextureSampler5  = RS_TextureSampler + 5,
01030     RS_TextureSampler6  = RS_TextureSampler + 6,
01031     RS_TextureSampler7  = RS_TextureSampler + 7,
01032     RS_TextureSampler8  = RS_TextureSampler + 8,
01033     RS_TextureSampler9  = RS_TextureSampler + 9,
01034     RS_TextureSampler10 = RS_TextureSampler + 10,
01035     RS_TextureSampler11 = RS_TextureSampler + 11,
01036     RS_TextureSampler12 = RS_TextureSampler + 12,
01037     RS_TextureSampler13 = RS_TextureSampler + 13,
01038     RS_TextureSampler14 = RS_TextureSampler + 14,
01039     RS_TextureSampler15 = RS_TextureSampler + 15,
01040     /* ... */
01041 
01042     RS_TexGen   = RS_TextureSampler + VL_MAX_TEXTURE_UNITS,
01043     RS_TexGen0  = RS_TexGen + 0,
01044     RS_TexGen1  = RS_TexGen + 1,
01045     RS_TexGen2  = RS_TexGen + 2,
01046     RS_TexGen3  = RS_TexGen + 3,
01047     RS_TexGen4  = RS_TexGen + 4,
01048     RS_TexGen5  = RS_TexGen + 5,
01049     RS_TexGen6  = RS_TexGen + 6,
01050     RS_TexGen7  = RS_TexGen + 7,
01051     RS_TexGen8  = RS_TexGen + 8,
01052     RS_TexGen9  = RS_TexGen + 9,
01053     RS_TexGen10 = RS_TexGen + 10,
01054     RS_TexGen11 = RS_TexGen + 11,
01055     RS_TexGen12 = RS_TexGen + 12,
01056     RS_TexGen13 = RS_TexGen + 13,
01057     RS_TexGen14 = RS_TexGen + 14,
01058     RS_TexGen15 = RS_TexGen + 15,
01059     /* ... */
01060 
01061     RS_TexEnv   = RS_TexGen + VL_MAX_TEXTURE_UNITS,
01062     RS_TexEnv0  = RS_TexEnv + 0,
01063     RS_TexEnv1  = RS_TexEnv + 1,
01064     RS_TexEnv2  = RS_TexEnv + 2,
01065     RS_TexEnv3  = RS_TexEnv + 3,
01066     RS_TexEnv4  = RS_TexEnv + 4,
01067     RS_TexEnv5  = RS_TexEnv + 5,
01068     RS_TexEnv6  = RS_TexEnv + 6,
01069     RS_TexEnv7  = RS_TexEnv + 7,
01070     RS_TexEnv8  = RS_TexEnv + 8,
01071     RS_TexEnv9  = RS_TexEnv + 9,
01072     RS_TexEnv10 = RS_TexEnv + 10,
01073     RS_TexEnv11 = RS_TexEnv + 11,
01074     RS_TexEnv12 = RS_TexEnv + 12,
01075     RS_TexEnv13 = RS_TexEnv + 13,
01076     RS_TexEnv14 = RS_TexEnv + 14,
01077     RS_TexEnv15 = RS_TexEnv + 15,
01078     /* ... */
01079 
01080     RS_TextureMatrix   = RS_TexEnv + VL_MAX_TEXTURE_UNITS,
01081     RS_TextureMatrix0  = RS_TextureMatrix + 0,
01082     RS_TextureMatrix1  = RS_TextureMatrix + 1,
01083     RS_TextureMatrix2  = RS_TextureMatrix + 2,
01084     RS_TextureMatrix3  = RS_TextureMatrix + 3,
01085     RS_TextureMatrix4  = RS_TextureMatrix + 4,
01086     RS_TextureMatrix5  = RS_TextureMatrix + 5,
01087     RS_TextureMatrix6  = RS_TextureMatrix + 6,
01088     RS_TextureMatrix7  = RS_TextureMatrix + 7,
01089     RS_TextureMatrix8  = RS_TextureMatrix + 8,
01090     RS_TextureMatrix9  = RS_TextureMatrix + 9,
01091     RS_TextureMatrix10 = RS_TextureMatrix + 10,
01092     RS_TextureMatrix11 = RS_TextureMatrix + 11,
01093     RS_TextureMatrix12 = RS_TextureMatrix + 12,
01094     RS_TextureMatrix13 = RS_TextureMatrix + 13,
01095     RS_TextureMatrix14 = RS_TextureMatrix + 14,
01096     RS_TextureMatrix15 = RS_TextureMatrix + 15,
01097     /* ... */
01098 
01099     RS_RenderStateCount = RS_TextureMatrix15 + 1,
01100 
01101     RS_NONE,
01102 
01103   } ERenderState;
01104 
01105   typedef enum
01106   {
01107     GIT_POINTS              = GL_POINTS, 
01108     GIT_LINES               = GL_LINES,
01109     GIT_LINES_ADJACENCY     = GL_LINES_ADJACENCY_EXT, 
01110     GIT_TRIANGLES           = GL_TRIANGLES,
01111     GIT_TRIANGLES_ADJACENCY = GL_TRIANGLES_ADJACENCY_EXT
01112   } EGeometryInputType;
01113 
01114   typedef enum
01115   {
01116     GOT_POINTS = GL_POINTS, 
01117     GOT_LINE_STRIP = GL_LINE_STRIP,
01118     GOT_TRIANGLE_STRIP = GL_TRIANGLE_STRIP,
01119   } EGeometryOutputType;
01120 
01121   typedef enum
01122   {
01123     BB_COLOR_BUFFER_BIT   = GL_COLOR_BUFFER_BIT,
01124     BB_DEPTH_BUFFER_BIT   = GL_DEPTH_BUFFER_BIT, 
01125     BB_STENCIL_BUFFER_BIT = GL_STENCIL_BUFFER_BIT
01126   } EBufferBits;
01127 
01128   typedef enum
01129   {
01130     BT_AxisAlignedBillboard = 1,
01131     BT_SphericalBillboard = 2
01132   } EBillboardType;
01133 
01134   typedef enum
01135   {
01136     SM_SortBackToFront,
01137     SM_SortFrontToBack
01138   } ESortMode;
01139 
01140   typedef enum
01141   {
01142     GM_GetOrCreate,
01143     GM_DontCreate
01144   } EGetMode;
01145 
01146   typedef enum
01147   {
01148     SE_Unknown,
01149     SE_ASCII,
01150     SE_UTF8,
01151     SE_UTF16_BE,
01152     SE_UTF16_LE,
01153     SE_UTF32_BE,
01154     SE_UTF32_LE,
01155     SE_LATIN1,
01156   } EStringEncoding;
01157 
01158   typedef enum
01159   {
01160     OM_ReadOnly,
01161     OM_WriteOnly,
01162   } EOpenMode;
01163 
01164   typedef enum
01165   {
01166     Key_None = 0,
01167 
01168     // unicode keys
01169 
01170     Key_0,
01171     Key_1,
01172     Key_2,
01173     Key_3,
01174     Key_4,
01175     Key_5,
01176     Key_6,
01177     Key_7,
01178     Key_8,
01179     Key_9,
01180 
01181     Key_A,
01182     Key_B,
01183     Key_C,
01184     Key_D,
01185     Key_E,
01186     Key_F,
01187     Key_G,
01188     Key_H,
01189     Key_I,
01190     Key_J,
01191     Key_K,
01192     Key_L,
01193     Key_M,
01194     Key_N,
01195     Key_O,
01196     Key_P,
01197     Key_Q,
01198     Key_R,
01199     Key_S,
01200     Key_T,
01201     Key_U,
01202     Key_V,
01203     Key_W,
01204     Key_X,
01205     Key_Y,
01206     Key_Z,
01207 
01208     Key_Return,
01209     Key_BackSpace,
01210     Key_Tab,
01211     Key_Space,
01212 
01213     Key_Clear,
01214     Key_Escape,
01215     Key_Exclam,
01216     Key_QuoteDbl,
01217     Key_Hash,
01218     Key_Dollar,
01219     Key_Ampersand,
01220     Key_Quote,
01221     Key_LeftParen,
01222     Key_RightParen,
01223     Key_Asterisk,
01224     Key_Plus,
01225     Key_Comma,
01226     Key_Minus,
01227     Key_Period,
01228     Key_Slash,
01229     Key_Colon,
01230     Key_Semicolon,
01231     Key_Less,
01232     Key_Equal,
01233     Key_Greater,
01234     Key_Question,
01235     Key_At,
01236     Key_LeftBracket,
01237     Key_BackSlash,
01238     Key_RightBracket,
01239     Key_Caret,
01240     Key_Underscore,
01241     Key_QuoteLeft,
01242 
01243     // non unicode keys
01244 
01245     Key_Ctrl,
01246     Key_LeftCtrl,
01247     Key_RightCtrl,
01248     Key_Alt,
01249     Key_LeftAlt,
01250     Key_RightAlt,
01251     Key_Shift,
01252     Key_LeftShift,
01253     Key_RightShift,
01254     Key_Insert,
01255     Key_Delete,
01256     Key_Home,
01257     Key_End,
01258     Key_Print,
01259     Key_Pause,
01260     Key_PageUp,
01261     Key_PageDown,
01262     Key_Left,
01263     Key_Right,
01264     Key_Up,
01265     Key_Down,
01266     Key_F1,
01267     Key_F2,
01268     Key_F3,
01269     Key_F4,
01270     Key_F5,
01271     Key_F6,
01272     Key_F7,
01273     Key_F8,
01274     Key_F9,
01275     Key_F10,
01276     Key_F11,
01277     Key_F12,
01278 
01279     Key_Unknown,
01280 
01281     Key_NumberOfKeys
01282 
01283   } EKey;
01284 
01285   typedef enum
01286   {
01287     NoButton = 0,
01288 
01289     LeftButton   = 1,
01290     RightButton  = 2,
01291     MiddleButton = 4,
01292 
01293     UnknownButton,
01294   } EMouseButton;
01295 
01296   typedef enum
01297   {
01298     IN_Local                      = 0x00, 
01299     IN_Propagate                  = 0x01, 
01300     IN_Sticky                     = 0x04, 
01301     IN_Propagate_Overrides_Sticky = 0x01 | 0x02 | 0x04, 
01302     IN_Propagate_Overrides        = 0x01 | 0x02, 
01303     IN_Propagate_Sticky           = 0x01 | 0x04, 
01304   } EInheritance;
01305 
01306   typedef enum
01307   {
01308     ST_VERTEX_SHADER          = GL_VERTEX_SHADER, 
01309     ST_TESS_CONTROL_SHADER    = GL_TESS_CONTROL_SHADER, 
01310     ST_TESS_EVALUATION_SHADER = GL_TESS_EVALUATION_SHADER, 
01311     ST_GEOMETRY_SHADER        = GL_GEOMETRY_SHADER, 
01312     ST_FRAGMENT_SHADER        = GL_FRAGMENT_SHADER 
01313   } EShaderType;
01314 
01315   typedef enum
01316   {
01317     TW_TESS_WINDING_ODD         = GLU_TESS_WINDING_ODD,
01318     TW_TESS_WINDING_NONZERO     = GLU_TESS_WINDING_NONZERO,
01319     TW_TESS_WINDING_POSITIVE    = GLU_TESS_WINDING_POSITIVE,
01320     TW_TESS_WINDING_NEGATIVE    = GLU_TESS_WINDING_NEGATIVE,
01321     TW_TESS_WINDING_ABS_GEQ_TWO = GLU_TESS_WINDING_ABS_GEQ_TWO
01322   } ETessellationWinding;
01323 
01324   typedef enum { 
01325     VEL_VERBOSITY_SILENT, 
01326     VEL_VERBOSITY_ERROR,  
01327     VEL_VERBOSITY_NORMAL, 
01328     VEL_VERBOSITY_DEBUG   
01329   } EVerbosityLevel;
01330 
01331   typedef enum 
01332   { 
01333     LL_LogNotify,
01334     LL_LogPrint,
01335     LL_LogBug,
01336     LL_LogError,
01337     LL_LogWarning,
01338     LL_LogDebug,
01339   } ELogLevel;
01340 
01341   typedef enum
01342   {
01343     PPCO_LOWER_LEFT = GL_LOWER_LEFT,
01344     PPCO_UPPER_LEFT = GL_UPPER_LEFT
01345   } EPointSpriteCoordOrigin;
01346 
01349   typedef enum
01350   {
01351     VAI_NORMAL,  
01352 
01353 
01354     VAI_INTEGER, 
01355 
01356 
01357     VAI_DOUBLE,  
01358 
01359   } EVertexAttribInterpretation;
01360 
01362   typedef enum
01363   {
01364     VA_Position  = 0,
01365     VA_Normal    = 1,
01366     VA_Color     = 2,
01367     VA_TexCoord0 = 3,
01368   } EVertexAttribBinding;
01369 
01371   typedef enum
01372   {
01373     UT_NONE = 0x0,
01374 
01375     UT_FLOAT = GL_FLOAT, 
01376     UT_FLOAT_VEC2 = GL_FLOAT_VEC2, 
01377     UT_FLOAT_VEC3 = GL_FLOAT_VEC3, 
01378     UT_FLOAT_VEC4 = GL_FLOAT_VEC4, 
01379     UT_DOUBLE = GL_DOUBLE, 
01380     UT_DOUBLE_VEC2 = GL_DOUBLE_VEC2, 
01381     UT_DOUBLE_VEC3 = GL_DOUBLE_VEC3, 
01382     UT_DOUBLE_VEC4 = GL_DOUBLE_VEC4, 
01383     UT_INT = GL_INT, 
01384     UT_INT_VEC2 = GL_INT_VEC2, 
01385     UT_INT_VEC3 = GL_INT_VEC3, 
01386     UT_INT_VEC4 = GL_INT_VEC4, 
01387     UT_UNSIGNED_INT = GL_UNSIGNED_INT, 
01388     UT_UNSIGNED_INT_VEC2 = GL_UNSIGNED_INT_VEC2, 
01389     UT_UNSIGNED_INT_VEC3 = GL_UNSIGNED_INT_VEC3, 
01390     UT_UNSIGNED_INT_VEC4 = GL_UNSIGNED_INT_VEC4, 
01391     UT_BOOL = GL_BOOL, 
01392     UT_BOOL_VEC2 = GL_BOOL_VEC2, 
01393     UT_BOOL_VEC3 = GL_BOOL_VEC3, 
01394     UT_BOOL_VEC4 = GL_BOOL_VEC4, 
01395     UT_FLOAT_MAT2 = GL_FLOAT_MAT2, 
01396     UT_FLOAT_MAT3 = GL_FLOAT_MAT3, 
01397     UT_FLOAT_MAT4 = GL_FLOAT_MAT4, 
01398     UT_FLOAT_MAT2x3 = GL_FLOAT_MAT2x3, 
01399     UT_FLOAT_MAT2x4 = GL_FLOAT_MAT2x4, 
01400     UT_FLOAT_MAT3x2 = GL_FLOAT_MAT3x2, 
01401     UT_FLOAT_MAT3x4 = GL_FLOAT_MAT3x4 , 
01402     UT_FLOAT_MAT4x2 = GL_FLOAT_MAT4x2 , 
01403     UT_FLOAT_MAT4x3 = GL_FLOAT_MAT4x3 , 
01404     UT_DOUBLE_MAT2 = GL_DOUBLE_MAT2 , 
01405     UT_DOUBLE_MAT3 = GL_DOUBLE_MAT3 , 
01406     UT_DOUBLE_MAT4 = GL_DOUBLE_MAT4 , 
01407     UT_DOUBLE_MAT2x3 = GL_DOUBLE_MAT2x3 , 
01408     UT_DOUBLE_MAT2x4 = GL_DOUBLE_MAT2x4 , 
01409     UT_DOUBLE_MAT3x2 = GL_DOUBLE_MAT3x2 , 
01410     UT_DOUBLE_MAT3x4 = GL_DOUBLE_MAT3x4 , 
01411     UT_DOUBLE_MAT4x2 = GL_DOUBLE_MAT4x2 , 
01412     UT_DOUBLE_MAT4x3 = GL_DOUBLE_MAT4x3 , 
01413 
01414     UT_SAMPLER_1D = GL_SAMPLER_1D , 
01415     UT_SAMPLER_2D = GL_SAMPLER_2D , 
01416     UT_SAMPLER_3D = GL_SAMPLER_3D , 
01417     UT_SAMPLER_CUBE = GL_SAMPLER_CUBE , 
01418     UT_SAMPLER_1D_SHADOW = GL_SAMPLER_1D_SHADOW , 
01419     UT_SAMPLER_2D_SHADOW = GL_SAMPLER_2D_SHADOW , 
01420     UT_SAMPLER_1D_ARRAY = GL_SAMPLER_1D_ARRAY , 
01421     UT_SAMPLER_2D_ARRAY = GL_SAMPLER_2D_ARRAY , 
01422     UT_SAMPLER_1D_ARRAY_SHADOW = GL_SAMPLER_1D_ARRAY_SHADOW , 
01423     UT_SAMPLER_2D_ARRAY_SHADOW = GL_SAMPLER_2D_ARRAY_SHADOW , 
01424     UT_SAMPLER_2D_MULTISAMPLE = GL_SAMPLER_2D_MULTISAMPLE , 
01425     UT_SAMPLER_2D_MULTISAMPLE_ARRAY = GL_SAMPLER_2D_MULTISAMPLE_ARRAY , 
01426     UT_SAMPLER_CUBE_SHADOW = GL_SAMPLER_CUBE_SHADOW , 
01427     UT_SAMPLER_BUFFER = GL_SAMPLER_BUFFER , 
01428     UT_SAMPLER_2D_RECT = GL_SAMPLER_2D_RECT , 
01429     UT_SAMPLER_2D_RECT_SHADOW = GL_SAMPLER_2D_RECT_SHADOW , 
01430     UT_INT_SAMPLER_1D = GL_INT_SAMPLER_1D , 
01431     UT_INT_SAMPLER_2D = GL_INT_SAMPLER_2D , 
01432     UT_INT_SAMPLER_3D = GL_INT_SAMPLER_3D , 
01433     UT_INT_SAMPLER_CUBE = GL_INT_SAMPLER_CUBE , 
01434     UT_INT_SAMPLER_1D_ARRAY = GL_INT_SAMPLER_1D_ARRAY , 
01435     UT_INT_SAMPLER_2D_ARRAY = GL_INT_SAMPLER_2D_ARRAY , 
01436     UT_INT_SAMPLER_2D_MULTISAMPLE = GL_INT_SAMPLER_2D_MULTISAMPLE , 
01437     UT_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY , 
01438     UT_INT_SAMPLER_BUFFER = GL_INT_SAMPLER_BUFFER , 
01439     UT_INT_SAMPLER_2D_RECT = GL_INT_SAMPLER_2D_RECT , 
01440     UT_UNSIGNED_INT_SAMPLER_1D = GL_UNSIGNED_INT_SAMPLER_1D , 
01441     UT_UNSIGNED_INT_SAMPLER_2D = GL_UNSIGNED_INT_SAMPLER_2D , 
01442     UT_UNSIGNED_INT_SAMPLER_3D = GL_UNSIGNED_INT_SAMPLER_3D , 
01443     UT_UNSIGNED_INT_SAMPLER_CUBE = GL_UNSIGNED_INT_SAMPLER_CUBE , 
01444     UT_UNSIGNED_INT_SAMPLER_1D_ARRAY = GL_UNSIGNED_INT_SAMPLER_1D_ARRAY , 
01445     UT_UNSIGNED_INT_SAMPLER_2D_ARRAY = GL_UNSIGNED_INT_SAMPLER_2D_ARRAY , 
01446     UT_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE , 
01447     UT_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY , 
01448     UT_UNSIGNED_INT_SAMPLER_BUFFER = GL_UNSIGNED_INT_SAMPLER_BUFFER , 
01449     UT_UNSIGNED_INT_SAMPLER_2D_RECT = GL_UNSIGNED_INT_SAMPLER_2D_RECT , 
01450 
01451     UT_UniformTypeCount
01452 
01453   } EUniformType;
01454 
01456   typedef enum
01457   {
01458     AT_FLOAT = GL_FLOAT, 
01459     AT_FLOAT_VEC2 = GL_FLOAT_VEC2, 
01460     AT_FLOAT_VEC3 = GL_FLOAT_VEC3, 
01461     AT_FLOAT_VEC4 = GL_FLOAT_VEC4, 
01462     AT_FLOAT_MAT2 = GL_FLOAT_MAT2, 
01463     AT_FLOAT_MAT3 = GL_FLOAT_MAT3, 
01464     AT_FLOAT_MAT4 = GL_FLOAT_MAT4, 
01465     AT_FLOAT_MAT2x3 = GL_FLOAT_MAT2x3, 
01466     AT_FLOAT_MAT2x4 = GL_FLOAT_MAT2x4, 
01467     AT_FLOAT_MAT3x2 = GL_FLOAT_MAT3x2, 
01468     AT_FLOAT_MAT3x4 = GL_FLOAT_MAT3x4, 
01469     AT_FLOAT_MAT4x2 = GL_FLOAT_MAT4x2, 
01470     AT_FLOAT_MAT4x3 = GL_FLOAT_MAT4x3, 
01471     AT_INT = GL_INT, 
01472     AT_INT_VEC2 = GL_INT_VEC2, 
01473     AT_INT_VEC3 = GL_INT_VEC3, 
01474     AT_INT_VEC4 = GL_INT_VEC4, 
01475     AT_UNSIGNED_INT = GL_UNSIGNED_INT, 
01476     AT_UNSIGNED_INT_VEC2 = GL_UNSIGNED_INT_VEC2, 
01477     AT_UNSIGNED_INT_VEC3 = GL_UNSIGNED_INT_VEC3, 
01478     AT_UNSIGNED_INT_VEC4 = GL_UNSIGNED_INT_VEC4, 
01479     AT_DOUBLE = GL_DOUBLE, 
01480     AT_DOUBLE_VEC2 = GL_DOUBLE_VEC2, 
01481     AT_DOUBLE_VEC3 = GL_DOUBLE_VEC3, 
01482     AT_DOUBLE_VEC4 = GL_DOUBLE_VEC4, 
01483     AT_DOUBLE_MAT2 = GL_DOUBLE_MAT2, 
01484     AT_DOUBLE_MAT3 = GL_DOUBLE_MAT3, 
01485     AT_DOUBLE_MAT4 = GL_DOUBLE_MAT4, 
01486     AT_DOUBLE_MAT2x3 = GL_DOUBLE_MAT2x3, 
01487     AT_DOUBLE_MAT2x4 = GL_DOUBLE_MAT2x4, 
01488     AT_DOUBLE_MAT3x2 = GL_DOUBLE_MAT3x2, 
01489     AT_DOUBLE_MAT3x4 = GL_DOUBLE_MAT3x4, 
01490     AT_DOUBLE_MAT4x2 = GL_DOUBLE_MAT4x2, 
01491     AT_DOUBLE_MAT4x3 = GL_DOUBLE_MAT4x3, 
01492 
01493   } EAttributeType;
01494 
01495   typedef enum
01496   {
01497     PMT_UserProjection,              
01498     PMT_OrthographicProjection,      
01499     PMT_PerspectiveProjection,       
01500     PMT_PerspectiveProjectionFrustum 
01501   } EProjectionMatrixType;
01502 
01503   typedef enum
01504   {
01505     BUF_ForceUpdate   = 0x1,
01506     BUF_DiscardRamBuffer = 0x2,
01507   } EBufferObjectUpdateFlags;
01508 
01509   typedef enum
01510   {
01512     BUM_KeepRamBuffer = 0x0,
01513 
01515     BUM_KeepRamBufferAndForceUpdate = BUF_ForceUpdate, 
01516 
01518     BUM_DiscardRamBuffer = BUF_DiscardRamBuffer,
01519 
01521     BUM_DiscardRamBufferAndForceUpdate = BUF_DiscardRamBuffer | BUF_ForceUpdate
01522   } EBufferObjectUpdateMode;
01523 
01524   typedef enum
01525   {
01526     SCM_OwnShaders, 
01527     SCM_ShareShaders 
01528   } EShaderCopyMode;
01529 
01530   typedef enum
01531   {
01532     RCS_RenderingStarted,
01533     RCS_RenderingFinished
01534   } EResetContextStates;
01535 }
01536 
01537 
01538 #endif

Visualization Library 2011.09.1160 Reference Documentation
Copyright 2005-2011 Michele Bosi. All rights reserved.
Updated on Thu May 2 2013 13:40:32.
Permission is granted to use this page to write and publish articles regarding Visualization Library.