/* ** The OpenGL Extension Wrangler Library ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** 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. */ #ifndef __glew_utils_h__ #define __glew_utils_h__ #include #if defined(_WIN32) # include #elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) # include #endif /* * Define glewGetContext and related helper macros. */ #ifdef GLEW_MX # define glewGetContext() ctx # ifdef _WIN32 # define GLEW_CONTEXT_ARG_DEF_INIT GLEWContext* ctx # define GLEW_CONTEXT_ARG_VAR_INIT ctx # define wglewGetContext() ctx # define WGLEW_CONTEXT_ARG_DEF_INIT WGLEWContext* ctx # define WGLEW_CONTEXT_ARG_DEF_LIST WGLEWContext* ctx # else /* _WIN32 */ # define GLEW_CONTEXT_ARG_DEF_INIT void # define GLEW_CONTEXT_ARG_VAR_INIT # define glxewGetContext() ctx # define GLXEW_CONTEXT_ARG_DEF_INIT void # define GLXEW_CONTEXT_ARG_DEF_LIST GLXEWContext* ctx # endif /* _WIN32 */ # define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx #else /* GLEW_MX */ # define GLEW_CONTEXT_ARG_DEF_INIT void # define GLEW_CONTEXT_ARG_VAR_INIT # define GLEW_CONTEXT_ARG_DEF_LIST void # define WGLEW_CONTEXT_ARG_DEF_INIT void # define WGLEW_CONTEXT_ARG_DEF_LIST void # define GLXEW_CONTEXT_ARG_DEF_INIT void # define GLXEW_CONTEXT_ARG_DEF_LIST void #endif /* GLEW_MX */ /* * Define glewGetProcAddress. */ #if defined(_WIN32) # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) #else # if defined(__APPLE__) extern void* NSGLGetProcAddress (const GLubyte* name); # define glewGetProcAddress(name) NSGLGetProcAddress(name) # else # if defined(__sgi) || defined(__sun) extern void* dlGetProcAddress (const GLubyte* name); # define glewGetProcAddress(name) dlGetProcAddress(name) # else /* __linux */ # define glewGetProcAddress(name) (*glXGetProcAddressARB)(name) # endif # endif #endif /* * GLEW, just like OpenGL or GLU, does not rely on the standard C library. * These functions implement the string processing functionality required in the library. */ extern GLuint _glewStrLen (const GLubyte* s); extern GLuint _glewStrCLen (const GLubyte* s, GLubyte c); extern GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n); extern GLboolean _glewStrSame1 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb); extern GLboolean _glewStrSame2 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb); extern GLboolean _glewStrSame3 (GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) #endif /* __glew_utils_h__ */