mirror of https://github.com/mpv-player/mpv
161 lines
4.8 KiB
C
161 lines
4.8 KiB
C
/*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifdef MP_GET_GL_WORKAROUNDS
|
|
|
|
// workaround for some gl.h headers
|
|
#ifndef GLAPIENTRY
|
|
#ifdef APIENTRY
|
|
#define GLAPIENTRY APIENTRY
|
|
#elif HAVE_GL_WIN32
|
|
#define GLAPIENTRY __stdcall
|
|
#else
|
|
#define GLAPIENTRY
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef GL_TEXTURE_RECTANGLE
|
|
#define GL_TEXTURE_RECTANGLE 0x84F5
|
|
#endif
|
|
#ifndef GL_UNSIGNED_SHORT_8_8
|
|
#define GL_UNSIGNED_SHORT_8_8 0x85BA
|
|
#endif
|
|
#ifndef GL_UNSIGNED_SHORT_8_8_REV
|
|
#define GL_UNSIGNED_SHORT_8_8_REV 0x85BB
|
|
#endif
|
|
|
|
#if HAVE_GL_WIN32 && !defined(WGL_CONTEXT_MAJOR_VERSION_ARB)
|
|
/* these are supposed to be defined in wingdi.h but mingw's is too old */
|
|
/* only the bits actually used by mplayer are defined */
|
|
/* reference: http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt */
|
|
|
|
#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
|
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
|
|
#define WGL_CONTEXT_FLAGS_ARB 0x2094
|
|
#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
|
|
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
|
|
#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
|
|
#endif
|
|
|
|
#ifndef GL_NV_vdpau_interop
|
|
#define GLvdpauSurfaceNV GLintptr
|
|
#define GL_WRITE_DISCARD_NV 0x88BE
|
|
#endif
|
|
|
|
#ifndef GL_DEBUG_SEVERITY_HIGH
|
|
#define GL_DEBUG_SEVERITY_HIGH 0x9146
|
|
#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
|
|
#define GL_DEBUG_SEVERITY_LOW 0x9148
|
|
#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
|
|
#endif
|
|
|
|
#ifndef GL_BACK_LEFT
|
|
#define GL_BACK_LEFT 0x0402
|
|
#endif
|
|
|
|
#if HAVE_ANDROID_GL
|
|
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
|
#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
|
|
#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
|
|
#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
|
|
#define GL_RGB_422_APPLE 0x8A1F
|
|
#define GL_BGR 0x80E0
|
|
#define GL_BGRA 0x80E1
|
|
#define GL_TEXTURE_1D 0x0DE0
|
|
#define GL_WRITE_ONLY 0x88B9
|
|
#define GL_RGB16 0x8054
|
|
#define GL_RGB10 0x8052
|
|
#define GL_RGBA12 0x805A
|
|
#define GL_RGBA16 0x805B
|
|
#define GL_TEXTURE_RED_SIZE 0x805C
|
|
#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
|
|
#define GL_R16 0x822A
|
|
#define GL_RG16 0x822C
|
|
#define GL_LUMINANCE8 0x8040
|
|
#define GL_LUMINANCE8_ALPHA8 0x8045
|
|
#define GL_LUMINANCE16 0x8042
|
|
#define GL_LUMINANCE16_ALPHA16 0x8048
|
|
#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
|
|
#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
|
|
#endif
|
|
|
|
#if HAVE_IOS_GL
|
|
#define GL_WRITE_ONLY GL_WRITE_ONLY_OES
|
|
#define GL_TEXTURE_1D 0x0DE0
|
|
#define GL_R16 0x822A
|
|
#define GL_RG16 0x822C
|
|
#define GL_RGB10 0x8052
|
|
#define GL_RGB16 0x8054
|
|
#define GL_RGBA12 0x805A
|
|
#define GL_RGBA16 0x805B
|
|
#define GL_LUMINANCE8 GL_LUMINANCE8_EXT
|
|
#define GL_LUMINANCE8_ALPHA8 GL_LUMINANCE8_ALPHA8_EXT
|
|
#define GL_LUMINANCE16 0x8042
|
|
#define GL_LUMINANCE16_ALPHA16 0x8048
|
|
#define GL_TEXTURE_RED_SIZE 0x805C
|
|
#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
|
|
#endif
|
|
|
|
// GL_ARB_timer_query and EXT_disjoint_timer_query
|
|
#ifndef GL_TIME_ELAPSED
|
|
// Same as GL_TIME_ELAPSED_EXT
|
|
#define GL_TIME_ELAPSED 0x88BF
|
|
#endif
|
|
|
|
// GL_OES_EGL_image_external, GL_NV_EGL_stream_consumer_external
|
|
#ifndef GL_TEXTURE_EXTERNAL_OES
|
|
#define GL_TEXTURE_EXTERNAL_OES 0x8D65
|
|
#endif
|
|
|
|
// GL_ANGLE_translated_shader_source
|
|
#ifndef GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
|
|
#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
|
|
#endif
|
|
|
|
#ifndef GL_RGB_RAW_422_APPLE
|
|
#define GL_RGB_RAW_422_APPLE 0x8A51
|
|
#endif
|
|
|
|
#undef MP_GET_GL_WORKAROUNDS
|
|
|
|
#endif // MP_GET_GL_WORKAROUNDS
|
|
|
|
#ifdef MP_GET_GLX_WORKAROUNDS
|
|
|
|
// FreeBSD 10.0-CURRENT lacks the GLX_ARB_create_context extension completely
|
|
#ifndef GLX_CONTEXT_MAJOR_VERSION_ARB
|
|
#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
|
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
|
|
#define GLX_CONTEXT_FLAGS_ARB 0x2094
|
|
#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
|
|
#ifndef __APPLE__
|
|
// These are respectively 0x00000001 and 0x00000002 on OSX
|
|
#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
|
|
#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
|
|
#endif
|
|
#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
|
|
#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
|
|
#endif
|
|
// GLX_EXT_create_context_es2_profile
|
|
#ifndef GLX_CONTEXT_ES2_PROFILE_BIT_EXT
|
|
#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
|
|
#endif
|
|
|
|
#undef MP_GET_GLX_WORKAROUNDS
|
|
|
|
#endif
|