/* * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * Copyright (C) 2009 Apple Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __X_GL_H #define __X_GL_H /* The following macros exist to address conflicts between the names given to * function pointers by the MESA API and OpenGL.framework's API. */ @CGL_MESA_COMPAT_MACROS@ /* On SL, we want to use OpelGL.framework's headers to get both prototypes and * function pointers (like Mesa's API), but on Leo and before, OpenGL.framework * can't give us both. */ #ifdef GL_GLEXT_FUNCTION_POINTERS #define _GL_GLEXT_FUNCTION_POINTERS GL_GLEXT_FUNCTION_POINTERS #undef GL_GLEXT_FUNCTION_POINTERS #endif #ifdef GL_GLEXT_PROTOTYPES #define _GL_GLEXT_PROTOTYPES GL_GLEXT_PROTOTYPES #else #define GL_GLEXT_PROTOTYPES 1 #endif /* Our glext.h is based on a version from the registry that is newer. */ #ifdef GL_GLEXT_LEGACY #define _GL_GLEXT_LEGACY GL_GLEXT_LEGACY #else #define GL_GLEXT_LEGACY 1 #endif #include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h" /* These are not set by the system gl.h */ #define GL_VERSION_1_2_DEPRECATED 1 #define GL_VERSION_1_3_DEPRECATED 1 #define GL_VERSION_1_4_DEPRECATED 1 /* Restore our GLEXT-fu */ #ifdef _GL_GLEXT_FUNCTION_POINTERS #define GL_GLEXT_FUNCTION_POINTERS _GL_GLEXT_FUNCTION_POINTERS #undef _GL_GLEXT_FUNCTION_POINTERS #endif #ifdef _GL_GLEXT_PROTOTYPES #undef _GL_GLEXT_PROTOTYPES #else #undef GL_GLEXT_PROTOTYPES #endif #ifdef _GL_GLEXT_LEGACY #undef _GL_GLEXT_LEGACY #else #undef GL_GLEXT_LEGACY #endif @CGL_MESA_FUNCTION_POINTERS@ #ifndef GL_GLEXT_LEGACY #include #endif /* * This is needed for building apple_glx_pbuffer.c, the latest * glext.h from the registry lacks it, so it's from the Leopard glext.h: */ #ifndef GL_TEXTURE_RECTANGLE_EXT #define GL_TEXTURE_RECTANGLE_EXT 0x84F5 #endif /* This is needed for building the X server: */ /* * GL_MESA_packed_depth_stencil */ #ifndef GL_MESA_packed_depth_stencil #define GL_MESA_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_MESA 0x8750 #define GL_UNSIGNED_INT_24_8_MESA 0x8751 #define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 #define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 #define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 #endif /* GL_MESA_packed_depth_stencil */ /* Various other OS projects expect to get these macros from Mesa's gl.h */ #ifndef GLAPI #define GLAPI extern #endif #ifndef GLAPIENTRY #define GLAPIENTRY #endif #ifndef APIENTRY #define APIENTRY GLAPIENTRY #endif /* "P" suffix to be used for a pointer to a function */ #ifndef APIENTRYP #define APIENTRYP APIENTRY * #endif #ifndef GLAPIENTRYP #define GLAPIENTRYP GLAPIENTRY * #endif #endif /*__X_GL_H*/