1*61046927SAndroid Build Coastguard Worker /* 2*61046927SAndroid Build Coastguard Worker * Mesa 3-D graphics library 3*61046927SAndroid Build Coastguard Worker * 4*61046927SAndroid Build Coastguard Worker * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. 5*61046927SAndroid Build Coastguard Worker * Copyright (C) 2022 Yongang Luo All Rights Reserved. 6*61046927SAndroid Build Coastguard Worker * 7*61046927SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a 8*61046927SAndroid Build Coastguard Worker * copy of this software and associated documentation files (the "Software"), 9*61046927SAndroid Build Coastguard Worker * to deal in the Software without restriction, including without limitation 10*61046927SAndroid Build Coastguard Worker * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11*61046927SAndroid Build Coastguard Worker * and/or sell copies of the Software, and to permit persons to whom the 12*61046927SAndroid Build Coastguard Worker * Software is furnished to do so, subject to the following conditions: 13*61046927SAndroid Build Coastguard Worker * 14*61046927SAndroid Build Coastguard Worker * The above copyright notice and this permission notice shall be included 15*61046927SAndroid Build Coastguard Worker * in all copies or substantial portions of the Software. 16*61046927SAndroid Build Coastguard Worker * 17*61046927SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18*61046927SAndroid Build Coastguard Worker * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19*61046927SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20*61046927SAndroid Build Coastguard Worker * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 21*61046927SAndroid Build Coastguard Worker * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 22*61046927SAndroid Build Coastguard Worker * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23*61046927SAndroid Build Coastguard Worker * OTHER DEALINGS IN THE SOFTWARE. 24*61046927SAndroid Build Coastguard Worker */ 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard Worker 27*61046927SAndroid Build Coastguard Worker /** 28*61046927SAndroid Build Coastguard Worker * \file glheader.h 29*61046927SAndroid Build Coastguard Worker * Wrapper for GL/gl*.h and GLES[3|2|]/gl*.h 30*61046927SAndroid Build Coastguard Worker */ 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard Worker 33*61046927SAndroid Build Coastguard Worker #ifndef GLHEADER_H 34*61046927SAndroid Build Coastguard Worker #define GLHEADER_H 35*61046927SAndroid Build Coastguard Worker 36*61046927SAndroid Build Coastguard Worker 37*61046927SAndroid Build Coastguard Worker #define GL_GLEXT_PROTOTYPES 38*61046927SAndroid Build Coastguard Worker #if defined(_WIN32) && !defined(__CYGWIN__) 39*61046927SAndroid Build Coastguard Worker /* Prevent glheader.h from including <windows.h> by defining APIENTRY */ 40*61046927SAndroid Build Coastguard Worker #pragma push_macro("APIENTRY") 41*61046927SAndroid Build Coastguard Worker #ifndef APIENTRY 42*61046927SAndroid Build Coastguard Worker #define APIENTRY GLAPIENTRY 43*61046927SAndroid Build Coastguard Worker #endif 44*61046927SAndroid Build Coastguard Worker #include "GL/gl.h" 45*61046927SAndroid Build Coastguard Worker #include "GL/glext.h" 46*61046927SAndroid Build Coastguard Worker #pragma pop_macro("APIENTRY") 47*61046927SAndroid Build Coastguard Worker #else /* !(defined(_WIN32) && !defined(__CYGWIN__)) */ 48*61046927SAndroid Build Coastguard Worker #include "GL/gl.h" 49*61046927SAndroid Build Coastguard Worker #include "GL/glext.h" 50*61046927SAndroid Build Coastguard Worker #endif /* defined(_WIN32) && !defined(__CYGWIN__) */ 51*61046927SAndroid Build Coastguard Worker 52*61046927SAndroid Build Coastguard Worker /** 53*61046927SAndroid Build Coastguard Worker * Define GL_API, GL_APICALL and GL_APIENTRY to avoid MSVC/MinGW warnings 54*61046927SAndroid Build Coastguard Worker * about different dllimport attributes for prototypes between 55*61046927SAndroid Build Coastguard Worker * GL/gl*.h and GLES[|3|2]/gl*.h 56*61046927SAndroid Build Coastguard Worker */ 57*61046927SAndroid Build Coastguard Worker #define GL_API GLAPI 58*61046927SAndroid Build Coastguard Worker #define GL_APICALL GLAPI 59*61046927SAndroid Build Coastguard Worker #define GL_APIENTRY GLAPIENTRY 60*61046927SAndroid Build Coastguard Worker 61*61046927SAndroid Build Coastguard Worker /** 62*61046927SAndroid Build Coastguard Worker * The order for including GLES[|3|2]/gl*.h headers are from newest to oldest. 63*61046927SAndroid Build Coastguard Worker * As the newer header contains extra symbols that are not present in the 64*61046927SAndroid Build Coastguard Worker * older header, some extra symbols can be visible only when you include the 65*61046927SAndroid Build Coastguard Worker * newer header first; otherwise, if the older header is included first, some 66*61046927SAndroid Build Coastguard Worker * extra symbols will be hidden by the older header. 67*61046927SAndroid Build Coastguard Worker * For example, suppose we move the inclusion of GLES/gl*.h to the front, 68*61046927SAndroid Build Coastguard Worker * then GL_SAMPLER_EXTERNAL_OES will not be present and cause compiling error. 69*61046927SAndroid Build Coastguard Worker */ 70*61046927SAndroid Build Coastguard Worker 71*61046927SAndroid Build Coastguard Worker 72*61046927SAndroid Build Coastguard Worker #include "GLES3/gl3.h" 73*61046927SAndroid Build Coastguard Worker #include "GLES3/gl31.h" 74*61046927SAndroid Build Coastguard Worker #include "GLES3/gl32.h" 75*61046927SAndroid Build Coastguard Worker #include "GLES3/gl3ext.h" 76*61046927SAndroid Build Coastguard Worker #include "GLES2/gl2.h" 77*61046927SAndroid Build Coastguard Worker #include "GLES2/gl2ext.h" 78*61046927SAndroid Build Coastguard Worker #include "GLES/gl.h" 79*61046927SAndroid Build Coastguard Worker #include "GLES/glext.h" 80*61046927SAndroid Build Coastguard Worker 81*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 82*61046927SAndroid Build Coastguard Worker extern "C" { 83*61046927SAndroid Build Coastguard Worker #endif 84*61046927SAndroid Build Coastguard Worker 85*61046927SAndroid Build Coastguard Worker 86*61046927SAndroid Build Coastguard Worker /* Custom Mesa types to save space. */ 87*61046927SAndroid Build Coastguard Worker typedef unsigned char GLenum8; /* only for primitive modes */ 88*61046927SAndroid Build Coastguard Worker typedef unsigned short GLenum16; 89*61046927SAndroid Build Coastguard Worker typedef unsigned char GLbitfield8; 90*61046927SAndroid Build Coastguard Worker typedef unsigned short GLbitfield16; 91*61046927SAndroid Build Coastguard Worker typedef GLuint64 GLbitfield64; 92*61046927SAndroid Build Coastguard Worker 93*61046927SAndroid Build Coastguard Worker /* This is for packing the GL index type. The reason it's a structure is that 94*61046927SAndroid Build Coastguard Worker * we don't want it to be used as integer accidentally. 95*61046927SAndroid Build Coastguard Worker */ 96*61046927SAndroid Build Coastguard Worker typedef struct { 97*61046927SAndroid Build Coastguard Worker unsigned char value; 98*61046927SAndroid Build Coastguard Worker } GLindextype; 99*61046927SAndroid Build Coastguard Worker 100*61046927SAndroid Build Coastguard Worker /* There is no formal spec for the following extension. */ 101*61046927SAndroid Build Coastguard Worker #ifndef GL_ATI_texture_compression_3dc 102*61046927SAndroid Build Coastguard Worker #define GL_ATI_texture_compression_3dc 1 103*61046927SAndroid Build Coastguard Worker #define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 104*61046927SAndroid Build Coastguard Worker #endif 105*61046927SAndroid Build Coastguard Worker 106*61046927SAndroid Build Coastguard Worker /** 107*61046927SAndroid Build Coastguard Worker * Internal token to represent a GLSL shader program (a collection of 108*61046927SAndroid Build Coastguard Worker * one or more shaders that get linked together). Note that GLSL 109*61046927SAndroid Build Coastguard Worker * shaders and shader programs share one name space (one hash table) 110*61046927SAndroid Build Coastguard Worker * so we need a value that's different from any of the 111*61046927SAndroid Build Coastguard Worker * GL_VERTEX/FRAGMENT/GEOMETRY_PROGRAM tokens. 112*61046927SAndroid Build Coastguard Worker */ 113*61046927SAndroid Build Coastguard Worker #define GL_SHADER_PROGRAM_MESA 0x9999 114*61046927SAndroid Build Coastguard Worker 115*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 116*61046927SAndroid Build Coastguard Worker } 117*61046927SAndroid Build Coastguard Worker #endif 118*61046927SAndroid Build Coastguard Worker 119*61046927SAndroid Build Coastguard Worker #endif /* GLHEADER_H */ 120