blob: a216f30be4ee0cc8a13b5c5b89cbaaada80399a4 [file] [log] [blame]
//
// 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
#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_