61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * (C) Copyright IBM Corporation 2002-2006
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * All Rights Reserved.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * copy of this software and associated documentation files (the "Software"),
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * to deal in the Software without restriction, including without limitation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * on the rights to use, copy, modify, merge, publish, distribute, sub
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * license, and/or sell copies of the Software, and to permit persons to whom
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * the Software is furnished to do so, subject to the following conditions:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * The above copyright notice and this permission notice (including the next
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * paragraph) shall be included in all copies or substantial portions of the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Software.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * USE OR OTHER DEALINGS IN THE SOFTWARE.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/**
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * \file extension_string.h
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Routines to manage the GLX extension string and GLX version for AIGLX
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * drivers. This code is loosely based on src/glx/x11/glxextensions.c from
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Mesa.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * \author Ian Romanick <idr@us.ibm.com>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#ifndef GLX_EXTENSION_STRING_H
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define GLX_EXTENSION_STRING_H
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncenum {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/* GLX_ARB_get_proc_address is implemented on the client. */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ARB_create_context_bit = 0,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ARB_create_context_profile_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ARB_create_context_robustness_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ARB_fbconfig_float_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ARB_framebuffer_sRGB_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ARB_multisample_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync EXT_create_context_es2_profile_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync EXT_import_context_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync EXT_texture_from_pixmap_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync EXT_visual_info_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync EXT_visual_rating_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync MESA_copy_sub_buffer_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync OML_swap_method_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGI_make_current_read_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGI_swap_control_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGI_video_sync_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGIS_multisample_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGIX_fbconfig_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGIX_pbuffer_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SGIX_visual_select_group_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INTEL_swap_event_bit,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync __NUM_GLX_EXTS,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync};
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/* For extensions which have identical ARB and EXT implementation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * in GLX area, use one enabling bit for both. */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define EXT_framebuffer_sRGB_bit ARB_framebuffer_sRGB_bit
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define __GLX_EXT_BYTES ((__NUM_GLX_EXTS + 7) / 8)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern int __glXGetExtensionString(const unsigned char *enable_bits,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync char *buffer);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXEnableExtension(unsigned char *enable_bits, const char *ext);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXInitExtensionEnableBits(unsigned char *enable_bits);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif /* GLX_EXTENSION_STRING_H */