/* GdkGLExt - OpenGL Extension to GDK * Copyright (C) 2002-2004 Naofumi Yasufuku * * This library 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. * * This library 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 this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #ifndef __GDK_GL_TOKENS_H__ #define __GDK_GL_TOKENS_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* * Success return value */ #define GDK_GL_SUCCESS 0 /* same as 'Success' of X11 */ /* * Attribute list terminator */ #define GDK_GL_ATTRIB_LIST_NONE 0 /* same as 'None' of X11 */ /* * This source is based on the OpenGL(R) Sample Implementation by SGI. */ /* ** License Applicability. Except to the extent portions of this file are ** made subject to an alternative license as permitted in the SGI Free ** Software License B, Version 1.1 (the "License"), the contents of this ** file are subject only to the provisions of the License. You may not use ** this file except in compliance with the License. You may obtain a copy ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: ** ** http://oss.sgi.com/projects/FreeB ** ** Note that, as provided in the License, the Software is distributed on an ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. ** ** Original Code. The Original Code is: OpenGL Sample Implementation, ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. ** Copyright in any portions created by third parties is as indicated ** elsewhere herein. All Rights Reserved. ** ** Additional Notice Provisions: The application programming interfaces ** established by SGI in conjunction with the Original Code are The ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X ** Window System(R) (Version 1.3), released October 19, 1998. This software ** was created using the OpenGL(R) version 1.2.1 Sample Implementation ** published by SGI, but has not been independently verified as being ** compliant with the OpenGL(R) version 1.2.1 Specification. */ /* * Visual Config Attributes. */ typedef enum { GDK_GL_USE_GL = 1, /* support GLX rendering */ GDK_GL_BUFFER_SIZE = 2, /* depth of the color buffer */ GDK_GL_LEVEL = 3, /* level in plane stacking */ GDK_GL_RGBA = 4, /* true if RGBA mode */ GDK_GL_DOUBLEBUFFER = 5, /* double buffering supported */ GDK_GL_STEREO = 6, /* stereo buffering supported */ GDK_GL_AUX_BUFFERS = 7, /* number of aux buffers */ GDK_GL_RED_SIZE = 8, /* number of red component bits */ GDK_GL_GREEN_SIZE = 9, /* number of green component bits */ GDK_GL_BLUE_SIZE = 10, /* number of blue component bits */ GDK_GL_ALPHA_SIZE = 11, /* number of alpha component bits */ GDK_GL_DEPTH_SIZE = 12, /* number of depth bits */ GDK_GL_STENCIL_SIZE = 13, /* number of stencil bits */ GDK_GL_ACCUM_RED_SIZE = 14, /* number of red accum bits */ GDK_GL_ACCUM_GREEN_SIZE = 15, /* number of green accum bits */ GDK_GL_ACCUM_BLUE_SIZE = 16, /* number of blue accum bits */ GDK_GL_ACCUM_ALPHA_SIZE = 17, /* number of alpha accum bits */ /* * FBConfig-specific attributes. * [ GLX 1.3 and later ] */ GDK_GL_CONFIG_CAVEAT = 0x20, GDK_GL_X_VISUAL_TYPE = 0x22, GDK_GL_TRANSPARENT_TYPE = 0x23, GDK_GL_TRANSPARENT_INDEX_VALUE = 0x24, GDK_GL_TRANSPARENT_RED_VALUE = 0x25, GDK_GL_TRANSPARENT_GREEN_VALUE = 0x26, GDK_GL_TRANSPARENT_BLUE_VALUE = 0x27, GDK_GL_TRANSPARENT_ALPHA_VALUE = 0x28, GDK_GL_DRAWABLE_TYPE = 0x8010, GDK_GL_RENDER_TYPE = 0x8011, GDK_GL_X_RENDERABLE = 0x8012, GDK_GL_FBCONFIG_ID = 0x8013, GDK_GL_MAX_PBUFFER_WIDTH = 0x8016, GDK_GL_MAX_PBUFFER_HEIGHT = 0x8017, GDK_GL_MAX_PBUFFER_PIXELS = 0x8018, GDK_GL_VISUAL_ID = 0x800B, GDK_GL_SCREEN = 0x800C, /* * Multisampling configuration attributes. * [ GLX 1.4 and later ] */ GDK_GL_SAMPLE_BUFFERS = 100000, GDK_GL_SAMPLES = 100001 } GdkGLConfigAttrib; /* * Generic "don't care" value. * [ GLX 1.3 and later ] */ #define GDK_GL_DONT_CARE 0xFFFFFFFF /* * "none" value. * [ GLX 1.3 and later ] */ #define GDK_GL_NONE 0x8000 /* * GLX_CONFIG_CAVEAT attribute values. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_CONFIG_CAVEAT_DONT_CARE = 0xFFFFFFFF, /* GDK_GL_DONT_CARE */ GDK_GL_CONFIG_CAVEAT_NONE = 0x8000, /* GDK_GL_NONE */ GDK_GL_SLOW_CONFIG = 0x8001, GDK_GL_NON_CONFORMANT_CONFIG = 0x800D } GdkGLConfigCaveat; /* * GLX_X_VISUAL_TYPE attribute values. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_VISUAL_TYPE_DONT_CARE = 0xFFFFFFFF, /* GDK_GL_DONT_CARE */ GDK_GL_TRUE_COLOR = 0x8002, GDK_GL_DIRECT_COLOR = 0x8003, GDK_GL_PSEUDO_COLOR = 0x8004, GDK_GL_STATIC_COLOR = 0x8005, GDK_GL_GRAY_SCALE = 0x8006, GDK_GL_STATIC_GRAY = 0x8007 } GdkGLVisualType; /* * GLX_TRANSPARENT_TYPE attribute values. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_TRANSPARENT_NONE = 0x8000, /* GDK_GL_NONE */ GDK_GL_TRANSPARENT_RGB = 0x8008, GDK_GL_TRANSPARENT_INDEX = 0x8009 } GdkGLTransparentType; /* * GLX_DRAWABLE_TYPE bits. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_WINDOW_BIT = 1 << 0, /* 0x00000001 */ GDK_GL_PIXMAP_BIT = 1 << 1, /* 0x00000002 */ GDK_GL_PBUFFER_BIT = 1 << 2 /* 0x00000004 */ } GdkGLDrawableTypeMask; /* * GLX_RENDER_TYPE bits. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_RGBA_BIT = 1 << 0, /* 0x00000001 */ GDK_GL_COLOR_INDEX_BIT = 1 << 1 /* 0x00000002 */ } GdkGLRenderTypeMask; /* * Buffer mask bits. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_FRONT_LEFT_BUFFER_BIT = 1 << 0, /* 0x00000001 */ GDK_GL_FRONT_RIGHT_BUFFER_BIT = 1 << 1, /* 0x00000002 */ GDK_GL_BACK_LEFT_BUFFER_BIT = 1 << 2, /* 0x00000004 */ GDK_GL_BACK_RIGHT_BUFFER_BIT = 1 << 3, /* 0x00000008 */ GDK_GL_AUX_BUFFERS_BIT = 1 << 4, /* 0x00000010 */ GDK_GL_DEPTH_BUFFER_BIT = 1 << 5, /* 0x00000020 */ GDK_GL_STENCIL_BUFFER_BIT = 1 << 6, /* 0x00000040 */ GDK_GL_ACCUM_BUFFER_BIT = 1 << 7 /* 0x00000080 */ } GdkGLBufferMask; /* * Error return values from glXGetConfig. Success is indicated by * a value of 0. */ typedef enum { GDK_GL_BAD_SCREEN = 1, /* screen # is bad */ GDK_GL_BAD_ATTRIBUTE = 2, /* attribute to get is bad */ GDK_GL_NO_EXTENSION = 3, /* no glx extension on server */ GDK_GL_BAD_VISUAL = 4, /* visual # not known by GLX */ GDK_GL_BAD_CONTEXT = 5, /* returned only by import_context EXT? */ GDK_GL_BAD_VALUE = 6, /* returned only by glXSwapIntervalSGI? */ GDK_GL_BAD_ENUM = 7 /* unused? */ } GdkGLConfigError; /* * glXCreateNewContext render_type attribute values. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_RGBA_TYPE = 0x8014, GDK_GL_COLOR_INDEX_TYPE = 0x8015 } GdkGLRenderType; /* * glXQueryDrawable attributes. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_PRESERVED_CONTENTS = 0x801B, GDK_GL_LARGEST_PBUFFER = 0x801C, GDK_GL_WIDTH = 0x801D, GDK_GL_HEIGHT = 0x801E, GDK_GL_EVENT_MASK = 0x801F } GdkGLDrawableAttrib; /* * glXCreatePbuffer attributes. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_PBUFFER_PRESERVED_CONTENTS = 0x801B, /* GDK_GL_PRESERVED_CONTENTS */ GDK_GL_PBUFFER_LARGEST_PBUFFER = 0x801C, /* GDK_GL_LARGEST_PBUFFER */ GDK_GL_PBUFFER_HEIGHT = 0x8040, GDK_GL_PBUFFER_WIDTH = 0x8041 } GdkGLPbufferAttrib; /* * glXSelectEvent event mask bits. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_PBUFFER_CLOBBER_MASK = 1 << 27 /* 0x08000000 */ } GdkGLEventMask; /* * GLXPbufferClobberEvent event_type values. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_DAMAGED = 0x8020, GDK_GL_SAVED = 0x8021 } GdkGLEventType; /* * GLXPbufferClobberEvent draw_type values. * [ GLX 1.3 and later ] */ typedef enum { GDK_GL_WINDOW = 0x8022, GDK_GL_PBUFFER = 0x8023 } GdkGLDrawableType; #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __GDK_GL_TOKENS_H__ */