📄 glew.c
字号:
/*** The OpenGL Extension Wrangler Library** Copyright (C) 2004, 2003, 2002, Milan Ikits <milan ikits[at]ieee org>** Copyright (C) 2004, 2003, 2002, Marcelo E. Magallon <mmagallo[at]debian org>** Copyright (C) 2002, Lev Povalahev** All rights reserved.** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met:** ** * Redistributions of source code must retain the above copyright notice, ** this list of conditions and the following disclaimer.** * Redistributions in binary form must reproduce the above copyright notice, ** this list of conditions and the following disclaimer in the documentation ** and/or other materials provided with the distribution.** * The name of the author may be used to endorse or promote products ** derived from this software without specific prior written permission.**** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF** THE POSSIBILITY OF SUCH DAMAGE.*/#include <glew.h>#if defined(_WIN32)# include <wglew.h>#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)# include <glxew.h>#endif#if defined(_WIN32)# define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)#else# if defined(__APPLE__)# define glewGetProcAddress(name) NSGLGetProcAddress(name)# else# if defined(__sgi) || defined(__sun)# define glewGetProcAddress(name) dlGetProcAddress(name)# else /* __linux */# define glewGetProcAddress(name) (*glXGetProcAddressARB)(name)# endif# endif#endif#if defined(__APPLE__)#include <mach-o/dyld.h>#include <stdlib.h>#include <string.h>static void *NSGLGetProcAddress (const GLubyte *name){ NSSymbol symbol; char *symbolName; /* prepend a '_' for the Unix C symbol mangling convention */ symbolName = malloc(strlen((const char *)name) + 2); strcpy(symbolName+1, (const char *)name); symbolName[0] = '_'; symbol = NULL; if (NSIsSymbolNameDefined(symbolName)) symbol = NSLookupAndBindSymbol(symbolName); free(symbolName); return symbol ? NSAddressOfSymbol(symbol) : NULL;}#endif /* __APPLE__ */#if defined(__sgi) || defined (__sun)#include <dlfcn.h>#include <stdio.h>#include <stdlib.h>static void *dlGetProcAddress (const GLubyte* name){ static void *h = NULL; static void *gpa; if (h == NULL) { if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL; gpa = dlsym(h, "glXGetProcAddress"); } if (gpa != NULL) return ((void *(*)(const GLubyte *))gpa)(name); else return dlsym(h, (const char *)name);}#endif /* __sgi || __sun */#ifdef GLEW_MX#define glewGetContext() ctx#define wglewGetContext() ctx#define glxewGetContext() ctx#ifdef _WIN32#define GLEW_CONTEXT_ARG_DEF_INIT GLEWContext* ctx#define WGLEW_CONTEXT_ARG_DEF_INIT WGLEWContext* ctx#define GLXEW_CONTEXT_ARG_DEF_INIT GLXEWContext* ctx#define GLEW_CONTEXT_ARG_VAR_INIT ctx#else /* _WIN32 */#define GLEW_CONTEXT_ARG_DEF_INIT void#define WGLEW_CONTEXT_ARG_DEF_INIT void#define GLXEW_CONTEXT_ARG_DEF_INIT void#define GLEW_CONTEXT_ARG_VAR_INIT#endif /* _WIN32 */#define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx#define WGLEW_CONTEXT_ARG_DEF_LIST WGLEWContext* ctx#define GLXEW_CONTEXT_ARG_DEF_LIST GLXEWContext* ctx#else /* GLEW_MX */#define GLEW_CONTEXT_ARG_DEF_INIT void#define WGLEW_CONTEXT_ARG_DEF_INIT void#define GLXEW_CONTEXT_ARG_DEF_INIT void#define GLEW_CONTEXT_ARG_DEF_LIST void#define WGLEW_CONTEXT_ARG_DEF_LIST void#define GLXEW_CONTEXT_ARG_DEF_LIST void#define GLEW_CONTEXT_ARG_VAR_INIT#endif /* GLEW_MX */#if !defined(_WIN32) || !defined(GLEW_MX)GLboolean __GLEW_VERSION_1_1 = GL_FALSE;GLboolean __GLXEW_VERSION_1_0 = GL_FALSE;GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D = NULL;PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements = NULL;PFNGLTEXIMAGE3DPROC __glewTexImage3D = NULL;PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D = NULL;PFNGLACTIVETEXTUREPROC __glewActiveTexture = NULL;PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture = NULL;PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D = NULL;PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D = NULL;PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D = NULL;PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D = NULL;PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D = NULL;PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D = NULL;PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage = NULL;PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd = NULL;PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf = NULL;PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd = NULL;PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf = NULL;PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d = NULL;PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv = NULL;PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f = NULL;PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv = NULL;PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i = NULL;PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv = NULL;PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s = NULL;PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv = NULL;PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d = NULL;PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv = NULL;PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f = NULL;PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv = NULL;PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i = NULL;PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv = NULL;PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s = NULL;PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv = NULL;PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d = NULL;PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv = NULL;PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f = NULL;PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv = NULL;PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i = NULL;PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv = NULL;PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s = NULL;PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv = NULL;PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d = NULL;PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv = NULL;PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f = NULL;PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv = NULL;PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i = NULL;PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv = NULL;PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s = NULL;PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv = NULL;PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage = NULL;PFNGLBLENDCOLORPROC __glewBlendColor = NULL;PFNGLBLENDEQUATIONPROC __glewBlendEquation = NULL;PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate = NULL;PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer = NULL;PFNGLFOGCOORDDPROC __glewFogCoordd = NULL;PFNGLFOGCOORDDVPROC __glewFogCoorddv = NULL;PFNGLFOGCOORDFPROC __glewFogCoordf = NULL;PFNGLFOGCOORDFVPROC __glewFogCoordfv = NULL;PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays = NULL;PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements = NULL;PFNGLPOINTPARAMETERFPROC __glewPointParameterf = NULL;PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv = NULL;PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b = NULL;PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv = NULL;PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d = NULL;PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv = NULL;PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f = NULL;PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv = NULL;PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i = NULL;PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv = NULL;PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s = NULL;PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv = NULL;PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub = NULL;PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv = NULL;PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui = NULL;PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv = NULL;PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us = NULL;PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv = NULL;PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer = NULL;PFNGLWINDOWPOS2DPROC __glewWindowPos2d = NULL;PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv = NULL;PFNGLWINDOWPOS2FPROC __glewWindowPos2f = NULL;PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv = NULL;PFNGLWINDOWPOS2IPROC __glewWindowPos2i = NULL;PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv = NULL;PFNGLWINDOWPOS2SPROC __glewWindowPos2s = NULL;PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv = NULL;PFNGLWINDOWPOS3DPROC __glewWindowPos3d = NULL;PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv = NULL;PFNGLWINDOWPOS3FPROC __glewWindowPos3f = NULL;PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv = NULL;PFNGLWINDOWPOS3IPROC __glewWindowPos3i = NULL;PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv = NULL;PFNGLWINDOWPOS3SPROC __glewWindowPos3s = NULL;PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv = NULL;PFNGLBEGINQUERYPROC __glewBeginQuery = NULL;PFNGLBINDBUFFERPROC __glewBindBuffer = NULL;PFNGLBUFFERDATAPROC __glewBufferData = NULL;PFNGLBUFFERSUBDATAPROC __glewBufferSubData = NULL;PFNGLDELETEBUFFERSPROC __glewDeleteBuffers = NULL;PFNGLDELETEQUERIESPROC __glewDeleteQueries = NULL;PFNGLENDQUERYPROC __glewEndQuery = NULL;PFNGLGENBUFFERSPROC __glewGenBuffers = NULL;PFNGLGENQUERIESPROC __glewGenQueries = NULL;PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv = NULL;PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv = NULL;PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData = NULL;PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv = NULL;PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv = NULL;PFNGLGETQUERYIVPROC __glewGetQueryiv = NULL;PFNGLISBUFFERPROC __glewIsBuffer = NULL;PFNGLISQUERYPROC __glewIsQuery = NULL;PFNGLMAPBUFFERPROC __glewMapBuffer = NULL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -