Moved all OpenGL extension functions into the namespace glx. This protects against possible linker confusion if a library happens to export the extension functions. Also added ARB_vertex_program and NV_fragment_program extensions to glext.{h,cpp}
parent
440c137f4b
commit
873bfd115b
|
@ -18,115 +18,195 @@
|
|||
#endif /* ! _WIN32 */
|
||||
|
||||
#include "glext.h"
|
||||
|
||||
// ARB_texture_compression
|
||||
PFNGLCOMPRESSEDTEXIMAGE3DARBPROC EXTglCompressedTexImage3DARB;
|
||||
PFNGLCOMPRESSEDTEXIMAGE2DARBPROC EXTglCompressedTexImage2DARB;
|
||||
PFNGLCOMPRESSEDTEXIMAGE1DARBPROC EXTglCompressedTexImage1DARB;
|
||||
PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC EXTglCompressedTexSubImage3DARB;
|
||||
PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC EXTglCompressedTexSubImage2DARB;
|
||||
PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC EXTglCompressedTexSubImage1DARB;
|
||||
glx::PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glx::glCompressedTexImage3DARB;
|
||||
glx::PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glx::glCompressedTexImage2DARB;
|
||||
glx::PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glx::glCompressedTexImage1DARB;
|
||||
glx::PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glx::glCompressedTexSubImage3DARB;
|
||||
glx::PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glx::glCompressedTexSubImage2DARB;
|
||||
glx::PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glx::glCompressedTexSubImage1DARB;
|
||||
|
||||
// ARB_multitexture command function pointers
|
||||
PFNGLMULTITEXCOORD2IARBPROC EXTglMultiTexCoord2iARB;
|
||||
PFNGLMULTITEXCOORD2FARBPROC EXTglMultiTexCoord2fARB;
|
||||
PFNGLMULTITEXCOORD3FARBPROC EXTglMultiTexCoord3fARB;
|
||||
PFNGLMULTITEXCOORD3FVARBPROC EXTglMultiTexCoord3fvARB;
|
||||
PFNGLACTIVETEXTUREARBPROC EXTglActiveTextureARB;
|
||||
PFNGLCLIENTACTIVETEXTUREARBPROC EXTglClientActiveTextureARB;
|
||||
glx::PFNGLMULTITEXCOORD2IARBPROC glx::glMultiTexCoord2iARB;
|
||||
glx::PFNGLMULTITEXCOORD2FARBPROC glx::glMultiTexCoord2fARB;
|
||||
glx::PFNGLMULTITEXCOORD3FARBPROC glx::glMultiTexCoord3fARB;
|
||||
glx::PFNGLMULTITEXCOORD3FVARBPROC glx::glMultiTexCoord3fvARB;
|
||||
glx::PFNGLACTIVETEXTUREARBPROC glx::glActiveTextureARB;
|
||||
glx::PFNGLCLIENTACTIVETEXTUREARBPROC glx::glClientActiveTextureARB;
|
||||
|
||||
// NV_register_combiners command function pointers
|
||||
PFNGLCOMBINERPARAMETERFVNVPROC EXTglCombinerParameterfvNV;
|
||||
PFNGLCOMBINERPARAMETERIVNVPROC EXTglCombinerParameterivNV;
|
||||
PFNGLCOMBINERPARAMETERFNVPROC EXTglCombinerParameterfNV;
|
||||
PFNGLCOMBINERPARAMETERINVPROC EXTglCombinerParameteriNV;
|
||||
PFNGLCOMBINERINPUTNVPROC EXTglCombinerInputNV;
|
||||
PFNGLCOMBINEROUTPUTNVPROC EXTglCombinerOutputNV;
|
||||
PFNGLFINALCOMBINERINPUTNVPROC EXTglFinalCombinerInputNV;
|
||||
PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC EXTglGetCombinerInputParameterfvNV;
|
||||
PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC EXTglGetCombinerInputParameterivNV;
|
||||
PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC EXTglGetCombinerOutputParameterfvNV;
|
||||
PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC EXTglGetCombinerOutputParameterivNV;
|
||||
PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC EXTglGetFinalCombinerInputParameterfvNV;
|
||||
PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC EXTglGetFinalCombinerInputParameterivNV;
|
||||
glx::PFNGLCOMBINERPARAMETERFVNVPROC glx::glCombinerParameterfvNV;
|
||||
glx::PFNGLCOMBINERPARAMETERIVNVPROC glx::glCombinerParameterivNV;
|
||||
glx::PFNGLCOMBINERPARAMETERFNVPROC glx::glCombinerParameterfNV;
|
||||
glx::PFNGLCOMBINERPARAMETERINVPROC glx::glCombinerParameteriNV;
|
||||
glx::PFNGLCOMBINERINPUTNVPROC glx::glCombinerInputNV;
|
||||
glx::PFNGLCOMBINEROUTPUTNVPROC glx::glCombinerOutputNV;
|
||||
glx::PFNGLFINALCOMBINERINPUTNVPROC glx::glFinalCombinerInputNV;
|
||||
glx::PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glx::glGetCombinerInputParameterfvNV;
|
||||
glx::PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glx::glGetCombinerInputParameterivNV;
|
||||
glx::PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glx::glGetCombinerOutputParameterfvNV;
|
||||
glx::PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glx::glGetCombinerOutputParameterivNV;
|
||||
glx::PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glx::glGetFinalCombinerInputParameterfvNV;
|
||||
glx::PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glx::glGetFinalCombinerInputParameterivNV;
|
||||
|
||||
// NV_register_combiners2 command function pointers
|
||||
PFNGLCOMBINERSTAGEPARAMETERFVNVPROC EXTglCombinerStageParameterfvNV;
|
||||
PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC EXTglGetCombinerStageParameterfvNV;
|
||||
glx::PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glx::glCombinerStageParameterfvNV;
|
||||
glx::PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glx::glGetCombinerStageParameterfvNV;
|
||||
|
||||
// NV_vertex_program function pointers
|
||||
PFNGLAREPROGRAMSRESIDENTNVPROC EXTglAreProgramsResidentNV ;
|
||||
PFNGLBINDPROGRAMNVPROC EXTglBindProgramNV ;
|
||||
PFNGLDELETEPROGRAMSNVPROC EXTglDeleteProgramsNV ;
|
||||
PFNGLEXECUTEPROGRAMNVPROC EXTglExecuteProgramNV ;
|
||||
PFNGLGENPROGRAMSNVPROC EXTglGenProgramsNV ;
|
||||
PFNGLGETPROGRAMPARAMETERDVNVPROC EXTglGetProgramParameterdvNV ;
|
||||
PFNGLGETPROGRAMPARAMETERFVNVPROC EXTglGetProgramParameterfvNV ;
|
||||
PFNGLGETPROGRAMIVNVPROC EXTglGetProgramivNV ;
|
||||
PFNGLGETPROGRAMSTRINGNVPROC EXTglGetProgramStringNV ;
|
||||
PFNGLGETTRACKMATRIXIVNVPROC EXTglGetTrackMatrixivNV ;
|
||||
PFNGLGETVERTEXATTRIBDVNVPROC EXTglGetVertexAttribdvNV ;
|
||||
PFNGLGETVERTEXATTRIBFVNVPROC EXTglGetVertexAttribfvNV ;
|
||||
PFNGLGETVERTEXATTRIBIVNVPROC EXTglGetVertexAttribivNV ;
|
||||
PFNGLGETVERTEXATTRIBPOINTERVNVPROC EXTglGetVertexAttribPointervNV ;
|
||||
PFNGLISPROGRAMNVPROC EXTglIsProgramNV ;
|
||||
PFNGLLOADPROGRAMNVPROC EXTglLoadProgramNV ;
|
||||
PFNGLPROGRAMPARAMETER4DNVPROC EXTglProgramParameter4dNV ;
|
||||
PFNGLPROGRAMPARAMETER4DVNVPROC EXTglProgramParameter4dvNV ;
|
||||
PFNGLPROGRAMPARAMETER4FNVPROC EXTglProgramParameter4fNV ;
|
||||
PFNGLPROGRAMPARAMETER4FVNVPROC EXTglProgramParameter4fvNV ;
|
||||
PFNGLPROGRAMPARAMETERS4DVNVPROC EXTglProgramParameters4dvNV ;
|
||||
PFNGLPROGRAMPARAMETERS4FVNVPROC EXTglProgramParameters4fvNV ;
|
||||
PFNGLREQUESTRESIDENTPROGRAMSNVPROC EXTglRequestResidentProgramsNV ;
|
||||
PFNGLTRACKMATRIXNVPROC EXTglTrackMatrixNV ;
|
||||
PFNGLVERTEXATTRIBPOINTERNVPROC EXTglVertexAttribPointerNV ;
|
||||
PFNGLVERTEXATTRIB1DNVPROC EXTglVertexAttrib1dNV ;
|
||||
PFNGLVERTEXATTRIB1DVNVPROC EXTglVertexAttrib1dvNV ;
|
||||
PFNGLVERTEXATTRIB1FNVPROC EXTglVertexAttrib1fNV ;
|
||||
PFNGLVERTEXATTRIB1FVNVPROC EXTglVertexAttrib1fvNV ;
|
||||
PFNGLVERTEXATTRIB1SNVPROC EXTglVertexAttrib1sNV ;
|
||||
PFNGLVERTEXATTRIB1SVNVPROC EXTglVertexAttrib1svNV ;
|
||||
PFNGLVERTEXATTRIB2DNVPROC EXTglVertexAttrib2dNV ;
|
||||
PFNGLVERTEXATTRIB2DVNVPROC EXTglVertexAttrib2dvNV ;
|
||||
PFNGLVERTEXATTRIB2FNVPROC EXTglVertexAttrib2fNV ;
|
||||
PFNGLVERTEXATTRIB2FVNVPROC EXTglVertexAttrib2fvNV ;
|
||||
PFNGLVERTEXATTRIB2SNVPROC EXTglVertexAttrib2sNV ;
|
||||
PFNGLVERTEXATTRIB2SVNVPROC EXTglVertexAttrib2svNV ;
|
||||
PFNGLVERTEXATTRIB3DNVPROC EXTglVertexAttrib3dNV ;
|
||||
PFNGLVERTEXATTRIB3DVNVPROC EXTglVertexAttrib3dvNV ;
|
||||
PFNGLVERTEXATTRIB3FNVPROC EXTglVertexAttrib3fNV ;
|
||||
PFNGLVERTEXATTRIB3FVNVPROC EXTglVertexAttrib3fvNV ;
|
||||
PFNGLVERTEXATTRIB3SNVPROC EXTglVertexAttrib3sNV ;
|
||||
PFNGLVERTEXATTRIB3SVNVPROC EXTglVertexAttrib3svNV ;
|
||||
PFNGLVERTEXATTRIB4DNVPROC EXTglVertexAttrib4dNV ;
|
||||
PFNGLVERTEXATTRIB4DVNVPROC EXTglVertexAttrib4dvNV ;
|
||||
PFNGLVERTEXATTRIB4FNVPROC EXTglVertexAttrib4fNV ;
|
||||
PFNGLVERTEXATTRIB4FVNVPROC EXTglVertexAttrib4fvNV ;
|
||||
PFNGLVERTEXATTRIB4SNVPROC EXTglVertexAttrib4sNV ;
|
||||
PFNGLVERTEXATTRIB4SVNVPROC EXTglVertexAttrib4svNV ;
|
||||
PFNGLVERTEXATTRIB4UBVNVPROC EXTglVertexAttrib4ubvNV ;
|
||||
PFNGLVERTEXATTRIBS1DVNVPROC EXTglVertexAttribs1dvNV ;
|
||||
PFNGLVERTEXATTRIBS1FVNVPROC EXTglVertexAttribs1fvNV ;
|
||||
PFNGLVERTEXATTRIBS1SVNVPROC EXTglVertexAttribs1svNV ;
|
||||
PFNGLVERTEXATTRIBS2DVNVPROC EXTglVertexAttribs2dvNV ;
|
||||
PFNGLVERTEXATTRIBS2FVNVPROC EXTglVertexAttribs2fvNV ;
|
||||
PFNGLVERTEXATTRIBS2SVNVPROC EXTglVertexAttribs2svNV ;
|
||||
PFNGLVERTEXATTRIBS3DVNVPROC EXTglVertexAttribs3dvNV ;
|
||||
PFNGLVERTEXATTRIBS3FVNVPROC EXTglVertexAttribs3fvNV ;
|
||||
PFNGLVERTEXATTRIBS3SVNVPROC EXTglVertexAttribs3svNV ;
|
||||
PFNGLVERTEXATTRIBS4DVNVPROC EXTglVertexAttribs4dvNV ;
|
||||
PFNGLVERTEXATTRIBS4FVNVPROC EXTglVertexAttribs4fvNV ;
|
||||
PFNGLVERTEXATTRIBS4SVNVPROC EXTglVertexAttribs4svNV ;
|
||||
PFNGLVERTEXATTRIBS4UBVNVPROC EXTglVertexAttribs4ubvNV ;
|
||||
glx::PFNGLAREPROGRAMSRESIDENTNVPROC glx::glAreProgramsResidentNV ;
|
||||
glx::PFNGLBINDPROGRAMNVPROC glx::glBindProgramNV ;
|
||||
glx::PFNGLDELETEPROGRAMSNVPROC glx::glDeleteProgramsNV ;
|
||||
glx::PFNGLEXECUTEPROGRAMNVPROC glx::glExecuteProgramNV ;
|
||||
glx::PFNGLGENPROGRAMSNVPROC glx::glGenProgramsNV ;
|
||||
glx::PFNGLGETPROGRAMPARAMETERDVNVPROC glx::glGetProgramParameterdvNV ;
|
||||
glx::PFNGLGETPROGRAMPARAMETERFVNVPROC glx::glGetProgramParameterfvNV ;
|
||||
glx::PFNGLGETPROGRAMIVNVPROC glx::glGetProgramivNV ;
|
||||
glx::PFNGLGETPROGRAMSTRINGNVPROC glx::glGetProgramStringNV ;
|
||||
glx::PFNGLGETTRACKMATRIXIVNVPROC glx::glGetTrackMatrixivNV ;
|
||||
glx::PFNGLGETVERTEXATTRIBDVNVPROC glx::glGetVertexAttribdvNV ;
|
||||
glx::PFNGLGETVERTEXATTRIBFVNVPROC glx::glGetVertexAttribfvNV ;
|
||||
glx::PFNGLGETVERTEXATTRIBIVNVPROC glx::glGetVertexAttribivNV ;
|
||||
glx::PFNGLGETVERTEXATTRIBPOINTERVNVPROC glx::glGetVertexAttribPointervNV ;
|
||||
glx::PFNGLISPROGRAMNVPROC glx::glIsProgramNV ;
|
||||
glx::PFNGLLOADPROGRAMNVPROC glx::glLoadProgramNV ;
|
||||
glx::PFNGLPROGRAMPARAMETER4DNVPROC glx::glProgramParameter4dNV ;
|
||||
glx::PFNGLPROGRAMPARAMETER4DVNVPROC glx::glProgramParameter4dvNV ;
|
||||
glx::PFNGLPROGRAMPARAMETER4FNVPROC glx::glProgramParameter4fNV ;
|
||||
glx::PFNGLPROGRAMPARAMETER4FVNVPROC glx::glProgramParameter4fvNV ;
|
||||
glx::PFNGLPROGRAMPARAMETERS4DVNVPROC glx::glProgramParameters4dvNV ;
|
||||
glx::PFNGLPROGRAMPARAMETERS4FVNVPROC glx::glProgramParameters4fvNV ;
|
||||
glx::PFNGLREQUESTRESIDENTPROGRAMSNVPROC glx::glRequestResidentProgramsNV ;
|
||||
glx::PFNGLTRACKMATRIXNVPROC glx::glTrackMatrixNV ;
|
||||
glx::PFNGLVERTEXATTRIBPOINTERNVPROC glx::glVertexAttribPointerNV ;
|
||||
glx::PFNGLVERTEXATTRIB1DNVPROC glx::glVertexAttrib1dNV ;
|
||||
glx::PFNGLVERTEXATTRIB1DVNVPROC glx::glVertexAttrib1dvNV ;
|
||||
glx::PFNGLVERTEXATTRIB1FNVPROC glx::glVertexAttrib1fNV ;
|
||||
glx::PFNGLVERTEXATTRIB1FVNVPROC glx::glVertexAttrib1fvNV ;
|
||||
glx::PFNGLVERTEXATTRIB1SNVPROC glx::glVertexAttrib1sNV ;
|
||||
glx::PFNGLVERTEXATTRIB1SVNVPROC glx::glVertexAttrib1svNV ;
|
||||
glx::PFNGLVERTEXATTRIB2DNVPROC glx::glVertexAttrib2dNV ;
|
||||
glx::PFNGLVERTEXATTRIB2DVNVPROC glx::glVertexAttrib2dvNV ;
|
||||
glx::PFNGLVERTEXATTRIB2FNVPROC glx::glVertexAttrib2fNV ;
|
||||
glx::PFNGLVERTEXATTRIB2FVNVPROC glx::glVertexAttrib2fvNV ;
|
||||
glx::PFNGLVERTEXATTRIB2SNVPROC glx::glVertexAttrib2sNV ;
|
||||
glx::PFNGLVERTEXATTRIB2SVNVPROC glx::glVertexAttrib2svNV ;
|
||||
glx::PFNGLVERTEXATTRIB3DNVPROC glx::glVertexAttrib3dNV ;
|
||||
glx::PFNGLVERTEXATTRIB3DVNVPROC glx::glVertexAttrib3dvNV ;
|
||||
glx::PFNGLVERTEXATTRIB3FNVPROC glx::glVertexAttrib3fNV ;
|
||||
glx::PFNGLVERTEXATTRIB3FVNVPROC glx::glVertexAttrib3fvNV ;
|
||||
glx::PFNGLVERTEXATTRIB3SNVPROC glx::glVertexAttrib3sNV ;
|
||||
glx::PFNGLVERTEXATTRIB3SVNVPROC glx::glVertexAttrib3svNV ;
|
||||
glx::PFNGLVERTEXATTRIB4DNVPROC glx::glVertexAttrib4dNV ;
|
||||
glx::PFNGLVERTEXATTRIB4DVNVPROC glx::glVertexAttrib4dvNV ;
|
||||
glx::PFNGLVERTEXATTRIB4FNVPROC glx::glVertexAttrib4fNV ;
|
||||
glx::PFNGLVERTEXATTRIB4FVNVPROC glx::glVertexAttrib4fvNV ;
|
||||
glx::PFNGLVERTEXATTRIB4SNVPROC glx::glVertexAttrib4sNV ;
|
||||
glx::PFNGLVERTEXATTRIB4SVNVPROC glx::glVertexAttrib4svNV ;
|
||||
glx::PFNGLVERTEXATTRIB4UBVNVPROC glx::glVertexAttrib4ubvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS1DVNVPROC glx::glVertexAttribs1dvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS1FVNVPROC glx::glVertexAttribs1fvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS1SVNVPROC glx::glVertexAttribs1svNV ;
|
||||
glx::PFNGLVERTEXATTRIBS2DVNVPROC glx::glVertexAttribs2dvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS2FVNVPROC glx::glVertexAttribs2fvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS2SVNVPROC glx::glVertexAttribs2svNV ;
|
||||
glx::PFNGLVERTEXATTRIBS3DVNVPROC glx::glVertexAttribs3dvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS3FVNVPROC glx::glVertexAttribs3fvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS3SVNVPROC glx::glVertexAttribs3svNV ;
|
||||
glx::PFNGLVERTEXATTRIBS4DVNVPROC glx::glVertexAttribs4dvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS4FVNVPROC glx::glVertexAttribs4fvNV ;
|
||||
glx::PFNGLVERTEXATTRIBS4SVNVPROC glx::glVertexAttribs4svNV ;
|
||||
glx::PFNGLVERTEXATTRIBS4UBVNVPROC glx::glVertexAttribs4ubvNV ;
|
||||
|
||||
// EXT_paletted_texture command function pointers
|
||||
PFNGLCOLORTABLEEXTPROC EXTglColorTableEXT;
|
||||
glx::PFNGLCOLORTABLEEXTPROC glx::glColorTableEXT;
|
||||
|
||||
// EXT_blend_minmax command function pointers
|
||||
PFNGLBLENDEQUATIONEXTPROC EXTglBlendEquationEXT;
|
||||
glx::PFNGLBLENDEQUATIONEXTPROC glx::glBlendEquationEXT;
|
||||
|
||||
// WGL_EXT_swap_control command function pointers
|
||||
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
||||
PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT;
|
||||
glx::PFNWGLSWAPINTERVALEXTPROC glx::wglSwapIntervalEXT;
|
||||
glx::PFNWGLGETSWAPINTERVALEXTPROC glx::wglGetSwapIntervalEXT;
|
||||
|
||||
// ARB_vertex_program function pointers
|
||||
glx::PFNGLBINDPROGRAMARBPROC glx::glBindProgramARB;
|
||||
glx::PFNGLDELETEPROGRAMSARBPROC glx::glDeleteProgramsARB;
|
||||
glx::PFNGLGENPROGRAMSARBPROC glx::glGenProgramsARB;
|
||||
glx::PFNGLISPROGRAMARBPROC glx::glIsProgramARB;
|
||||
glx::PFNGLVERTEXATTRIB1SARBPROC glx::glVertexAttrib1sARB;
|
||||
glx::PFNGLVERTEXATTRIB1FARBPROC glx::glVertexAttrib1fARB;
|
||||
glx::PFNGLVERTEXATTRIB1DARBPROC glx::glVertexAttrib1dARB;
|
||||
glx::PFNGLVERTEXATTRIB2SARBPROC glx::glVertexAttrib2sARB;
|
||||
glx::PFNGLVERTEXATTRIB2FARBPROC glx::glVertexAttrib2fARB;
|
||||
glx::PFNGLVERTEXATTRIB2DARBPROC glx::glVertexAttrib2dARB;
|
||||
glx::PFNGLVERTEXATTRIB3SARBPROC glx::glVertexAttrib3sARB;
|
||||
glx::PFNGLVERTEXATTRIB3FARBPROC glx::glVertexAttrib3fARB;
|
||||
glx::PFNGLVERTEXATTRIB3DARBPROC glx::glVertexAttrib3dARB;
|
||||
glx::PFNGLVERTEXATTRIB4SARBPROC glx::glVertexAttrib4sARB;
|
||||
glx::PFNGLVERTEXATTRIB4FARBPROC glx::glVertexAttrib4fARB;
|
||||
glx::PFNGLVERTEXATTRIB4DARBPROC glx::glVertexAttrib4dARB;
|
||||
glx::PFNGLVERTEXATTRIB4NUBARBPROC glx::glVertexAttrib4NubARB;
|
||||
glx::PFNGLVERTEXATTRIB1SVARBPROC glx::glVertexAttrib1svARB;
|
||||
glx::PFNGLVERTEXATTRIB1FVARBPROC glx::glVertexAttrib1fvARB;
|
||||
glx::PFNGLVERTEXATTRIB1DVARBPROC glx::glVertexAttrib1dvARB;
|
||||
glx::PFNGLVERTEXATTRIB2SVARBPROC glx::glVertexAttrib2svARB;
|
||||
glx::PFNGLVERTEXATTRIB2FVARBPROC glx::glVertexAttrib2fvARB;
|
||||
glx::PFNGLVERTEXATTRIB2DVARBPROC glx::glVertexAttrib2dvARB;
|
||||
glx::PFNGLVERTEXATTRIB3SVARBPROC glx::glVertexAttrib3svARB;
|
||||
glx::PFNGLVERTEXATTRIB3FVARBPROC glx::glVertexAttrib3fvARB;
|
||||
glx::PFNGLVERTEXATTRIB3DVARBPROC glx::glVertexAttrib3dvARB;
|
||||
glx::PFNGLVERTEXATTRIB4BVARBPROC glx::glVertexAttrib4bvARB;
|
||||
glx::PFNGLVERTEXATTRIB4SVARBPROC glx::glVertexAttrib4svARB;
|
||||
glx::PFNGLVERTEXATTRIB4IVARBPROC glx::glVertexAttrib4ivARB;
|
||||
glx::PFNGLVERTEXATTRIB4UBVARBPROC glx::glVertexAttrib4ubvARB;
|
||||
glx::PFNGLVERTEXATTRIB4USVARBPROC glx::glVertexAttrib4usvARB;
|
||||
glx::PFNGLVERTEXATTRIB4UIVARBPROC glx::glVertexAttrib4uivARB;
|
||||
glx::PFNGLVERTEXATTRIB4FVARBPROC glx::glVertexAttrib4fvARB;
|
||||
glx::PFNGLVERTEXATTRIB4DVARBPROC glx::glVertexAttrib4dvARB;
|
||||
glx::PFNGLVERTEXATTRIB4NBVARBPROC glx::glVertexAttrib4NbvARB;
|
||||
glx::PFNGLVERTEXATTRIB4NSVARBPROC glx::glVertexAttrib4NsvARB;
|
||||
glx::PFNGLVERTEXATTRIB4NIVARBPROC glx::glVertexAttrib4NivARB;
|
||||
glx::PFNGLVERTEXATTRIB4NUBVARBPROC glx::glVertexAttrib4NubvARB;
|
||||
glx::PFNGLVERTEXATTRIB4NUSVARBPROC glx::glVertexAttrib4NusvARB;
|
||||
glx::PFNGLVERTEXATTRIB4NUIVARBPROC glx::glVertexAttrib4NuivARB;
|
||||
glx::PFNGLVERTEXATTRIBPOINTERARBPROC glx::glVertexAttribPointerARB;
|
||||
glx::PFNGLENABLEVERTEXATTRIBARRAYARBPROC glx::glEnableVertexAttribArrayARB;
|
||||
glx::PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glx::glDisableVertexAttribArrayARB;
|
||||
glx::PFNGLGETVERTEXATTRIBDVARBPROC glx::glGetVertexAttribdvARB;
|
||||
glx::PFNGLGETVERTEXATTRIBFVARBPROC glx::glGetVertexAttribfvARB;
|
||||
glx::PFNGLGETVERTEXATTRIBIVARBPROC glx::glGetVertexAttribivARB;
|
||||
glx::PFNGLGETVERTEXATTRIBPOINTERVARBPROC glx::glGetVertexAttribPointervARB;
|
||||
glx::PFNGLPROGRAMENVPARAMETER4DARBPROC glx::glProgramEnvParameter4dARB;
|
||||
glx::PFNGLPROGRAMENVPARAMETER4DVARBPROC glx::glProgramEnvParameter4dvARB;
|
||||
glx::PFNGLPROGRAMENVPARAMETER4FARBPROC glx::glProgramEnvParameter4fARB;
|
||||
glx::PFNGLPROGRAMENVPARAMETER4FVARBPROC glx::glProgramEnvParameter4fvARB;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4DARBPROC glx::glProgramLocalParameter4dARB;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glx::glProgramLocalParameter4dvARB;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4FARBPROC glx::glProgramLocalParameter4fARB;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glx::glProgramLocalParameter4fvARB;
|
||||
glx::PFNGLGETPROGRAMENVPARAMETERDVARBPROC glx::glGetProgramEnvParameterdvARB;
|
||||
glx::PFNGLGETPROGRAMENVPARAMETERFVARBPROC glx::glGetProgramEnvParameterfvARB;
|
||||
glx::PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glx::glGetProgramLocalParameterdvARB;
|
||||
glx::PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glx::glGetProgramLocalParameterfvARB;
|
||||
glx::PFNGLPROGRAMSTRINGARBPROC glx::glProgramStringARB;
|
||||
glx::PFNGLGETPROGRAMSTRINGARBPROC glx::glGetProgramStringARB;
|
||||
glx::PFNGLGETPROGRAMIVARBPROC glx::glGetProgramivARB;
|
||||
|
||||
// NV_fragment_program function pointers
|
||||
glx::PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glx::glProgramNamedParameter4fNV;
|
||||
glx::PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glx::glProgramNamedParameter4dNV;
|
||||
glx::PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glx::glProgramNamedParameter4fvNV;
|
||||
glx::PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glx::glProgramNamedParameter4dvNV;
|
||||
glx::PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glx::glGetProgramNamedParameterfvNV;
|
||||
glx::PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glx::glGetProgramNamedParameterdvNV;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4FNVPROC glx::glProgramLocalParameter4fNV;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4DNVPROC glx::glProgramLocalParameter4dNV;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4FVNVPROC glx::glProgramLocalParameter4fvNV;
|
||||
glx::PFNGLPROGRAMLOCALPARAMETER4DVNVPROC glx::glProgramLocalParameter4dvNV;
|
||||
glx::PFNGLGETPROGRAMLOCALPARAMETERFVNVPROC glx::glGetProgramLocalParameterfvNV;
|
||||
glx::PFNGLGETPROGRAMLOCALPARAMETERDVNVPROC glx::glGetProgramLocalParameterdvNV;
|
||||
|
||||
|
||||
// extern void Alert(const char *szFormat, ...);
|
||||
|
||||
|
@ -200,337 +280,412 @@ void Alert(const char *szFormat, ...)
|
|||
|
||||
|
||||
// ARB_multitexture
|
||||
void InitExtMultiTexture()
|
||||
static void InitExt_ARB_multitexture()
|
||||
{
|
||||
// #ifndef GL_ARB_multitexture
|
||||
#ifdef GET_GL_PROC_ADDRESS
|
||||
EXTglMultiTexCoord2iARB =
|
||||
(PFNGLMULTITEXCOORD2IARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord2iARB");
|
||||
EXTglMultiTexCoord2fARB =
|
||||
(PFNGLMULTITEXCOORD2FARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord2fARB");
|
||||
EXTglMultiTexCoord3fARB =
|
||||
(PFNGLMULTITEXCOORD3FARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord3fARB");
|
||||
EXTglMultiTexCoord3fvARB =
|
||||
(PFNGLMULTITEXCOORD3FVARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord3fvARB");
|
||||
EXTglActiveTextureARB =
|
||||
(PFNGLACTIVETEXTUREARBPROC) GET_GL_PROC_ADDRESS("glActiveTextureARB");
|
||||
EXTglClientActiveTextureARB =
|
||||
(PFNGLCLIENTACTIVETEXTUREARBPROC) GET_GL_PROC_ADDRESS("glClientActiveTextureARB");
|
||||
glx::glMultiTexCoord2iARB = (glx::PFNGLMULTITEXCOORD2IARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord2iARB");
|
||||
glx::glMultiTexCoord2fARB = (glx::PFNGLMULTITEXCOORD2FARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord2fARB");
|
||||
glx::glMultiTexCoord3fARB = (glx::PFNGLMULTITEXCOORD3FARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord3fARB");
|
||||
glx::glMultiTexCoord3fvARB = (glx::PFNGLMULTITEXCOORD3FVARBPROC) GET_GL_PROC_ADDRESS("glMultiTexCoord3fvARB");
|
||||
glx::glActiveTextureARB = (glx::PFNGLACTIVETEXTUREARBPROC) GET_GL_PROC_ADDRESS("glActiveTextureARB");
|
||||
glx::glClientActiveTextureARB = (glx::PFNGLCLIENTACTIVETEXTUREARBPROC) GET_GL_PROC_ADDRESS("glClientActiveTextureARB");
|
||||
#endif // GET_GL_PROC_ADDRESS
|
||||
// #endif // GL_ARB_multitexture
|
||||
}
|
||||
|
||||
|
||||
// ARB_texture_compression
|
||||
void InitExtTextureCompression()
|
||||
static void InitExt_ARB_texture_compression()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
EXTglCompressedTexImage3DARB =
|
||||
(PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)
|
||||
glx::glCompressedTexImage3DARB =
|
||||
(glx::PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)
|
||||
GET_GL_PROC_ADDRESS("glCompressedTexImage3DARB");
|
||||
EXTglCompressedTexImage2DARB =
|
||||
(PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)
|
||||
glx::glCompressedTexImage2DARB =
|
||||
(glx::PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)
|
||||
GET_GL_PROC_ADDRESS("glCompressedTexImage2DARB");
|
||||
EXTglCompressedTexImage1DARB =
|
||||
(PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)
|
||||
glx::glCompressedTexImage1DARB =
|
||||
(glx::PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)
|
||||
GET_GL_PROC_ADDRESS("glCompressedTexImage1DARB");
|
||||
EXTglCompressedTexSubImage3DARB =
|
||||
(PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)
|
||||
glx::glCompressedTexSubImage3DARB =
|
||||
(glx::PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)
|
||||
GET_GL_PROC_ADDRESS("glCompressedTexSubImage3DARB");
|
||||
EXTglCompressedTexSubImage2DARB =
|
||||
(PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)
|
||||
glx::glCompressedTexSubImage2DARB =
|
||||
(glx::PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)
|
||||
GET_GL_PROC_ADDRESS("glCompressedTexSubImage2DARB");
|
||||
EXTglCompressedTexSubImage1DARB =
|
||||
(PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)
|
||||
glx::glCompressedTexSubImage1DARB =
|
||||
(glx::PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)
|
||||
GET_GL_PROC_ADDRESS("glCompressedTexSubImage1DARB");
|
||||
#endif // GL_ARB_texture_compression
|
||||
}
|
||||
|
||||
|
||||
// NV_register_combiners
|
||||
void InitExtRegisterCombiners()
|
||||
static void InitExt_NV_register_combiners()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
/* Retrieve all NV_register_combiners routines. */
|
||||
EXTglCombinerParameterfvNV =
|
||||
(PFNGLCOMBINERPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerParameterfvNV");
|
||||
EXTglCombinerParameterivNV =
|
||||
(PFNGLCOMBINERPARAMETERIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerParameterivNV");
|
||||
EXTglCombinerParameterfNV =
|
||||
(PFNGLCOMBINERPARAMETERFNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerParameterfNV");
|
||||
EXTglCombinerParameteriNV =
|
||||
(PFNGLCOMBINERPARAMETERINVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerParameteriNV");
|
||||
EXTglCombinerInputNV =
|
||||
(PFNGLCOMBINERINPUTNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerInputNV");
|
||||
EXTglCombinerOutputNV =
|
||||
(PFNGLCOMBINEROUTPUTNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerOutputNV");
|
||||
EXTglFinalCombinerInputNV =
|
||||
(PFNGLFINALCOMBINERINPUTNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glFinalCombinerInputNV");
|
||||
EXTglGetCombinerInputParameterfvNV =
|
||||
(PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetCombinerInputParameterfvNV");
|
||||
EXTglGetCombinerInputParameterivNV =
|
||||
(PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetCombinerInputParameterivNV");
|
||||
EXTglGetCombinerOutputParameterfvNV =
|
||||
(PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetCombinerOutputParameterfvNV");
|
||||
EXTglGetCombinerOutputParameterivNV =
|
||||
(PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetCombinerOutputParameterivNV");
|
||||
EXTglGetFinalCombinerInputParameterfvNV =
|
||||
(PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetFinalCombinerInputParameterfvNV");
|
||||
EXTglGetFinalCombinerInputParameterivNV =
|
||||
(PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetFinalCombinerInputParameterivNV");
|
||||
glx::glCombinerParameterfvNV = (glx::PFNGLCOMBINERPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glCombinerParameterfvNV");
|
||||
glx::glCombinerParameterivNV = (glx::PFNGLCOMBINERPARAMETERIVNVPROC) GET_GL_PROC_ADDRESS("glCombinerParameterivNV");
|
||||
glx::glCombinerParameterfNV = (glx::PFNGLCOMBINERPARAMETERFNVPROC) GET_GL_PROC_ADDRESS("glCombinerParameterfNV");
|
||||
glx::glCombinerParameteriNV = (glx::PFNGLCOMBINERPARAMETERINVPROC) GET_GL_PROC_ADDRESS("glCombinerParameteriNV");
|
||||
glx::glCombinerInputNV = (glx::PFNGLCOMBINERINPUTNVPROC) GET_GL_PROC_ADDRESS("glCombinerInputNV");
|
||||
glx::glCombinerOutputNV = (glx::PFNGLCOMBINEROUTPUTNVPROC) GET_GL_PROC_ADDRESS("glCombinerOutputNV");
|
||||
glx::glFinalCombinerInputNV = (glx::PFNGLFINALCOMBINERINPUTNVPROC) GET_GL_PROC_ADDRESS("glFinalCombinerInputNV");
|
||||
glx::glGetCombinerInputParameterfvNV = (glx::PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glGetCombinerInputParameterfvNV");
|
||||
glx::glGetCombinerInputParameterivNV = (glx::PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) GET_GL_PROC_ADDRESS("glGetCombinerInputParameterivNV");
|
||||
glx::glGetCombinerOutputParameterfvNV = (glx::PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glGetCombinerOutputParameterfvNV");
|
||||
glx::glGetCombinerOutputParameterivNV = (glx::PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) GET_GL_PROC_ADDRESS("glGetCombinerOutputParameterivNV");
|
||||
glx::glGetFinalCombinerInputParameterfvNV = (glx::PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glGetFinalCombinerInputParameterfvNV");
|
||||
glx::glGetFinalCombinerInputParameterivNV = (glx::PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) GET_GL_PROC_ADDRESS("glGetFinalCombinerInputParameterivNV");
|
||||
#endif // GET_GL_PROC_ADDRESS
|
||||
}
|
||||
|
||||
|
||||
void InitExtRegisterCombiners2()
|
||||
static void InitExt_NV_register_combiners2()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
/* Retrieve all NV_register_combiners routines. */
|
||||
EXTglCombinerStageParameterfvNV =
|
||||
(PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glCombinerStageParameterfvNV");
|
||||
EXTglGetCombinerStageParameterfvNV =
|
||||
(PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetCombinerStageParameterfvNV");
|
||||
glx::glCombinerStageParameterfvNV = (glx::PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glCombinerStageParameterfvNV");
|
||||
glx::glGetCombinerStageParameterfvNV = (glx::PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glGetCombinerStageParameterfvNV");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void InitExtVertexProgram()
|
||||
static void InitExt_NV_vertex_program()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
EXTglAreProgramsResidentNV =
|
||||
(PFNGLAREPROGRAMSRESIDENTNVPROC)
|
||||
glx::glAreProgramsResidentNV =
|
||||
(glx::PFNGLAREPROGRAMSRESIDENTNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glAreProgramsResidentNV");
|
||||
EXTglBindProgramNV =
|
||||
(PFNGLBINDPROGRAMNVPROC)
|
||||
glx::glBindProgramNV =
|
||||
(glx::PFNGLBINDPROGRAMNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glBindProgramNV");
|
||||
EXTglDeleteProgramsNV =
|
||||
(PFNGLDELETEPROGRAMSNVPROC)
|
||||
glx::glDeleteProgramsNV =
|
||||
(glx::PFNGLDELETEPROGRAMSNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glDeleteProgramsNV");
|
||||
EXTglExecuteProgramNV =
|
||||
(PFNGLEXECUTEPROGRAMNVPROC)
|
||||
glx::glExecuteProgramNV =
|
||||
(glx::PFNGLEXECUTEPROGRAMNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glExecuteProgramNV");
|
||||
EXTglGenProgramsNV =
|
||||
(PFNGLGENPROGRAMSNVPROC)
|
||||
glx::glGenProgramsNV =
|
||||
(glx::PFNGLGENPROGRAMSNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGenProgramsNV");
|
||||
EXTglGetProgramParameterdvNV =
|
||||
(PFNGLGETPROGRAMPARAMETERDVNVPROC)
|
||||
glx::glGetProgramParameterdvNV =
|
||||
(glx::PFNGLGETPROGRAMPARAMETERDVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetProgramParameterdvNV");
|
||||
EXTglGetProgramParameterfvNV =
|
||||
(PFNGLGETPROGRAMPARAMETERFVNVPROC)
|
||||
glx::glGetProgramParameterfvNV =
|
||||
(glx::PFNGLGETPROGRAMPARAMETERFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetProgramParameterfvNV");
|
||||
EXTglGetProgramivNV =
|
||||
(PFNGLGETPROGRAMIVNVPROC)
|
||||
glx::glGetProgramivNV =
|
||||
(glx::PFNGLGETPROGRAMIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetProgramivNV");
|
||||
EXTglGetProgramStringNV =
|
||||
(PFNGLGETPROGRAMSTRINGNVPROC)
|
||||
glx::glGetProgramStringNV =
|
||||
(glx::PFNGLGETPROGRAMSTRINGNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetProgramStringNV");
|
||||
EXTglGetTrackMatrixivNV =
|
||||
(PFNGLGETTRACKMATRIXIVNVPROC)
|
||||
glx::glGetTrackMatrixivNV =
|
||||
(glx::PFNGLGETTRACKMATRIXIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetTrackMatrixivNV");
|
||||
EXTglGetVertexAttribdvNV =
|
||||
(PFNGLGETVERTEXATTRIBDVNVPROC)
|
||||
glx::glGetVertexAttribdvNV =
|
||||
(glx::PFNGLGETVERTEXATTRIBDVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetVertexAttribdvNV");
|
||||
EXTglGetVertexAttribfvNV =
|
||||
(PFNGLGETVERTEXATTRIBFVNVPROC)
|
||||
glx::glGetVertexAttribfvNV =
|
||||
(glx::PFNGLGETVERTEXATTRIBFVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetVertexAttribfvNV");
|
||||
EXTglGetVertexAttribivNV =
|
||||
(PFNGLGETVERTEXATTRIBIVNVPROC)
|
||||
glx::glGetVertexAttribivNV =
|
||||
(glx::PFNGLGETVERTEXATTRIBIVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetVertexAttribivNV");
|
||||
EXTglGetVertexAttribPointervNV =
|
||||
(PFNGLGETVERTEXATTRIBPOINTERVNVPROC)
|
||||
glx::glGetVertexAttribPointervNV =
|
||||
(glx::PFNGLGETVERTEXATTRIBPOINTERVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glGetVertexAttribPointervNV");
|
||||
EXTglIsProgramNV =
|
||||
(PFNGLISPROGRAMNVPROC)
|
||||
glx::glIsProgramNV =
|
||||
(glx::PFNGLISPROGRAMNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glIsProgramNV");
|
||||
EXTglLoadProgramNV =
|
||||
(PFNGLLOADPROGRAMNVPROC)
|
||||
glx::glLoadProgramNV =
|
||||
(glx::PFNGLLOADPROGRAMNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glLoadProgramNV");
|
||||
EXTglProgramParameter4dNV =
|
||||
(PFNGLPROGRAMPARAMETER4DNVPROC)
|
||||
glx::glProgramParameter4dNV =
|
||||
(glx::PFNGLPROGRAMPARAMETER4DNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glProgramParameter4dNV");
|
||||
EXTglProgramParameter4dvNV =
|
||||
(PFNGLPROGRAMPARAMETER4DVNVPROC)
|
||||
glx::glProgramParameter4dvNV =
|
||||
(glx::PFNGLPROGRAMPARAMETER4DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glProgramParameter4dvNV");
|
||||
EXTglProgramParameter4fNV =
|
||||
(PFNGLPROGRAMPARAMETER4FNVPROC)
|
||||
glx::glProgramParameter4fNV =
|
||||
(glx::PFNGLPROGRAMPARAMETER4FNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glProgramParameter4fNV");
|
||||
EXTglProgramParameter4fvNV =
|
||||
(PFNGLPROGRAMPARAMETER4FVNVPROC)
|
||||
glx::glProgramParameter4fvNV =
|
||||
(glx::PFNGLPROGRAMPARAMETER4FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glProgramParameter4fvNV");
|
||||
EXTglProgramParameters4dvNV =
|
||||
(PFNGLPROGRAMPARAMETERS4DVNVPROC)
|
||||
glx::glProgramParameters4dvNV =
|
||||
(glx::PFNGLPROGRAMPARAMETERS4DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glProgramParameters4dvNV");
|
||||
EXTglProgramParameters4fvNV =
|
||||
(PFNGLPROGRAMPARAMETERS4FVNVPROC)
|
||||
glx::glProgramParameters4fvNV =
|
||||
(glx::PFNGLPROGRAMPARAMETERS4FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glProgramParameters4fvNV");
|
||||
EXTglRequestResidentProgramsNV =
|
||||
(PFNGLREQUESTRESIDENTPROGRAMSNVPROC)
|
||||
glx::glRequestResidentProgramsNV =
|
||||
(glx::PFNGLREQUESTRESIDENTPROGRAMSNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glRequestResidentProgramsNV");
|
||||
EXTglTrackMatrixNV =
|
||||
(PFNGLTRACKMATRIXNVPROC)
|
||||
glx::glTrackMatrixNV =
|
||||
(glx::PFNGLTRACKMATRIXNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glTrackMatrixNV");
|
||||
EXTglVertexAttribPointerNV =
|
||||
(PFNGLVERTEXATTRIBPOINTERNVPROC)
|
||||
glx::glVertexAttribPointerNV =
|
||||
(glx::PFNGLVERTEXATTRIBPOINTERNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribPointerNV");
|
||||
EXTglVertexAttrib1dNV =
|
||||
(PFNGLVERTEXATTRIB1DNVPROC)
|
||||
glx::glVertexAttrib1dNV =
|
||||
(glx::PFNGLVERTEXATTRIB1DNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib1dNV");
|
||||
EXTglVertexAttrib1dvNV =
|
||||
(PFNGLVERTEXATTRIB1DVNVPROC)
|
||||
glx::glVertexAttrib1dvNV =
|
||||
(glx::PFNGLVERTEXATTRIB1DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib1dvNV");
|
||||
EXTglVertexAttrib1fNV =
|
||||
(PFNGLVERTEXATTRIB1FNVPROC)
|
||||
glx::glVertexAttrib1fNV =
|
||||
(glx::PFNGLVERTEXATTRIB1FNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib1fNV");
|
||||
EXTglVertexAttrib1fvNV =
|
||||
(PFNGLVERTEXATTRIB1FVNVPROC)
|
||||
glx::glVertexAttrib1fvNV =
|
||||
(glx::PFNGLVERTEXATTRIB1FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib1fvNV");
|
||||
EXTglVertexAttrib1sNV =
|
||||
(PFNGLVERTEXATTRIB1SNVPROC)
|
||||
glx::glVertexAttrib1sNV =
|
||||
(glx::PFNGLVERTEXATTRIB1SNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib1sNV");
|
||||
EXTglVertexAttrib1svNV =
|
||||
(PFNGLVERTEXATTRIB1SVNVPROC)
|
||||
glx::glVertexAttrib1svNV =
|
||||
(glx::PFNGLVERTEXATTRIB1SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib1svNV");
|
||||
EXTglVertexAttrib2dNV =
|
||||
(PFNGLVERTEXATTRIB2DNVPROC)
|
||||
glx::glVertexAttrib2dNV =
|
||||
(glx::PFNGLVERTEXATTRIB2DNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib2dNV");
|
||||
EXTglVertexAttrib2dvNV =
|
||||
(PFNGLVERTEXATTRIB2DVNVPROC)
|
||||
glx::glVertexAttrib2dvNV =
|
||||
(glx::PFNGLVERTEXATTRIB2DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib2dvNV");
|
||||
EXTglVertexAttrib2fNV =
|
||||
(PFNGLVERTEXATTRIB2FNVPROC)
|
||||
glx::glVertexAttrib2fNV =
|
||||
(glx::PFNGLVERTEXATTRIB2FNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib2fNV");
|
||||
EXTglVertexAttrib2fvNV =
|
||||
(PFNGLVERTEXATTRIB2FVNVPROC)
|
||||
glx::glVertexAttrib2fvNV =
|
||||
(glx::PFNGLVERTEXATTRIB2FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib2fvNV");
|
||||
EXTglVertexAttrib2sNV =
|
||||
(PFNGLVERTEXATTRIB2SNVPROC)
|
||||
glx::glVertexAttrib2sNV =
|
||||
(glx::PFNGLVERTEXATTRIB2SNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib2sNV");
|
||||
EXTglVertexAttrib2svNV =
|
||||
(PFNGLVERTEXATTRIB2SVNVPROC)
|
||||
glx::glVertexAttrib2svNV =
|
||||
(glx::PFNGLVERTEXATTRIB2SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib2svNV");
|
||||
EXTglVertexAttrib3dNV =
|
||||
(PFNGLVERTEXATTRIB3DNVPROC)
|
||||
glx::glVertexAttrib3dNV =
|
||||
(glx::PFNGLVERTEXATTRIB3DNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib3dNV");
|
||||
EXTglVertexAttrib3dvNV =
|
||||
(PFNGLVERTEXATTRIB3DVNVPROC)
|
||||
glx::glVertexAttrib3dvNV =
|
||||
(glx::PFNGLVERTEXATTRIB3DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib3dvNV");
|
||||
EXTglVertexAttrib3fNV =
|
||||
(PFNGLVERTEXATTRIB3FNVPROC)
|
||||
glx::glVertexAttrib3fNV =
|
||||
(glx::PFNGLVERTEXATTRIB3FNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib3fNV");
|
||||
EXTglVertexAttrib3fvNV =
|
||||
(PFNGLVERTEXATTRIB3FVNVPROC)
|
||||
glx::glVertexAttrib3fvNV =
|
||||
(glx::PFNGLVERTEXATTRIB3FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib3fvNV");
|
||||
EXTglVertexAttrib3sNV =
|
||||
(PFNGLVERTEXATTRIB3SNVPROC)
|
||||
glx::glVertexAttrib3sNV =
|
||||
(glx::PFNGLVERTEXATTRIB3SNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib3sNV");
|
||||
EXTglVertexAttrib3svNV =
|
||||
(PFNGLVERTEXATTRIB3SVNVPROC)
|
||||
glx::glVertexAttrib3svNV =
|
||||
(glx::PFNGLVERTEXATTRIB3SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib3svNV");
|
||||
EXTglVertexAttrib4dNV =
|
||||
(PFNGLVERTEXATTRIB4DNVPROC)
|
||||
glx::glVertexAttrib4dNV =
|
||||
(glx::PFNGLVERTEXATTRIB4DNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4dNV");
|
||||
EXTglVertexAttrib4dvNV =
|
||||
(PFNGLVERTEXATTRIB4DVNVPROC)
|
||||
glx::glVertexAttrib4dvNV =
|
||||
(glx::PFNGLVERTEXATTRIB4DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4dvNV");
|
||||
EXTglVertexAttrib4fNV =
|
||||
(PFNGLVERTEXATTRIB4FNVPROC)
|
||||
glx::glVertexAttrib4fNV =
|
||||
(glx::PFNGLVERTEXATTRIB4FNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4fNV");
|
||||
EXTglVertexAttrib4fvNV =
|
||||
(PFNGLVERTEXATTRIB4FVNVPROC)
|
||||
glx::glVertexAttrib4fvNV =
|
||||
(glx::PFNGLVERTEXATTRIB4FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4fvNV");
|
||||
EXTglVertexAttrib4sNV =
|
||||
(PFNGLVERTEXATTRIB4SNVPROC)
|
||||
glx::glVertexAttrib4sNV =
|
||||
(glx::PFNGLVERTEXATTRIB4SNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4sNV");
|
||||
EXTglVertexAttrib4svNV =
|
||||
(PFNGLVERTEXATTRIB4SVNVPROC)
|
||||
glx::glVertexAttrib4svNV =
|
||||
(glx::PFNGLVERTEXATTRIB4SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4svNV");
|
||||
EXTglVertexAttrib4ubvNV =
|
||||
(PFNGLVERTEXATTRIB4UBVNVPROC)
|
||||
glx::glVertexAttrib4ubvNV =
|
||||
(glx::PFNGLVERTEXATTRIB4UBVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttrib4ubvNV");
|
||||
EXTglVertexAttribs1dvNV =
|
||||
(PFNGLVERTEXATTRIBS1DVNVPROC)
|
||||
glx::glVertexAttribs1dvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS1DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs1dvNV");
|
||||
EXTglVertexAttribs1fvNV =
|
||||
(PFNGLVERTEXATTRIBS1FVNVPROC)
|
||||
glx::glVertexAttribs1fvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS1FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs1fvNV");
|
||||
EXTglVertexAttribs1svNV =
|
||||
(PFNGLVERTEXATTRIBS1SVNVPROC)
|
||||
glx::glVertexAttribs1svNV =
|
||||
(glx::PFNGLVERTEXATTRIBS1SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs1svNV");
|
||||
EXTglVertexAttribs2dvNV =
|
||||
(PFNGLVERTEXATTRIBS2DVNVPROC)
|
||||
glx::glVertexAttribs2dvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS2DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs2dvNV");
|
||||
EXTglVertexAttribs2fvNV =
|
||||
(PFNGLVERTEXATTRIBS2FVNVPROC)
|
||||
glx::glVertexAttribs2fvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS2FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs2fvNV");
|
||||
EXTglVertexAttribs2svNV =
|
||||
(PFNGLVERTEXATTRIBS2SVNVPROC)
|
||||
glx::glVertexAttribs2svNV =
|
||||
(glx::PFNGLVERTEXATTRIBS2SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs2svNV");
|
||||
EXTglVertexAttribs3dvNV =
|
||||
(PFNGLVERTEXATTRIBS3DVNVPROC)
|
||||
glx::glVertexAttribs3dvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS3DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs3dvNV");
|
||||
EXTglVertexAttribs3fvNV =
|
||||
(PFNGLVERTEXATTRIBS3FVNVPROC)
|
||||
glx::glVertexAttribs3fvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS3FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs3fvNV");
|
||||
EXTglVertexAttribs3svNV =
|
||||
(PFNGLVERTEXATTRIBS3SVNVPROC)
|
||||
glx::glVertexAttribs3svNV =
|
||||
(glx::PFNGLVERTEXATTRIBS3SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs3svNV");
|
||||
EXTglVertexAttribs4dvNV =
|
||||
(PFNGLVERTEXATTRIBS4DVNVPROC)
|
||||
glx::glVertexAttribs4dvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS4DVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs4dvNV");
|
||||
EXTglVertexAttribs4fvNV =
|
||||
(PFNGLVERTEXATTRIBS4FVNVPROC)
|
||||
glx::glVertexAttribs4fvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS4FVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs4fvNV");
|
||||
EXTglVertexAttribs4svNV =
|
||||
(PFNGLVERTEXATTRIBS4SVNVPROC)
|
||||
glx::glVertexAttribs4svNV =
|
||||
(glx::PFNGLVERTEXATTRIBS4SVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs4svNV");
|
||||
EXTglVertexAttribs4ubvNV =
|
||||
(PFNGLVERTEXATTRIBS4UBVNVPROC)
|
||||
glx::glVertexAttribs4ubvNV =
|
||||
(glx::PFNGLVERTEXATTRIBS4UBVNVPROC)
|
||||
GET_GL_PROC_ADDRESS("glVertexAttribs4ubvNV");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void InitExtPalettedTexture()
|
||||
static void InitExt_EXT_paletted_texture()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
EXTglColorTableEXT = (PFNGLCOLORTABLEEXTPROC) GET_GL_PROC_ADDRESS("glColorTableEXT");
|
||||
glx::glColorTableEXT = (glx::PFNGLCOLORTABLEEXTPROC) GET_GL_PROC_ADDRESS("glColorTableEXT");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void InitExtBlendMinmax()
|
||||
static void InitExt_EXT_blend_minmax()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
EXTglBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC) GET_GL_PROC_ADDRESS("glBlendEquationEXT");
|
||||
glx::glBlendEquationEXT = (glx::PFNGLBLENDEQUATIONEXTPROC) GET_GL_PROC_ADDRESS("glBlendEquationEXT");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void InitExtSwapControl()
|
||||
static void InitExt_EXT_swap_control()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
wglSwapIntervalEXT =
|
||||
(PFNWGLSWAPINTERVALEXTPROC) GET_GL_PROC_ADDRESS("wglSwapIntervalEXT");
|
||||
wglGetSwapIntervalEXT =
|
||||
(PFNWGLGETSWAPINTERVALEXTPROC) GET_GL_PROC_ADDRESS("wglGetSwapIntervalEXT");
|
||||
glx::wglSwapIntervalEXT = (glx::PFNWGLSWAPINTERVALEXTPROC) GET_GL_PROC_ADDRESS("wglSwapIntervalEXT");
|
||||
glx::wglGetSwapIntervalEXT = (glx::PFNWGLGETSWAPINTERVALEXTPROC) GET_GL_PROC_ADDRESS("wglGetSwapIntervalEXT");
|
||||
#endif // _WIN32
|
||||
}
|
||||
|
||||
|
||||
static void InitExt_NV_fragment_program()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
glx::glProgramNamedParameter4fNV = (glx::PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) GET_GL_PROC_ADDRESS("glProgramNamedParameter4fNV");
|
||||
glx::glProgramNamedParameter4dNV = (glx::PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) GET_GL_PROC_ADDRESS("glProgramNamedParameter4dNV");
|
||||
glx::glProgramNamedParameter4fvNV = (glx::PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) GET_GL_PROC_ADDRESS("glProgramNamedParameter4fvNV");
|
||||
glx::glProgramNamedParameter4dvNV = (glx::PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) GET_GL_PROC_ADDRESS("glProgramNamedParameter4dvNV");
|
||||
glx::glGetProgramNamedParameterfvNV = (glx::PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glGetProgramNamedParameterfvNV");
|
||||
glx::glGetProgramNamedParameterdvNV = (glx::PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) GET_GL_PROC_ADDRESS("glGetProgramNamedParameterdvNV");
|
||||
glx::glProgramLocalParameter4fNV = (glx::PFNGLPROGRAMLOCALPARAMETER4FNVPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4fNV");
|
||||
glx::glProgramLocalParameter4dNV = (glx::PFNGLPROGRAMLOCALPARAMETER4DNVPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4dNV");
|
||||
glx::glProgramLocalParameter4fvNV = (glx::PFNGLPROGRAMLOCALPARAMETER4FVNVPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4fvNV");
|
||||
glx::glProgramLocalParameter4dvNV = (glx::PFNGLPROGRAMLOCALPARAMETER4DVNVPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4dvNV");
|
||||
glx::glGetProgramLocalParameterfvNV = (glx::PFNGLGETPROGRAMLOCALPARAMETERFVNVPROC) GET_GL_PROC_ADDRESS("glGetProgramLocalParameterfvNV");
|
||||
glx::glGetProgramLocalParameterdvNV = (glx::PFNGLGETPROGRAMLOCALPARAMETERDVNVPROC) GET_GL_PROC_ADDRESS("glGetProgramLocalParameterdvNV");
|
||||
#endif // GET_GL_PROC_ADDRESS
|
||||
}
|
||||
|
||||
|
||||
static void InitExt_ARB_vertex_program()
|
||||
{
|
||||
#if defined(GET_GL_PROC_ADDRESS)
|
||||
glx::glBindProgramARB = (glx::PFNGLBINDPROGRAMARBPROC) GET_GL_PROC_ADDRESS("glBindProgramARB");
|
||||
glx::glDeleteProgramsARB = (glx::PFNGLDELETEPROGRAMSARBPROC) GET_GL_PROC_ADDRESS("glDeleteProgramsARB");
|
||||
glx::glGenProgramsARB = (glx::PFNGLGENPROGRAMSARBPROC) GET_GL_PROC_ADDRESS("glGenProgramsARB");
|
||||
glx::glIsProgramARB = (glx::PFNGLISPROGRAMARBPROC) GET_GL_PROC_ADDRESS("glIsProgramARB");
|
||||
glx::glVertexAttrib1sARB = (glx::PFNGLVERTEXATTRIB1SARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib1sARB");
|
||||
glx::glVertexAttrib1fARB = (glx::PFNGLVERTEXATTRIB1FARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib1fARB");
|
||||
glx::glVertexAttrib1dARB = (glx::PFNGLVERTEXATTRIB1DARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib1dARB");
|
||||
glx::glVertexAttrib2sARB = (glx::PFNGLVERTEXATTRIB2SARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib2sARB");
|
||||
glx::glVertexAttrib2fARB = (glx::PFNGLVERTEXATTRIB2FARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib2fARB");
|
||||
glx::glVertexAttrib2dARB = (glx::PFNGLVERTEXATTRIB2DARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib2dARB");
|
||||
glx::glVertexAttrib3sARB = (glx::PFNGLVERTEXATTRIB3SARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib3sARB");
|
||||
glx::glVertexAttrib3fARB = (glx::PFNGLVERTEXATTRIB3FARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib3fARB");
|
||||
glx::glVertexAttrib3dARB = (glx::PFNGLVERTEXATTRIB3DARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib3dARB");
|
||||
glx::glVertexAttrib4sARB = (glx::PFNGLVERTEXATTRIB4SARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4sARB");
|
||||
glx::glVertexAttrib4fARB = (glx::PFNGLVERTEXATTRIB4FARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4fARB");
|
||||
glx::glVertexAttrib4dARB = (glx::PFNGLVERTEXATTRIB4DARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4dARB");
|
||||
glx::glVertexAttrib4NubARB = (glx::PFNGLVERTEXATTRIB4NUBARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NubARB");
|
||||
glx::glVertexAttrib1svARB = (glx::PFNGLVERTEXATTRIB1SVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib1svARB");
|
||||
glx::glVertexAttrib1fvARB = (glx::PFNGLVERTEXATTRIB1FVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib1fvARB");
|
||||
glx::glVertexAttrib1dvARB = (glx::PFNGLVERTEXATTRIB1DVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib1dvARB");
|
||||
glx::glVertexAttrib2svARB = (glx::PFNGLVERTEXATTRIB2SVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib2svARB");
|
||||
glx::glVertexAttrib2fvARB = (glx::PFNGLVERTEXATTRIB2FVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib2fvARB");
|
||||
glx::glVertexAttrib2dvARB = (glx::PFNGLVERTEXATTRIB2DVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib2dvARB");
|
||||
glx::glVertexAttrib3svARB = (glx::PFNGLVERTEXATTRIB3SVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib3svARB");
|
||||
glx::glVertexAttrib3fvARB = (glx::PFNGLVERTEXATTRIB3FVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib3fvARB");
|
||||
glx::glVertexAttrib3dvARB = (glx::PFNGLVERTEXATTRIB3DVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib3dvARB");
|
||||
glx::glVertexAttrib4bvARB = (glx::PFNGLVERTEXATTRIB4BVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4bvARB");
|
||||
glx::glVertexAttrib4svARB = (glx::PFNGLVERTEXATTRIB4SVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4svARB");
|
||||
glx::glVertexAttrib4ivARB = (glx::PFNGLVERTEXATTRIB4IVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4ivARB");
|
||||
glx::glVertexAttrib4ubvARB = (glx::PFNGLVERTEXATTRIB4UBVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4ubvARB");
|
||||
glx::glVertexAttrib4usvARB = (glx::PFNGLVERTEXATTRIB4USVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4usvARB");
|
||||
glx::glVertexAttrib4uivARB = (glx::PFNGLVERTEXATTRIB4UIVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4uivARB");
|
||||
glx::glVertexAttrib4fvARB = (glx::PFNGLVERTEXATTRIB4FVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4fvARB");
|
||||
glx::glVertexAttrib4dvARB = (glx::PFNGLVERTEXATTRIB4DVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4dvARB");
|
||||
glx::glVertexAttrib4NbvARB = (glx::PFNGLVERTEXATTRIB4NBVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NbvARB");
|
||||
glx::glVertexAttrib4NsvARB = (glx::PFNGLVERTEXATTRIB4NSVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NsvARB");
|
||||
glx::glVertexAttrib4NivARB = (glx::PFNGLVERTEXATTRIB4NIVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NivARB");
|
||||
glx::glVertexAttrib4NubvARB = (glx::PFNGLVERTEXATTRIB4NUBVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NubvARB");
|
||||
glx::glVertexAttrib4NusvARB = (glx::PFNGLVERTEXATTRIB4NUSVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NusvARB");
|
||||
glx::glVertexAttrib4NuivARB = (glx::PFNGLVERTEXATTRIB4NUIVARBPROC) GET_GL_PROC_ADDRESS("glVertexAttrib4NuivARB");
|
||||
glx::glVertexAttribPointerARB = (glx::PFNGLVERTEXATTRIBPOINTERARBPROC) GET_GL_PROC_ADDRESS("glVertexAttribPointerARB");
|
||||
glx::glEnableVertexAttribArrayARB = (glx::PFNGLENABLEVERTEXATTRIBARRAYARBPROC) GET_GL_PROC_ADDRESS("glEnableVertexAttribArrayARB");
|
||||
glx::glDisableVertexAttribArrayARB = (glx::PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) GET_GL_PROC_ADDRESS("glDisableVertexAttribArrayARB");
|
||||
glx::glGetVertexAttribdvARB = (glx::PFNGLGETVERTEXATTRIBDVARBPROC) GET_GL_PROC_ADDRESS("glGetVertexAttribdvARB");
|
||||
glx::glGetVertexAttribfvARB = (glx::PFNGLGETVERTEXATTRIBFVARBPROC) GET_GL_PROC_ADDRESS("glGetVertexAttribfvARB");
|
||||
glx::glGetVertexAttribivARB = (glx::PFNGLGETVERTEXATTRIBIVARBPROC) GET_GL_PROC_ADDRESS("glGetVertexAttribivARB");
|
||||
glx::glGetVertexAttribPointervARB = (glx::PFNGLGETVERTEXATTRIBPOINTERVARBPROC) GET_GL_PROC_ADDRESS("glGetVertexAttribPointervARB");
|
||||
glx::glProgramEnvParameter4dARB = (glx::PFNGLPROGRAMENVPARAMETER4DARBPROC) GET_GL_PROC_ADDRESS("glProgramEnvParameter4dARB");
|
||||
glx::glProgramEnvParameter4dvARB = (glx::PFNGLPROGRAMENVPARAMETER4DVARBPROC) GET_GL_PROC_ADDRESS("glProgramEnvParameter4dvARB");
|
||||
glx::glProgramEnvParameter4fARB = (glx::PFNGLPROGRAMENVPARAMETER4FARBPROC) GET_GL_PROC_ADDRESS("glProgramEnvParameter4fARB");
|
||||
glx::glProgramEnvParameter4fvARB = (glx::PFNGLPROGRAMENVPARAMETER4FVARBPROC) GET_GL_PROC_ADDRESS("glProgramEnvParameter4fvARB");
|
||||
glx::glProgramLocalParameter4dARB = (glx::PFNGLPROGRAMLOCALPARAMETER4DARBPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4dARB");
|
||||
glx::glProgramLocalParameter4dvARB = (glx::PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4dvARB");
|
||||
glx::glProgramLocalParameter4fARB = (glx::PFNGLPROGRAMLOCALPARAMETER4FARBPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4fARB");
|
||||
glx::glProgramLocalParameter4fvARB = (glx::PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) GET_GL_PROC_ADDRESS("glProgramLocalParameter4fvARB");
|
||||
glx::glGetProgramEnvParameterdvARB = (glx::PFNGLGETPROGRAMENVPARAMETERDVARBPROC) GET_GL_PROC_ADDRESS("glGetProgramEnvParameterdvARB");
|
||||
glx::glGetProgramEnvParameterfvARB = (glx::PFNGLGETPROGRAMENVPARAMETERFVARBPROC) GET_GL_PROC_ADDRESS("glGetProgramEnvParameterfvARB");
|
||||
glx::glGetProgramLocalParameterdvARB = (glx::PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) GET_GL_PROC_ADDRESS("glGetProgramLocalParameterdvARB");
|
||||
glx::glGetProgramLocalParameterfvARB = (glx::PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) GET_GL_PROC_ADDRESS("glGetProgramLocalParameterfvARB");
|
||||
glx::glProgramStringARB = (glx::PFNGLPROGRAMSTRINGARBPROC) GET_GL_PROC_ADDRESS("glProgramStringARB");
|
||||
glx::glGetProgramStringARB = (glx::PFNGLGETPROGRAMSTRINGARBPROC) GET_GL_PROC_ADDRESS("glGetProgramStringARB");
|
||||
glx::glGetProgramivARB = (glx::PFNGLGETPROGRAMIVARBPROC) GET_GL_PROC_ADDRESS("glGetProgramivARB");
|
||||
#endif // GET_GL_PROC_ADDRESS
|
||||
}
|
||||
|
||||
|
||||
void InitExtension(const char* ext)
|
||||
{
|
||||
if (!strcmp(ext, "GL_NV_fragment_program"))
|
||||
InitExt_NV_fragment_program();
|
||||
else if (!strcmp(ext, "GL_ARB_vertex_program"))
|
||||
InitExt_ARB_vertex_program();
|
||||
else if (!strcmp(ext, "GL_ARB_multitexture"))
|
||||
InitExt_ARB_multitexture();
|
||||
else if (!strcmp(ext, "GL_NV_register_combiners"))
|
||||
InitExt_NV_register_combiners();
|
||||
else if (!strcmp(ext, "GL_NV_register_combiners2"))
|
||||
InitExt_NV_register_combiners2();
|
||||
else if (!strcmp(ext, "GL_NV_vertex_program"))
|
||||
InitExt_NV_vertex_program();
|
||||
else if (!strcmp(ext, "GL_ARB_texture_compression"))
|
||||
InitExt_ARB_texture_compression();
|
||||
else if (!strcmp(ext, "GL_EXT_blend_minmax"))
|
||||
InitExt_EXT_blend_minmax();
|
||||
else if (!strcmp(ext, "GL_EXT_paletted_texture"))
|
||||
InitExt_EXT_paletted_texture();
|
||||
else if (!strcmp(ext, "WGL_EXT_swap_control"))
|
||||
InitExt_EXT_swap_control();
|
||||
}
|
||||
|
||||
|
||||
bool ExtensionSupported(char *ext)
|
||||
{
|
||||
char *extensions = (char *) glGetString(GL_EXTENSIONS);
|
||||
|
|
|
@ -53,19 +53,23 @@ extern "C" {
|
|||
#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
|
||||
#endif
|
||||
|
||||
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);
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC EXTglCompressedTexImage3DARB;
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC EXTglCompressedTexImage2DARB;
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC EXTglCompressedTexImage1DARB;
|
||||
extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC EXTglCompressedTexSubImage3DARB;
|
||||
extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC EXTglCompressedTexSubImage2DARB;
|
||||
extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC EXTglCompressedTexSubImage1DARB;
|
||||
namespace glx
|
||||
{
|
||||
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);
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB;
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB;
|
||||
extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB;
|
||||
extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB;
|
||||
extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB;
|
||||
};
|
||||
|
||||
|
||||
/* GL_EXT_texture_compression_s3tc */
|
||||
#ifndef GL_EXT_texture_compression_s3tc
|
||||
|
@ -88,47 +92,50 @@ extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC EXTglCompressedTexSubImage1DARB;
|
|||
#define GL_TEXTURE3_ARB 0x84C3
|
||||
#endif
|
||||
|
||||
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);
|
||||
typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum target);
|
||||
typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum target);
|
||||
namespace glx
|
||||
{
|
||||
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);
|
||||
typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum target);
|
||||
typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum target);
|
||||
|
||||
extern PFNGLMULTITEXCOORD2IARBPROC EXTglMultiTexCoord2iARB;
|
||||
extern PFNGLMULTITEXCOORD2FARBPROC EXTglMultiTexCoord2fARB;
|
||||
extern PFNGLMULTITEXCOORD3FARBPROC EXTglMultiTexCoord3fARB;
|
||||
extern PFNGLMULTITEXCOORD3FVARBPROC EXTglMultiTexCoord3fvARB;
|
||||
extern PFNGLACTIVETEXTUREARBPROC EXTglActiveTextureARB;
|
||||
extern PFNGLCLIENTACTIVETEXTUREARBPROC EXTglClientActiveTextureARB;
|
||||
extern PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB;
|
||||
extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
|
||||
extern PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB;
|
||||
extern PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB;
|
||||
extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
|
||||
extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
|
||||
};
|
||||
|
||||
/* EXT_texture_cube_map defines from <GL/gl.h> */
|
||||
#if !(defined( GL_EXT_texture_cube_map) || defined(__glext_h_)) || defined(MACOSX)
|
||||
|
@ -269,47 +276,53 @@ extern PFNGLCLIENTACTIVETEXTUREARBPROC EXTglClientActiveTextureARB;
|
|||
#define GL_COLOR_SUM_CLAMP_NV ((GLenum) 0x854F)
|
||||
#endif
|
||||
|
||||
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);
|
||||
namespace glx
|
||||
{
|
||||
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);
|
||||
|
||||
/* NV_register_combiners command function pointers */
|
||||
extern PFNGLCOMBINERPARAMETERFVNVPROC glCombinerParameterfvNV;
|
||||
extern PFNGLCOMBINERPARAMETERIVNVPROC glCombinerParameterivNV;
|
||||
extern PFNGLCOMBINERPARAMETERFNVPROC glCombinerParameterfNV;
|
||||
extern PFNGLCOMBINERPARAMETERINVPROC glCombinerParameteriNV;
|
||||
extern PFNGLCOMBINERINPUTNVPROC glCombinerInputNV;
|
||||
extern PFNGLCOMBINEROUTPUTNVPROC glCombinerOutputNV;
|
||||
extern PFNGLFINALCOMBINERINPUTNVPROC glFinalCombinerInputNV;
|
||||
extern PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glGetCombinerInputParameterfvNV;
|
||||
extern PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glGetCombinerInputParameterivNV;
|
||||
extern PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glGetCombinerOutputParameterfvNV;
|
||||
extern PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glGetCombinerOutputParameterivNV;
|
||||
extern PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glGetFinalCombinerInputParameterfvNV;
|
||||
extern PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glGetFinalCombinerInputParameterivNV;
|
||||
};
|
||||
|
||||
/* NV_register_combiners command function pointers */
|
||||
extern PFNGLCOMBINERPARAMETERFVNVPROC EXTglCombinerParameterfvNV;
|
||||
extern PFNGLCOMBINERPARAMETERIVNVPROC EXTglCombinerParameterivNV;
|
||||
extern PFNGLCOMBINERPARAMETERFNVPROC EXTglCombinerParameterfNV;
|
||||
extern PFNGLCOMBINERPARAMETERINVPROC EXTglCombinerParameteriNV;
|
||||
extern PFNGLCOMBINERINPUTNVPROC EXTglCombinerInputNV;
|
||||
extern PFNGLCOMBINEROUTPUTNVPROC EXTglCombinerOutputNV;
|
||||
extern PFNGLFINALCOMBINERINPUTNVPROC EXTglFinalCombinerInputNV;
|
||||
extern PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC EXTglGetCombinerInputParameterfvNV;
|
||||
extern PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC EXTglGetCombinerInputParameterivNV;
|
||||
extern PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC EXTglGetCombinerOutputParameterfvNV;
|
||||
extern PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC EXTglGetCombinerOutputParameterivNV;
|
||||
extern PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC EXTglGetFinalCombinerInputParameterfvNV;
|
||||
extern PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC EXTglGetFinalCombinerInputParameterivNV;
|
||||
|
||||
/* NV_register_combiners2 */
|
||||
#ifndef GL_NV_register_combiners2
|
||||
#define GL_PER_STAGE_CONSTANTS_NV 0x8535
|
||||
|
||||
typedef void (APIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
|
||||
|
||||
extern PFNGLCOMBINERSTAGEPARAMETERFVNVPROC EXTglCombinerStageParameterfvNV;
|
||||
extern PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC EXTglGetCombinerStageParameterfvNV;
|
||||
|
||||
#endif
|
||||
|
||||
namespace glx
|
||||
{
|
||||
typedef void (APIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
|
||||
|
||||
extern PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glCombinerStageParameterfvNV;
|
||||
extern PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glGetCombinerStageParameterfvNV;
|
||||
};
|
||||
|
||||
|
||||
/* NV_texture_shader */
|
||||
#ifndef GL_NV_texture_shader
|
||||
|
@ -479,133 +492,137 @@ extern PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC EXTglGetCombinerStageParameterfvNV
|
|||
#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
|
||||
#endif
|
||||
|
||||
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, GLuint count, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint 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);
|
||||
namespace glx
|
||||
{
|
||||
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, GLuint count, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint 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);
|
||||
|
||||
extern PFNGLAREPROGRAMSRESIDENTNVPROC glAreProgramsResidentNV ;
|
||||
extern PFNGLBINDPROGRAMNVPROC glBindProgramNV ;
|
||||
extern PFNGLDELETEPROGRAMSNVPROC glDeleteProgramsNV ;
|
||||
extern PFNGLEXECUTEPROGRAMNVPROC glExecuteProgramNV ;
|
||||
extern PFNGLGENPROGRAMSNVPROC glGenProgramsNV ;
|
||||
extern PFNGLGETPROGRAMPARAMETERDVNVPROC glGetProgramParameterdvNV ;
|
||||
extern PFNGLGETPROGRAMPARAMETERFVNVPROC glGetProgramParameterfvNV ;
|
||||
extern PFNGLGETPROGRAMIVNVPROC glGetProgramivNV ;
|
||||
extern PFNGLGETPROGRAMSTRINGNVPROC glGetProgramStringNV ;
|
||||
extern PFNGLGETTRACKMATRIXIVNVPROC glGetTrackMatrixivNV ;
|
||||
extern PFNGLGETVERTEXATTRIBDVNVPROC glGetVertexAttribdvNV ;
|
||||
extern PFNGLGETVERTEXATTRIBFVNVPROC glGetVertexAttribfvNV ;
|
||||
extern PFNGLGETVERTEXATTRIBIVNVPROC glGetVertexAttribivNV ;
|
||||
extern PFNGLGETVERTEXATTRIBPOINTERVNVPROC glGetVertexAttribPointervNV ;
|
||||
extern PFNGLISPROGRAMNVPROC glIsProgramNV ;
|
||||
extern PFNGLLOADPROGRAMNVPROC glLoadProgramNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4DNVPROC glProgramParameter4dNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4DVNVPROC glProgramParameter4dvNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4FNVPROC glProgramParameter4fNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4FVNVPROC glProgramParameter4fvNV ;
|
||||
extern PFNGLPROGRAMPARAMETERS4DVNVPROC glProgramParameters4dvNV ;
|
||||
extern PFNGLPROGRAMPARAMETERS4FVNVPROC glProgramParameters4fvNV ;
|
||||
extern PFNGLREQUESTRESIDENTPROGRAMSNVPROC glRequestResidentProgramsNV ;
|
||||
extern PFNGLTRACKMATRIXNVPROC glTrackMatrixNV ;
|
||||
extern PFNGLVERTEXATTRIBPOINTERNVPROC glVertexAttribPointerNV ;
|
||||
extern PFNGLVERTEXATTRIB1DNVPROC glVertexAttrib1dNV ;
|
||||
extern PFNGLVERTEXATTRIB1DVNVPROC glVertexAttrib1dvNV ;
|
||||
extern PFNGLVERTEXATTRIB1FNVPROC glVertexAttrib1fNV ;
|
||||
extern PFNGLVERTEXATTRIB1FVNVPROC glVertexAttrib1fvNV ;
|
||||
extern PFNGLVERTEXATTRIB1SNVPROC glVertexAttrib1sNV ;
|
||||
extern PFNGLVERTEXATTRIB1SVNVPROC glVertexAttrib1svNV ;
|
||||
extern PFNGLVERTEXATTRIB2DNVPROC glVertexAttrib2dNV ;
|
||||
extern PFNGLVERTEXATTRIB2DVNVPROC glVertexAttrib2dvNV ;
|
||||
extern PFNGLVERTEXATTRIB2FNVPROC glVertexAttrib2fNV ;
|
||||
extern PFNGLVERTEXATTRIB2FVNVPROC glVertexAttrib2fvNV ;
|
||||
extern PFNGLVERTEXATTRIB2SNVPROC glVertexAttrib2sNV ;
|
||||
extern PFNGLVERTEXATTRIB2SVNVPROC glVertexAttrib2svNV ;
|
||||
extern PFNGLVERTEXATTRIB3DNVPROC glVertexAttrib3dNV ;
|
||||
extern PFNGLVERTEXATTRIB3DVNVPROC glVertexAttrib3dvNV ;
|
||||
extern PFNGLVERTEXATTRIB3FNVPROC glVertexAttrib3fNV ;
|
||||
extern PFNGLVERTEXATTRIB3FVNVPROC glVertexAttrib3fvNV ;
|
||||
extern PFNGLVERTEXATTRIB3SNVPROC glVertexAttrib3sNV ;
|
||||
extern PFNGLVERTEXATTRIB3SVNVPROC glVertexAttrib3svNV ;
|
||||
extern PFNGLVERTEXATTRIB4DNVPROC glVertexAttrib4dNV ;
|
||||
extern PFNGLVERTEXATTRIB4DVNVPROC glVertexAttrib4dvNV ;
|
||||
extern PFNGLVERTEXATTRIB4FNVPROC glVertexAttrib4fNV ;
|
||||
extern PFNGLVERTEXATTRIB4FVNVPROC glVertexAttrib4fvNV ;
|
||||
extern PFNGLVERTEXATTRIB4SNVPROC glVertexAttrib4sNV ;
|
||||
extern PFNGLVERTEXATTRIB4SVNVPROC glVertexAttrib4svNV ;
|
||||
extern PFNGLVERTEXATTRIB4UBVNVPROC glVertexAttrib4ubvNV ;
|
||||
extern PFNGLVERTEXATTRIBS1DVNVPROC glVertexAttribs1dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS1FVNVPROC glVertexAttribs1fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS1SVNVPROC glVertexAttribs1svNV ;
|
||||
extern PFNGLVERTEXATTRIBS2DVNVPROC glVertexAttribs2dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS2FVNVPROC glVertexAttribs2fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS2SVNVPROC glVertexAttribs2svNV ;
|
||||
extern PFNGLVERTEXATTRIBS3DVNVPROC glVertexAttribs3dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS3FVNVPROC glVertexAttribs3fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS3SVNVPROC glVertexAttribs3svNV ;
|
||||
extern PFNGLVERTEXATTRIBS4DVNVPROC glVertexAttribs4dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS4FVNVPROC glVertexAttribs4fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS4SVNVPROC glVertexAttribs4svNV ;
|
||||
extern PFNGLVERTEXATTRIBS4UBVNVPROC glVertexAttribs4ubvNV ;
|
||||
};
|
||||
|
||||
extern PFNGLAREPROGRAMSRESIDENTNVPROC EXTglAreProgramsResidentNV ;
|
||||
extern PFNGLBINDPROGRAMNVPROC EXTglBindProgramNV ;
|
||||
extern PFNGLDELETEPROGRAMSNVPROC EXTglDeleteProgramsNV ;
|
||||
extern PFNGLEXECUTEPROGRAMNVPROC EXTglExecuteProgramNV ;
|
||||
extern PFNGLGENPROGRAMSNVPROC EXTglGenProgramsNV ;
|
||||
extern PFNGLGETPROGRAMPARAMETERDVNVPROC EXTglGetProgramParameterdvNV ;
|
||||
extern PFNGLGETPROGRAMPARAMETERFVNVPROC EXTglGetProgramParameterfvNV ;
|
||||
extern PFNGLGETPROGRAMIVNVPROC EXTglGetProgramivNV ;
|
||||
extern PFNGLGETPROGRAMSTRINGNVPROC EXTglGetProgramStringNV ;
|
||||
extern PFNGLGETTRACKMATRIXIVNVPROC EXTglGetTrackMatrixivNV ;
|
||||
extern PFNGLGETVERTEXATTRIBDVNVPROC EXTglGetVertexAttribdvNV ;
|
||||
extern PFNGLGETVERTEXATTRIBFVNVPROC EXTglGetVertexAttribfvNV ;
|
||||
extern PFNGLGETVERTEXATTRIBIVNVPROC EXTglGetVertexAttribivNV ;
|
||||
extern PFNGLGETVERTEXATTRIBPOINTERVNVPROC EXTglGetVertexAttribPointervNV ;
|
||||
extern PFNGLISPROGRAMNVPROC EXTglIsProgramNV ;
|
||||
extern PFNGLLOADPROGRAMNVPROC EXTglLoadProgramNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4DNVPROC EXTglProgramParameter4dNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4DVNVPROC EXTglProgramParameter4dvNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4FNVPROC EXTglProgramParameter4fNV ;
|
||||
extern PFNGLPROGRAMPARAMETER4FVNVPROC EXTglProgramParameter4fvNV ;
|
||||
extern PFNGLPROGRAMPARAMETERS4DVNVPROC EXTglProgramParameters4dvNV ;
|
||||
extern PFNGLPROGRAMPARAMETERS4FVNVPROC EXTglProgramParameters4fvNV ;
|
||||
extern PFNGLREQUESTRESIDENTPROGRAMSNVPROC EXTglRequestResidentProgramsNV ;
|
||||
extern PFNGLTRACKMATRIXNVPROC EXTglTrackMatrixNV ;
|
||||
extern PFNGLVERTEXATTRIBPOINTERNVPROC EXTglVertexAttribPointerNV ;
|
||||
extern PFNGLVERTEXATTRIB1DNVPROC EXTglVertexAttrib1dNV ;
|
||||
extern PFNGLVERTEXATTRIB1DVNVPROC EXTglVertexAttrib1dvNV ;
|
||||
extern PFNGLVERTEXATTRIB1FNVPROC EXTglVertexAttrib1fNV ;
|
||||
extern PFNGLVERTEXATTRIB1FVNVPROC EXTglVertexAttrib1fvNV ;
|
||||
extern PFNGLVERTEXATTRIB1SNVPROC EXTglVertexAttrib1sNV ;
|
||||
extern PFNGLVERTEXATTRIB1SVNVPROC EXTglVertexAttrib1svNV ;
|
||||
extern PFNGLVERTEXATTRIB2DNVPROC EXTglVertexAttrib2dNV ;
|
||||
extern PFNGLVERTEXATTRIB2DVNVPROC EXTglVertexAttrib2dvNV ;
|
||||
extern PFNGLVERTEXATTRIB2FNVPROC EXTglVertexAttrib2fNV ;
|
||||
extern PFNGLVERTEXATTRIB2FVNVPROC EXTglVertexAttrib2fvNV ;
|
||||
extern PFNGLVERTEXATTRIB2SNVPROC EXTglVertexAttrib2sNV ;
|
||||
extern PFNGLVERTEXATTRIB2SVNVPROC EXTglVertexAttrib2svNV ;
|
||||
extern PFNGLVERTEXATTRIB3DNVPROC EXTglVertexAttrib3dNV ;
|
||||
extern PFNGLVERTEXATTRIB3DVNVPROC EXTglVertexAttrib3dvNV ;
|
||||
extern PFNGLVERTEXATTRIB3FNVPROC EXTglVertexAttrib3fNV ;
|
||||
extern PFNGLVERTEXATTRIB3FVNVPROC EXTglVertexAttrib3fvNV ;
|
||||
extern PFNGLVERTEXATTRIB3SNVPROC EXTglVertexAttrib3sNV ;
|
||||
extern PFNGLVERTEXATTRIB3SVNVPROC EXTglVertexAttrib3svNV ;
|
||||
extern PFNGLVERTEXATTRIB4DNVPROC EXTglVertexAttrib4dNV ;
|
||||
extern PFNGLVERTEXATTRIB4DVNVPROC EXTglVertexAttrib4dvNV ;
|
||||
extern PFNGLVERTEXATTRIB4FNVPROC EXTglVertexAttrib4fNV ;
|
||||
extern PFNGLVERTEXATTRIB4FVNVPROC EXTglVertexAttrib4fvNV ;
|
||||
extern PFNGLVERTEXATTRIB4SNVPROC EXTglVertexAttrib4sNV ;
|
||||
extern PFNGLVERTEXATTRIB4SVNVPROC EXTglVertexAttrib4svNV ;
|
||||
extern PFNGLVERTEXATTRIB4UBVNVPROC EXTglVertexAttrib4ubvNV ;
|
||||
extern PFNGLVERTEXATTRIBS1DVNVPROC EXTglVertexAttribs1dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS1FVNVPROC EXTglVertexAttribs1fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS1SVNVPROC EXTglVertexAttribs1svNV ;
|
||||
extern PFNGLVERTEXATTRIBS2DVNVPROC EXTglVertexAttribs2dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS2FVNVPROC EXTglVertexAttribs2fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS2SVNVPROC EXTglVertexAttribs2svNV ;
|
||||
extern PFNGLVERTEXATTRIBS3DVNVPROC EXTglVertexAttribs3dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS3FVNVPROC EXTglVertexAttribs3fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS3SVNVPROC EXTglVertexAttribs3svNV ;
|
||||
extern PFNGLVERTEXATTRIBS4DVNVPROC EXTglVertexAttribs4dvNV ;
|
||||
extern PFNGLVERTEXATTRIBS4FVNVPROC EXTglVertexAttribs4fvNV ;
|
||||
extern PFNGLVERTEXATTRIBS4SVNVPROC EXTglVertexAttribs4svNV ;
|
||||
extern PFNGLVERTEXATTRIBS4UBVNVPROC EXTglVertexAttribs4ubvNV ;
|
||||
|
||||
/* EXT_paletted_texture defines and prototypes from <GL/gl.h> */
|
||||
#ifndef GL_EXT_paletted_texture
|
||||
|
@ -617,9 +634,11 @@ extern PFNGLVERTEXATTRIBS4UBVNVPROC EXTglVertexAttribs4ubvNV ;
|
|||
#define GL_COLOR_INDEX16_EXT 0x80E7
|
||||
#endif
|
||||
|
||||
typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table);
|
||||
/* EXT_paletted_texture command function pointers */
|
||||
extern PFNGLCOLORTABLEEXTPROC EXTglColorTableEXT;
|
||||
namespace glx
|
||||
{
|
||||
typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table);
|
||||
extern PFNGLCOLORTABLEEXTPROC glColorTableEXT;
|
||||
};
|
||||
|
||||
/* EXT_blend_minmax defines and prototypes from <GL/gl.h> */
|
||||
#ifndef GL_EXT_blend_minmax
|
||||
|
@ -628,11 +647,13 @@ extern PFNGLCOLORTABLEEXTPROC EXTglColorTableEXT;
|
|||
#define GL_MAX_EXT 0x8008
|
||||
|
||||
#endif
|
||||
#if !defined(GL_EXT_blend_minmax)||defined(MACOSX)
|
||||
typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
|
||||
|
||||
extern PFNGLBLENDEQUATIONEXTPROC EXTglBlendEquationEXT;
|
||||
#endif
|
||||
namespace glx
|
||||
{
|
||||
typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
|
||||
extern PFNGLBLENDEQUATIONEXTPROC glBlendEquationEXT;
|
||||
};
|
||||
|
||||
|
||||
/* EXT_blend_subtract defines and prototypes from <GL/gl.h> */
|
||||
#ifndef GL_EXT_blend_subtract
|
||||
|
@ -641,10 +662,13 @@ extern PFNGLBLENDEQUATIONEXTPROC EXTglBlendEquationEXT;
|
|||
#endif
|
||||
|
||||
/* WGL_EXT_swap_control defines and prototypes from <GL/gl.h> */
|
||||
#ifndef WGL_EXT_swap_control
|
||||
typedef int (APIENTRY * PFNWGLSWAPINTERVALEXTPROC) (int);
|
||||
typedef int (APIENTRY * PFNWGLGETSWAPINTERVALEXTPROC) (void);
|
||||
#endif
|
||||
namespace glx
|
||||
{
|
||||
typedef int (APIENTRY * PFNWGLSWAPINTERVALEXTPROC) (int);
|
||||
typedef int (APIENTRY * PFNWGLGETSWAPINTERVALEXTPROC) (void);
|
||||
extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
||||
extern PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT;
|
||||
};
|
||||
|
||||
/* OpenGL 1.2 defines and prototypes from <GL/gl.h> */
|
||||
#ifndef GL_CLAMP_TO_EDGE
|
||||
|
@ -659,23 +683,271 @@ typedef int (APIENTRY * PFNWGLGETSWAPINTERVALEXTPROC) (void);
|
|||
#define GL_DOT3_RGBA_EXT 0x8741
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
/* WGL_EXT_swap_control command function pointers */
|
||||
extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
||||
extern PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT;
|
||||
/* ARB_vertex_program */
|
||||
#ifndef GL_ARB_vertex_program
|
||||
#define GL_ARB_vertex_program 1
|
||||
#define GL_VERTEX_PROGRAM_ARB 0x8620
|
||||
#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
|
||||
#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
|
||||
#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
|
||||
#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
|
||||
#define GL_PROGRAM_LENGTH_ARB 0x8627
|
||||
#define GL_PROGRAM_FORMAT_ARB 0x8876
|
||||
#define GL_PROGRAM_NAME_ARB 0x8677
|
||||
#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
|
||||
#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
|
||||
#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
|
||||
#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
|
||||
#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
|
||||
#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
|
||||
#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
|
||||
#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
|
||||
#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
|
||||
#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
|
||||
#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
|
||||
#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
|
||||
#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
|
||||
#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
|
||||
#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
|
||||
#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
|
||||
#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
|
||||
#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
|
||||
#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
|
||||
#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
|
||||
#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
|
||||
#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
|
||||
#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
|
||||
#define GL_PROGRAM_STRING_ARB 0x8628
|
||||
#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
|
||||
#define GL_CURRENT_MATRIX_ARB 0x8641
|
||||
#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
|
||||
#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
|
||||
#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
|
||||
#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
|
||||
#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
|
||||
#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
|
||||
|
||||
#endif /* _WIN32 */
|
||||
#define GL_MATRIX0_ARB 0x88C0
|
||||
#define GL_MATRIX1_ARB 0x88C1
|
||||
#define GL_MATRIX2_ARB 0x88C2
|
||||
#define GL_MATRIX3_ARB 0x88C3
|
||||
#define GL_MATRIX4_ARB 0x88C4
|
||||
#define GL_MATRIX5_ARB 0x88C5
|
||||
#define GL_MATRIX6_ARB 0x88C6
|
||||
#define GL_MATRIX7_ARB 0x88C7
|
||||
#define GL_MATRIX8_ARB 0x88C8
|
||||
#define GL_MATRIX9_ARB 0x88C9
|
||||
#define GL_MATRIX10_ARB 0x88CA
|
||||
#define GL_MATRIX11_ARB 0x88CB
|
||||
#define GL_MATRIX12_ARB 0x88CC
|
||||
#define GL_MATRIX13_ARB 0x88CD
|
||||
#define GL_MATRIX14_ARB 0x88CE
|
||||
#define GL_MATRIX15_ARB 0x88CF
|
||||
#define GL_MATRIX16_ARB 0x88D0
|
||||
#define GL_MATRIX17_ARB 0x88D1
|
||||
#define GL_MATRIX18_ARB 0x88D2
|
||||
#define GL_MATRIX19_ARB 0x88D3
|
||||
#define GL_MATRIX20_ARB 0x88D4
|
||||
#define GL_MATRIX21_ARB 0x88D5
|
||||
#define GL_MATRIX22_ARB 0x88D6
|
||||
#define GL_MATRIX23_ARB 0x88D7
|
||||
#define GL_MATRIX24_ARB 0x88D8
|
||||
#define GL_MATRIX25_ARB 0x88D9
|
||||
#define GL_MATRIX26_ARB 0x88DA
|
||||
#define GL_MATRIX27_ARB 0x88DB
|
||||
#define GL_MATRIX28_ARB 0x88DC
|
||||
#define GL_MATRIX29_ARB 0x88DD
|
||||
#define GL_MATRIX30_ARB 0x88DE
|
||||
#define GL_MATRIX31_ARB 0x88DF
|
||||
#endif /* GL_ARB_vertex_program */
|
||||
|
||||
namespace glx
|
||||
{
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
|
||||
typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string);
|
||||
typedef void (APIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
|
||||
typedef void (APIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
|
||||
typedef void (APIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
typedef GLboolean (APIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program);
|
||||
|
||||
extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
|
||||
extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
|
||||
extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
|
||||
extern PFNGLISPROGRAMARBPROC glIsProgramARB;
|
||||
|
||||
extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
|
||||
extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
|
||||
extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
|
||||
extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
|
||||
extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
|
||||
extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
|
||||
extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
|
||||
extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
|
||||
extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
|
||||
extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
|
||||
extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
|
||||
extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
|
||||
extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB;
|
||||
extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
|
||||
extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
|
||||
extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
|
||||
extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
|
||||
extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
|
||||
extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
|
||||
extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
|
||||
extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
|
||||
extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
|
||||
extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
|
||||
extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
|
||||
extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
|
||||
extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
|
||||
extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
|
||||
extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
|
||||
extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
|
||||
extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
|
||||
extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB;
|
||||
extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB;
|
||||
extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB;
|
||||
extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB;
|
||||
extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB;
|
||||
extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB;
|
||||
|
||||
extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
|
||||
|
||||
extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
|
||||
extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
|
||||
|
||||
extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
|
||||
extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
|
||||
extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
|
||||
extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
|
||||
|
||||
extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
|
||||
|
||||
extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
|
||||
extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
|
||||
extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
|
||||
extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
|
||||
|
||||
extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
|
||||
extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
|
||||
|
||||
extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
|
||||
};
|
||||
|
||||
|
||||
extern void InitExtRegisterCombiners();
|
||||
extern void InitExtRegisterCombiners2();
|
||||
extern void InitExtMultiTexture();
|
||||
extern void InitExtPalettedTextures();
|
||||
extern void InitExtSwapControl();
|
||||
extern void InitExtTextureCompression();
|
||||
extern void InitExtBlendMinmax();
|
||||
extern void InitExtVertexProgram();
|
||||
/* GL_NV_fragment_program */
|
||||
#ifndef GL_NV_fragment_program
|
||||
#define GL_NV_fragment_program 1
|
||||
#define GL_FRAGMENT_PROGRAM_NV 0x8870
|
||||
#define GL_MAX_TEXTURE_COORDS_NV 0x8871
|
||||
#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
|
||||
#endif /* GL_NV_fragment_program */
|
||||
|
||||
namespace glx
|
||||
{
|
||||
typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat v[]);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble v[]);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
|
||||
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FNVPROC) (GLenum target, GLuint id, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DNVPROC) (GLenum target, GLuint id, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVNVPROC) (GLenum target, GLuint id, const GLfloat v[]);
|
||||
typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVNVPROC) (GLenum target, GLuint id, const GLdouble v[]);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVNVPROC) (GLenum target, GLuint id, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVNVPROC) (GLenum target, GLuint id, GLdouble *params);
|
||||
|
||||
|
||||
extern PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glProgramNamedParameter4fNV;
|
||||
extern PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glProgramNamedParameter4dNV;
|
||||
extern PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glProgramNamedParameter4fvNV;
|
||||
extern PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glProgramNamedParameter4dvNV;
|
||||
extern PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glGetProgramNamedParameterfvNV;
|
||||
extern PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glGetProgramNamedParameterdvNV;
|
||||
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4FNVPROC glProgramLocalParameter4fNV;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4DNVPROC glProgramLocalParameter4dNV;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4FVNVPROC glProgramLocalParameter4fvNV;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4DVNVPROC glProgramLocalParameter4dvNV;
|
||||
extern PFNGLGETPROGRAMLOCALPARAMETERFVNVPROC glGetProgramLocalParameterfvNV;
|
||||
extern PFNGLGETPROGRAMLOCALPARAMETERDVNVPROC glGetProgramLocalParameterdvNV;
|
||||
};
|
||||
|
||||
|
||||
extern void InitExtension(const char* ext);
|
||||
extern bool ExtensionSupported(char *ext);
|
||||
|
||||
|
||||
|
|
|
@ -202,7 +202,7 @@ void LODSphereMesh::render(unsigned int attributes,
|
|||
{
|
||||
textures[i] = tex[i];
|
||||
subtextures[i] = 0;
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,7 @@ void LODSphereMesh::render(unsigned int attributes,
|
|||
|
||||
for (i = 0; i < nTextures; i++)
|
||||
{
|
||||
EXTglClientActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glx::glClientActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, texCoords[i]);
|
||||
}
|
||||
|
@ -261,7 +261,7 @@ void LODSphereMesh::render(unsigned int attributes,
|
|||
if (tangents != NULL && ((attributes & Mesh::Tangents) != 0))
|
||||
{
|
||||
glEnableClientState(GL_VERTEX_ATTRIB_ARRAY6_NV);
|
||||
EXTglVertexAttribPointerNV(6, 3, GL_FLOAT, 0, tangents);
|
||||
glx::glVertexAttribPointerNV(6, 3, GL_FLOAT, 0, tangents);
|
||||
}
|
||||
|
||||
if (split == 1)
|
||||
|
@ -331,12 +331,12 @@ void LODSphereMesh::render(unsigned int attributes,
|
|||
|
||||
for (i = 0; i < nTextures; i++)
|
||||
{
|
||||
EXTglClientActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glx::glClientActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
}
|
||||
EXTglClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
|
||||
#if SHOW_FRUSTUM
|
||||
// Debugging code for visualizing the frustum.
|
||||
|
@ -516,7 +516,7 @@ void LODSphereMesh::renderSection(int phi0, int theta0,
|
|||
// texture state changes.
|
||||
if (tn != subtextures[tex])
|
||||
{
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB + tex);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB + tex);
|
||||
glBindTexture(GL_TEXTURE_2D, tn);
|
||||
subtextures[tex] = tn;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ void rc::parameter(GLenum which, Color color)
|
|||
f[1] = color.green();
|
||||
f[2] = color.blue();
|
||||
f[3] = color.alpha();
|
||||
EXTglCombinerParameterfvNV(which, f);
|
||||
glx::glCombinerParameterfvNV(which, f);
|
||||
}
|
||||
|
||||
void SetupCombinersBumpMap(Texture& bumpTexture,
|
||||
|
@ -71,73 +71,73 @@ void SetupCombinersBumpMap(Texture& bumpTexture,
|
|||
glEnable(GL_REGISTER_COMBINERS_NV);
|
||||
|
||||
glDisable(GL_LIGHTING);
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glEnable(GL_TEXTURE_CUBE_MAP_EXT);
|
||||
glBindTexture(GL_TEXTURE_CUBE_MAP_EXT, normalizationTexture.getName());
|
||||
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, bumpTexture.getName());
|
||||
|
||||
// Just a single combiner stage required . . .
|
||||
EXTglCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
glx::glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
|
||||
float ambient[4] = { 0.0f, 0.0f, 0.0f, 1.0f };
|
||||
ambient[0] = ambientColor.red();
|
||||
ambient[1] = ambientColor.green();
|
||||
ambient[2] = ambientColor.blue();
|
||||
EXTglCombinerParameterfvNV(GL_CONSTANT_COLOR0_NV, ambient);
|
||||
glx::glCombinerParameterfvNV(GL_CONSTANT_COLOR0_NV, ambient);
|
||||
|
||||
// Compute N dot L in the RGB portion of combiner 0
|
||||
// Load register A with a normal N from the normal map
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_A_NV, GL_TEXTURE0_ARB,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_A_NV, GL_TEXTURE0_ARB,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
|
||||
// Load register B with the normalized light direction L
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_B_NV, GL_TEXTURE1_ARB,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_B_NV, GL_TEXTURE1_ARB,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
|
||||
// Compute N dot L
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_SPARE0_NV, GL_DISCARD_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_TRUE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_SPARE0_NV, GL_DISCARD_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_TRUE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// Compute the self-shadowing term in the alpha portion of combiner 0
|
||||
// A = 1
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_A_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_A_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
// B = L.z
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE1_ARB, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE1_ARB, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
// C = 1
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
// D = L.z
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_D_NV,
|
||||
GL_TEXTURE1_ARB, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_D_NV,
|
||||
GL_TEXTURE1_ARB, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
|
||||
// Create a steep ramp function for self-shadowing
|
||||
// SPARE0 = 4*(A*B+C*D) = 4*(1*L.z + 1*L.z) = 8 * L.z
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_ALPHA,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_SCALE_BY_FOUR_NV, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_ALPHA,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_SCALE_BY_FOUR_NV, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// A = SPARE0_alpha = per-pixel self-shadowing term
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// C = zero
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// D = ambient color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_CONSTANT_COLOR0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_CONSTANT_COLOR0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// G = diffuse illumination contribution = L dot N
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
}
|
||||
|
||||
|
||||
|
@ -154,69 +154,69 @@ void SetupCombinersSmooth(Texture& baseTexture,
|
|||
glEnable(GL_REGISTER_COMBINERS_NV);
|
||||
|
||||
glDisable(GL_LIGHTING);
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glEnable(GL_TEXTURE_CUBE_MAP_EXT);
|
||||
glBindTexture(GL_TEXTURE_CUBE_MAP_EXT, normalizationTexture.getName());
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, baseTexture.getName());
|
||||
|
||||
// Just a single combiner stage required . . .
|
||||
EXTglCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
glx::glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
|
||||
float ambient[4] = { 0.0f, 0.0f, 0.0f, 1.0f };
|
||||
ambient[0] = ambientColor.red();
|
||||
ambient[1] = ambientColor.green();
|
||||
ambient[2] = ambientColor.blue();
|
||||
EXTglCombinerParameterfvNV(GL_CONSTANT_COLOR0_NV, ambient);
|
||||
glx::glCombinerParameterfvNV(GL_CONSTANT_COLOR0_NV, ambient);
|
||||
|
||||
// A = primary color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV,
|
||||
GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV,
|
||||
GL_RGB);
|
||||
// B = base texture color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// SPARE1_rgb = primary * texture
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_SPARE1_NV, GL_DISCARD_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_SPARE1_NV, GL_DISCARD_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// A = 1
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_A_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_A_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
// B = L.z
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE1_ARB, GL_EXPAND_NORMAL_NV,
|
||||
GL_BLUE);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE1_ARB, GL_EXPAND_NORMAL_NV,
|
||||
GL_BLUE);
|
||||
// SPARE0_alpha = 1 * L.z
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_ALPHA,
|
||||
GL_SPARE0_NV, GL_DISCARD_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_ALPHA,
|
||||
GL_SPARE0_NV, GL_DISCARD_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// E = SPARE1_rgb = base texture color * primary
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_E_NV,
|
||||
GL_SPARE1_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_E_NV,
|
||||
GL_SPARE1_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// F = ambient color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_F_NV,
|
||||
GL_CONSTANT_COLOR0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_F_NV,
|
||||
GL_CONSTANT_COLOR0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// A = SPARE1_rgb = base texture color * primary
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_SPARE1_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_SPARE1_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// B = SPARE0_alpha = L.z
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV,
|
||||
invert ? GL_UNSIGNED_INVERT_NV : GL_UNSIGNED_IDENTITY_NV,
|
||||
GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV,
|
||||
invert ? GL_UNSIGNED_INVERT_NV : GL_UNSIGNED_IDENTITY_NV,
|
||||
GL_ALPHA);
|
||||
// C = zero
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// D = SPARE1_rgb = E*F = texture * primary * ambient color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_E_TIMES_F_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_E_TIMES_F_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// G = 1
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
|
||||
}
|
||||
|
||||
|
@ -227,102 +227,102 @@ void SetupCombinersDecalAndBumpMap(Texture& bumpTexture,
|
|||
{
|
||||
glEnable(GL_REGISTER_COMBINERS_NV);
|
||||
#if 0
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
bumpTexture.bind();
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
#endif
|
||||
EXTglCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 2);
|
||||
glx::glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 2);
|
||||
|
||||
rc::parameter(GL_CONSTANT_COLOR0_NV, ambientColor);
|
||||
rc::parameter(GL_CONSTANT_COLOR1_NV, diffuseColor);
|
||||
|
||||
// Compute N dot L in the RGB portion of combiner 0
|
||||
// Load register A with a normal N from the bump map
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_A_NV, GL_TEXTURE1_ARB,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_A_NV, GL_TEXTURE1_ARB,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
|
||||
// Load register B with the primary color, which contains the surface
|
||||
// space light direction L. Because the color is linearly interpolated
|
||||
// across triangles, the direction may become denormalized; however, in
|
||||
// Celestia, planet surfaces are tessellated to the point where this
|
||||
// is not a problem.
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_B_NV, GL_PRIMARY_COLOR_NV,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_B_NV, GL_PRIMARY_COLOR_NV,
|
||||
GL_EXPAND_NORMAL_NV, GL_RGB);
|
||||
|
||||
// Product C*D computes diffuse color * texture
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_C_NV, GL_TEXTURE0_ARB,
|
||||
GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_D_NV, GL_CONSTANT_COLOR1_NV,
|
||||
GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_C_NV, GL_TEXTURE0_ARB,
|
||||
GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_VARIABLE_D_NV, GL_CONSTANT_COLOR1_NV,
|
||||
GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
|
||||
// Compute N dot L in spare0 and diffuse * decal texture in spare1
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_SPARE0_NV, GL_SPARE1_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_TRUE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_SPARE0_NV, GL_SPARE1_NV, GL_DISCARD_NV,
|
||||
GL_NONE, GL_NONE, GL_TRUE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// Compute the self-shadowing term in the alpha portion of combiner 0
|
||||
// A = 1
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_A_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_A_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
// B = L.z
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_B_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_B_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
// C = 1
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
// D = L.z
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_D_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_ALPHA, GL_VARIABLE_D_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_EXPAND_NORMAL_NV, GL_BLUE);
|
||||
|
||||
// Create a steep ramp function for self-shadowing
|
||||
// SPARE0 = 4*(A*B+C*D) = 4*(1*L.z + 1*L.z) = 8 * L.z
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_ALPHA,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_SCALE_BY_FOUR_NV, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_ALPHA,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_SCALE_BY_FOUR_NV, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// In the second combiner, sum the ambient color and product of the
|
||||
// diffuse and self-shadowing terms.
|
||||
EXTglCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
EXTglCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
EXTglCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_C_NV,
|
||||
GL_CONSTANT_COLOR0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
EXTglCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_RGB);
|
||||
EXTglCombinerOutputNV(GL_COMBINER1_NV, GL_RGB,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_C_NV,
|
||||
GL_CONSTANT_COLOR0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER1_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_RGB);
|
||||
glx::glCombinerOutputNV(GL_COMBINER1_NV, GL_RGB,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// E = SPARE0 = fragment brightness, including ambient, diffuse, and
|
||||
// self shadowing.
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_E_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_E_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// F = spare1 = decal texture rgb * diffuse color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_F_NV,
|
||||
GL_SPARE1_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_F_NV,
|
||||
GL_SPARE1_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
|
||||
// A = fog factor
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
// B = color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_E_TIMES_F_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_E_TIMES_F_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// C = fog color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// D = zero
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
|
||||
// G = diffuse illumination contribution = L dot N
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
}
|
||||
|
||||
|
||||
|
@ -332,50 +332,50 @@ void SetupCombinersGlossMap(int glossMap)
|
|||
glEnable(GL_REGISTER_COMBINERS_NV);
|
||||
|
||||
// Just a single combiner stage required . . .
|
||||
EXTglCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
glx::glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
|
||||
// A = primary color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// B = base texture color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// C = secondary color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_C_NV,
|
||||
GL_SECONDARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_C_NV,
|
||||
GL_SECONDARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
if (glossMap != 0)
|
||||
{
|
||||
// D = texture1 rgb (gloss mask)
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
glossMap, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
glossMap, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
}
|
||||
else
|
||||
{
|
||||
// D = texture alpha (gloss mask)
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
}
|
||||
|
||||
// SPARE0_rgb = primary * texture.rgb + secondary * texture.alpha
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// A = SPARE0_rgb
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// B = 1
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_RGB);
|
||||
// C = zero
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// D = zero
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// G = 1
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
}
|
||||
|
||||
|
||||
|
@ -385,58 +385,58 @@ void SetupCombinersGlossMapWithFog(int glossMap)
|
|||
glEnable(GL_REGISTER_COMBINERS_NV);
|
||||
|
||||
// Just a single combiner stage required . . .
|
||||
EXTglCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
glx::glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
|
||||
|
||||
// A = primary color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_A_NV,
|
||||
GL_PRIMARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// B = base texture color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_B_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// C = secondary color
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_C_NV,
|
||||
GL_SECONDARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_C_NV,
|
||||
GL_SECONDARY_COLOR_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
if (glossMap != 0)
|
||||
{
|
||||
// D = texture1 rgb (gloss mask)
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
glossMap, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
glossMap, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
}
|
||||
else
|
||||
{
|
||||
// D = texture alpha (gloss mask)
|
||||
EXTglCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glCombinerInputNV(GL_COMBINER0_NV, GL_RGB, GL_VARIABLE_D_NV,
|
||||
GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
}
|
||||
|
||||
// SPARE0_rgb = primary * texture.rgb + secondary * texture.alpha
|
||||
EXTglCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glx::glCombinerOutputNV(GL_COMBINER0_NV, GL_RGB,
|
||||
GL_DISCARD_NV, GL_DISCARD_NV, GL_SPARE0_NV,
|
||||
GL_NONE, GL_NONE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
|
||||
// A = fog factor
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_A_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_ALPHA);
|
||||
// B = spare0_rgb
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_B_NV,
|
||||
GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// C = fog color
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_C_NV,
|
||||
GL_FOG, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// D = zero
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_D_NV,
|
||||
GL_ZERO, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
|
||||
// G = 1
|
||||
EXTglFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
glx::glFinalCombinerInputNV(GL_VARIABLE_G_NV,
|
||||
GL_ZERO, GL_UNSIGNED_INVERT_NV, GL_ALPHA);
|
||||
}
|
||||
|
||||
|
||||
void DisableCombiners()
|
||||
{
|
||||
glDisable(GL_REGISTER_COMBINERS_NV);
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glDisable(GL_TEXTURE_CUBE_MAP_EXT);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
|
|
|
@ -357,13 +357,13 @@ bool Renderer::init(int winWidth, int winHeight)
|
|||
|
||||
// Initialize GL extensions
|
||||
if (ExtensionSupported("GL_ARB_multitexture"))
|
||||
InitExtMultiTexture();
|
||||
InitExtension("GL_ARB_multitexture");
|
||||
if (ExtensionSupported("GL_NV_register_combiners"))
|
||||
InitExtRegisterCombiners();
|
||||
InitExtension("GL_NV_register_combiners");
|
||||
if (ExtensionSupported("GL_NV_vertex_program"))
|
||||
InitExtVertexProgram();
|
||||
InitExtension("GL_NV_vertex_program");
|
||||
if (ExtensionSupported("GL_EXT_blend_minmax"))
|
||||
InitExtBlendMinmax();
|
||||
InitExtension("GL_EXT_blend_minmax");
|
||||
if (ExtensionSupported("GL_EXT_texture_cube_map"))
|
||||
{
|
||||
// normalizationTex = CreateNormalizationCubeMap(64);
|
||||
|
@ -414,7 +414,7 @@ bool Renderer::init(int winWidth, int winHeight)
|
|||
|
||||
// Get GL extension information
|
||||
if (ExtensionSupported("GL_ARB_multitexture") &&
|
||||
EXTglActiveTextureARB != NULL)
|
||||
glx::glActiveTextureARB != NULL)
|
||||
{
|
||||
DPRINTF(1, "Renderer: multi-texture supported.\n");
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB,
|
||||
|
@ -430,7 +430,7 @@ bool Renderer::init(int winWidth, int winHeight)
|
|||
DPRINTF(1, "Renderer: nVidia register combiners supported.\n");
|
||||
useRegisterCombiners = true;
|
||||
}
|
||||
if (ExtensionSupported("GL_NV_vertex_program") && EXTglGenProgramsNV)
|
||||
if (ExtensionSupported("GL_NV_vertex_program") && glx::glGenProgramsNV)
|
||||
{
|
||||
DPRINTF(1, "Renderer: nVidia vertex programs supported.\n");
|
||||
useVertexPrograms = vp::init();
|
||||
|
@ -477,6 +477,22 @@ bool Renderer::init(int winWidth, int winHeight)
|
|||
}
|
||||
}
|
||||
|
||||
// More ugly hacks; according to Matt Craighead at NVIDIA, an NVIDIA
|
||||
// OpenGL driver that reports version 1.3.1 or greater will have working
|
||||
// fog in emulated vertex programs.
|
||||
char* glVersion = (char*) glGetString(GL_VERSION);
|
||||
if (glVersion != NULL)
|
||||
{
|
||||
int major = 0, minor = 0, extra = 0;
|
||||
int nScanned = sscanf(glVersion, "%d.%d.%d", &major, &minor, &extra);
|
||||
|
||||
if (nScanned >= 2)
|
||||
{
|
||||
if (major > 1 || minor > 3 || extra >= 1)
|
||||
buggyVertexProgramEmulation = false;
|
||||
}
|
||||
}
|
||||
|
||||
DPRINTF(1, "Simultaneous textures supported: %d\n", nSimultaneousTextures);
|
||||
|
||||
glLoadIdentity();
|
||||
|
@ -1561,7 +1577,7 @@ static void renderBumpMappedMesh(Texture& baseTexture,
|
|||
// isn't as general as transforming the light direction by an
|
||||
// orthonormal basis for each mesh vertex, but it works well enough
|
||||
// for spheres illuminated by directional light sources.
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
|
||||
// Set up GL_NORMAL_MAP_EXT texture coordinate generation. This
|
||||
// mode is part of the cube map extension.
|
||||
|
@ -1577,13 +1593,13 @@ static void renderBumpMappedMesh(Texture& baseTexture,
|
|||
glMatrixMode(GL_TEXTURE);
|
||||
glRotate(lightOrientation * ~orientation);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
|
||||
lodSphere->render(Mesh::Normals | Mesh::TexCoords0, frustum, lod,
|
||||
&bumpTexture);
|
||||
|
||||
// Reset the second texture unit
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
@ -1648,7 +1664,7 @@ static void renderSmoothMesh(Texture& baseTexture,
|
|||
// isn't as general as transforming the light direction by an
|
||||
// orthonormal basis for each mesh vertex, but it works well enough
|
||||
// for spheres illuminated by directional light sources.
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
|
||||
// Set up GL_NORMAL_MAP_EXT texture coordinate generation. This
|
||||
// mode is part of the cube map extension.
|
||||
|
@ -1664,14 +1680,14 @@ static void renderSmoothMesh(Texture& baseTexture,
|
|||
glMatrixMode(GL_TEXTURE);
|
||||
glRotate(lightOrientation * ~orientation);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
|
||||
textures[0] = &baseTexture;
|
||||
lodSphere->render(Mesh::Normals | Mesh::TexCoords0, frustum, lod,
|
||||
textures, 1);
|
||||
|
||||
// Reset the second texture unit
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
@ -2179,7 +2195,7 @@ static void renderRings(RingSystem& rings,
|
|||
// distance to the sun is very large relative to its diameter.
|
||||
if (renderShadow)
|
||||
{
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
shadowTex->bind();
|
||||
|
||||
|
@ -2218,13 +2234,13 @@ static void renderRings(RingSystem& rings,
|
|||
glTexGenfv(GL_T, GL_EYE_PLANE, tPlane);
|
||||
}
|
||||
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
else
|
||||
{
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
|
@ -2277,11 +2293,11 @@ static void renderRings(RingSystem& rings,
|
|||
// Disable the second texture unit if it was used
|
||||
if (renderShadow)
|
||||
{
|
||||
EXTglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
|
||||
// Render the unshadowed side
|
||||
|
@ -3422,7 +3438,7 @@ void Renderer::renderCometTail(const Body& body,
|
|||
glPushMatrix();
|
||||
glTranslate(pos);
|
||||
|
||||
// EXTglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
// glx::glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_LIGHTING);
|
||||
glDepthMask(GL_FALSE);
|
||||
|
|
|
@ -100,7 +100,7 @@ void SphereMesh::render(unsigned int attributes, float)
|
|||
if (tangents != NULL && ((attributes & Tangents) != 0))
|
||||
{
|
||||
glEnableClientState(GL_VERTEX_ATTRIB_ARRAY6_NV);
|
||||
EXTglVertexAttribPointerNV(6, 3, GL_FLOAT, 0, tangents);
|
||||
glx::glVertexAttribPointerNV(6, 3, GL_FLOAT, 0, tangents);
|
||||
}
|
||||
|
||||
for (int i = 0; i < nRings - 1; i++)
|
||||
|
|
|
@ -151,7 +151,7 @@ static void initTextureLoader()
|
|||
{
|
||||
compressionSupported = ExtensionSupported("GL_ARB_texture_compression");
|
||||
if (compressionSupported)
|
||||
InitExtTextureCompression();
|
||||
InitExtension("GL_ARB_texture_compression");
|
||||
|
||||
#ifdef GL_VERSION_1_2
|
||||
clampToEdgeSupported = true;
|
||||
|
@ -585,13 +585,13 @@ void Texture::loadCompressedTexture(unsigned char* texels,
|
|||
int mmSize = compressedBlockSize(format) *
|
||||
((mmWidth + 3) / 4) * ((mmHeight + 3) / 4);
|
||||
|
||||
EXTglCompressedTexImage2DARB(GL_TEXTURE_2D,
|
||||
mipMapLevel,
|
||||
format,
|
||||
mmWidth, mmHeight,
|
||||
0,
|
||||
mmSize,
|
||||
texels + mmOffset);
|
||||
glx::glCompressedTexImage2DARB(GL_TEXTURE_2D,
|
||||
mipMapLevel,
|
||||
format,
|
||||
mmWidth, mmHeight,
|
||||
0,
|
||||
mmSize,
|
||||
texels + mmOffset);
|
||||
mmOffset += mmSize;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ unsigned int vp::everything = 0;
|
|||
unsigned int vp::diffuseTexOffset = 0;
|
||||
unsigned int vp::ringIllum = 0;
|
||||
unsigned int vp::ringShadow = 0;
|
||||
unsigned int vp::cometTail = 0;
|
||||
|
||||
|
||||
static string* ReadTextFromFile(const string& filename)
|
||||
|
@ -56,11 +57,11 @@ static bool LoadVertexProgram(const string& filename, unsigned int& id)
|
|||
return false;
|
||||
}
|
||||
|
||||
EXTglGenProgramsNV(1, (GLuint*) &id);
|
||||
EXTglLoadProgramNV(GL_VERTEX_PROGRAM_NV,
|
||||
id,
|
||||
source->length(),
|
||||
reinterpret_cast<const GLubyte*>(source->c_str()));
|
||||
glx::glGenProgramsNV(1, (GLuint*) &id);
|
||||
glx::glLoadProgramNV(GL_VERTEX_PROGRAM_NV,
|
||||
id,
|
||||
source->length(),
|
||||
reinterpret_cast<const GLubyte*>(source->c_str()));
|
||||
|
||||
delete source;
|
||||
|
||||
|
@ -99,12 +100,14 @@ bool vp::init()
|
|||
return false;
|
||||
if (!LoadVertexProgram("shaders/ringshadow.vp", ringShadow))
|
||||
return false;
|
||||
// if (!LoadVertexProgram("shaders/comet.vp", cometTail))
|
||||
// return false;
|
||||
everything = 0;
|
||||
|
||||
EXTglTrackMatrixNV(GL_VERTEX_PROGRAM_NV,
|
||||
0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
|
||||
EXTglTrackMatrixNV(GL_VERTEX_PROGRAM_NV,
|
||||
4, GL_MODELVIEW_PROJECTION_NV, GL_INVERSE_TRANSPOSE_NV);
|
||||
glx::glTrackMatrixNV(GL_VERTEX_PROGRAM_NV,
|
||||
0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
|
||||
glx::glTrackMatrixNV(GL_VERTEX_PROGRAM_NV,
|
||||
4, GL_MODELVIEW_PROJECTION_NV, GL_INVERSE_TRANSPOSE_NV);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -124,30 +127,30 @@ void vp::enable()
|
|||
|
||||
void vp::use(unsigned int prog)
|
||||
{
|
||||
EXTglBindProgramNV(GL_VERTEX_PROGRAM_NV, prog);
|
||||
glx::glBindProgramNV(GL_VERTEX_PROGRAM_NV, prog);
|
||||
}
|
||||
|
||||
|
||||
void vp::parameter(unsigned int param, const Vec3f& v)
|
||||
{
|
||||
EXTglProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param, v.x, v.y, v.z, 0.0f);
|
||||
glx::glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param, v.x, v.y, v.z, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
void vp::parameter(unsigned int param, const Point3f& p)
|
||||
{
|
||||
EXTglProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param, p.x, p.y, p.z, 0.0f);
|
||||
glx::glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param, p.x, p.y, p.z, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
void vp::parameter(unsigned int param, const Color& c)
|
||||
{
|
||||
EXTglProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param,
|
||||
c.red(), c.green(), c.blue(), c.alpha());
|
||||
glx::glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param,
|
||||
c.red(), c.green(), c.blue(), c.alpha());
|
||||
}
|
||||
|
||||
|
||||
void vp::parameter(unsigned int param, float x, float y, float z, float w)
|
||||
{
|
||||
EXTglProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param, x, y, z, w);
|
||||
glx::glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, param, x, y, z, w);
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace vp
|
|||
extern unsigned int diffuseTexOffset;
|
||||
extern unsigned int ringIllum;
|
||||
extern unsigned int ringShadow;
|
||||
extern unsigned int cometTail;
|
||||
};
|
||||
|
||||
#endif // _VERTEXPROG_H_
|
||||
|
|
Loading…
Reference in New Issue