| // |
| // Copyright 2015 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| |
| // platform_glx.h: Includes specific to GLX. |
| |
| #ifndef LIBANGLE_RENDERER_GL_GLX_PLATFORMGLX_H_ |
| #define LIBANGLE_RENDERER_GL_GLX_PLATFORMGLX_H_ |
| |
| #if !defined(ANGLE_SKIP_GLX_DEFINES) |
| // GLX 1.0 |
| # define GLX_USE_GL 1 |
| # define GLX_BUFFER_SIZE 2 |
| # define GLX_LEVEL 3 |
| # define GLX_RGBA 4 |
| # define GLX_DOUBLEBUFFER 5 |
| # define GLX_STEREO 6 |
| # define GLX_AUX_BUFFERS 7 |
| # define GLX_RED_SIZE 8 |
| # define GLX_GREEN_SIZE 9 |
| # define GLX_BLUE_SIZE 10 |
| # define GLX_ALPHA_SIZE 11 |
| # define GLX_DEPTH_SIZE 12 |
| # define GLX_STENCIL_SIZE 13 |
| # define GLX_ACCUM_RED_SIZE 14 |
| # define GLX_ACCUM_GREEN_SIZE 15 |
| # define GLX_ACCUM_BLUE_SIZE 16 |
| # define GLX_ACCUM_ALPHA_SIZE 17 |
| |
| # define GLX_BAD_SCREEN 1 |
| # define GLX_BAD_ATTRIBUTE 2 |
| # define GLX_NO_EXTENSION 3 |
| # define GLX_BAD_VISUAL 4 |
| # define GLX_BAD_CONTEXT 5 |
| # define GLX_BAD_VALUE 6 |
| # define GLX_BAD_ENUM 7 |
| |
| // GLX 1.1 |
| # define GLX_VENDOR 1 |
| # define GLX_VERSION 2 |
| # define GLX_EXTENSIONS 3 |
| |
| // GLX 1.3 |
| # define GLX_CONFIG_CAVEAT 0x20 |
| # define GLX_DONT_CARE 0xFFFFFFFF |
| # define GLX_X_VISUAL_TYPE 0x22 |
| # define GLX_TRANSPARENT_TYPE 0x23 |
| # define GLX_TRANSPARENT_INDEX_VALUE 0x24 |
| # define GLX_TRANSPARENT_RED_VALUE 0x25 |
| # define GLX_TRANSPARENT_GREEN_VALUE 0x26 |
| # define GLX_TRANSPARENT_BLUE_VALUE 0x27 |
| # define GLX_TRANSPARENT_ALPHA_VALUE 0x28 |
| # define GLX_WINDOW_BIT 0x00000001 |
| # define GLX_PIXMAP_BIT 0x00000002 |
| # define GLX_PBUFFER_BIT 0x00000004 |
| # define GLX_AUX_BUFFERS_BIT 0x00000010 |
| # define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 |
| # define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 |
| # define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 |
| # define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 |
| # define GLX_DEPTH_BUFFER_BIT 0x00000020 |
| # define GLX_STENCIL_BUFFER_BIT 0x00000040 |
| # define GLX_ACCUM_BUFFER_BIT 0x00000080 |
| # define GLX_NONE 0x8000 |
| # define GLX_SLOW_CONFIG 0x8001 |
| # define GLX_TRUE_COLOR 0x8002 |
| # define GLX_DIRECT_COLOR 0x8003 |
| # define GLX_PSEUDO_COLOR 0x8004 |
| # define GLX_STATIC_COLOR 0x8005 |
| # define GLX_GRAY_SCALE 0x8006 |
| # define GLX_STATIC_GRAY 0x8007 |
| # define GLX_TRANSPARENT_RGB 0x8008 |
| # define GLX_TRANSPARENT_INDEX 0x8009 |
| # define GLX_VISUAL_ID 0x800B |
| # define GLX_SCREEN 0x800C |
| # define GLX_NON_CONFORMANT_CONFIG 0x800D |
| # define GLX_DRAWABLE_TYPE 0x8010 |
| # define GLX_RENDER_TYPE 0x8011 |
| # define GLX_X_RENDERABLE 0x8012 |
| # define GLX_FBCONFIG_ID 0x8013 |
| # define GLX_RGBA_TYPE 0x8014 |
| # define GLX_COLOR_INDEX_TYPE 0x8015 |
| # define GLX_MAX_PBUFFER_WIDTH 0x8016 |
| # define GLX_MAX_PBUFFER_HEIGHT 0x8017 |
| # define GLX_MAX_PBUFFER_PIXELS 0x8018 |
| # define GLX_PRESERVED_CONTENTS 0x801B |
| # define GLX_LARGEST_PBUFFER 0x801C |
| # define GLX_WIDTH 0x801D |
| # define GLX_HEIGHT 0x801E |
| # define GLX_EVENT_MASK 0x801F |
| # define GLX_DAMAGED 0x8020 |
| # define GLX_SAVED 0x8021 |
| # define GLX_WINDOW 0x8022 |
| # define GLX_PBUFFER 0x8023 |
| # define GLX_PBUFFER_HEIGHT 0x8040 |
| # define GLX_PBUFFER_WIDTH 0x8041 |
| # define GLX_RGBA_BIT 0x00000001 |
| # define GLX_COLOR_INDEX_BIT 0x00000002 |
| # define GLX_PBUFFER_CLOBBER_MASK 0x08000000 |
| |
| // GLX 1.4 |
| # define GLX_SAMPLE_BUFFERS 0x186a0 |
| # define GLX_SAMPLES 0x186a1 |
| |
| // GLX_ARB_create_context |
| # define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 |
| # define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 |
| # define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 |
| # define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 |
| # define GLX_CONTEXT_FLAGS_ARB 0x2094 |
| |
| // GLX_ARB_create_context_profile |
| # define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 |
| # define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 |
| # define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 |
| |
| // GLX_ARB_create_context_robustness |
| # define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 |
| # define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 |
| # define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 |
| # define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 |
| |
| // GLX_EXT_create_context_es2_profile |
| # define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 |
| |
| // GLX_EXT_texture_from_pixmap |
| # define GLX_TEXTURE_1D_BIT_EXT 0x00000001 |
| # define GLX_TEXTURE_2D_BIT_EXT 0x00000002 |
| # define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 |
| # define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 |
| # define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 |
| # define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 |
| # define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 |
| # define GLX_Y_INVERTED_EXT 0x20D4 |
| # define GLX_TEXTURE_FORMAT_EXT 0x20D5 |
| # define GLX_TEXTURE_TARGET_EXT 0x20D6 |
| # define GLX_MIPMAP_TEXTURE_EXT 0x20D7 |
| # define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 |
| # define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 |
| # define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA |
| # define GLX_TEXTURE_1D_EXT 0x20DB |
| # define GLX_TEXTURE_2D_EXT 0x20DC |
| # define GLX_TEXTURE_RECTANGLE_EXT 0x20DD |
| # define GLX_FRONT_LEFT_EXT 0x20DE |
| # define GLX_FRONT_RIGHT_EXT 0x20DF |
| # define GLX_BACK_LEFT_EXT 0x20E0 |
| # define GLX_BACK_RIGHT_EXT 0x20E1 |
| # define GLX_FRONT_EXT 0x20DE |
| # define GLX_BACK_EXT 0x20E0 |
| # define GLX_AUX0_EXT 0x20E2 |
| # define GLX_AUX1_EXT 0x20E3 |
| # define GLX_AUX2_EXT 0x20E4 |
| # define GLX_AUX3_EXT 0x20E5 |
| # define GLX_AUX4_EXT 0x20E6 |
| # define GLX_AUX5_EXT 0x20E7 |
| # define GLX_AUX6_EXT 0x20E8 |
| # define GLX_AUX7_EXT 0x20E9 |
| # define GLX_AUX8_EXT 0x20EA |
| # define GLX_AUX9_EXT 0x20EB |
| |
| // GLX_EXT_swap_control |
| # define GLX_SWAP_INTERVAL_EXT 0x20F1 |
| # define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 |
| |
| // GLX_NV_robustness_video_memory_purge |
| # define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7 |
| |
| #endif // !defined(ANGLE_SKIP_GLX_DEFINES) |
| |
| // GLX typedefs depend on the X headers |
| #include <X11/Xlib.h> |
| #include <X11/Xresource.h> |
| #include <X11/Xutil.h> |
| |
| // GLX typedefs |
| namespace glx |
| { |
| |
| typedef void *Context; |
| typedef void *FBConfig; |
| typedef XID FBConfigID; |
| typedef XID ContextID; |
| typedef XID Window; |
| typedef XID Pbuffer; |
| typedef XID Pixmap; |
| typedef XID Drawable; |
| |
| } // namespace glx |
| |
| typedef void *(*PFNGETPROCPROC)(const char *name); |
| |
| #endif // LIBANGLE_RENDERER_GL_GLX_PLATFORMGLX_H_ |