utils.h revision e82dd8c6e1fa2fff5b960de26961080ba5e9651d
1/* 2 * (C) Copyright IBM Corporation 2002, 2004 3 * All Rights Reserved. 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * on the rights to use, copy, modify, merge, publish, distribute, sub 9 * license, and/or sell copies of the Software, and to permit persons to whom 10 * the Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the next 13 * paragraph) shall be included in all copies or substantial portions of the 14 * Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 19 * VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, 20 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 21 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 22 * USE OR OTHER DEALINGS IN THE SOFTWARE. 23 * 24 * Authors: 25 * Ian Romanick <idr@us.ibm.com> 26 */ 27/* $XFree86:$ */ 28 29#ifndef DRI_DEBUG_H 30#define DRI_DEBUG_H 31 32#include "context.h" 33#include "dri_util.h" 34 35struct dri_debug_control { 36 const char * string; 37 unsigned flag; 38}; 39 40/** 41 * Description of the entry-points and parameters for an OpenGL function. 42 */ 43struct dri_extension_function { 44 /** 45 * \brief 46 * Packed string describing the parameter signature and the entry-point 47 * names. 48 * 49 * The parameter signature and the names of the entry-points for this 50 * function are packed into a single string. The substrings are 51 * separated by NUL characters. The whole string is terminated by 52 * two consecutive NUL characters. 53 */ 54 const char * strings; 55 56 57 /** 58 * Location in the remap table where the dispatch offset should be 59 * stored. 60 */ 61 int remap_index; 62 63 /** 64 * Offset of the function in the dispatch table. 65 */ 66 int offset; 67}; 68 69/** 70 * Description of the API for an extension to OpenGL. 71 */ 72struct dri_extension { 73 /** 74 * Name of the extension. 75 */ 76 const char * name; 77 78 79 /** 80 * Pointer to a list of \c dri_extension_function structures. The list 81 * is terminated by a structure with a \c NULL 82 * \c dri_extension_function::strings pointer. 83 */ 84 const struct dri_extension_function * functions; 85}; 86 87extern unsigned driParseDebugString( const char * debug, 88 const struct dri_debug_control * control ); 89 90extern unsigned driGetRendererString( char * buffer, 91 const char * hardware_name, const char * driver_date, GLuint agp_mode ); 92 93extern void driInitExtensions( GLcontext * ctx, 94 const struct dri_extension * card_extensions, GLboolean enable_imaging ); 95 96extern void driInitSingleExtension( GLcontext * ctx, 97 const struct dri_extension * ext ); 98 99extern GLboolean driCheckDriDdxDrmVersions2(const char * driver_name, 100 const __DRIversion * driActual, const __DRIversion * driExpected, 101 const __DRIversion * ddxActual, const __DRIversion * ddxExpected, 102 const __DRIversion * drmActual, const __DRIversion * drmExpected); 103 104extern GLboolean driCheckDriDdxDrmVersions3(const char * driver_name, 105 const __DRIversion * driActual, const __DRIversion * driExpected, 106 const __DRIversion * ddxActual, const __DRIutilversion2 * ddxExpected, 107 const __DRIversion * drmActual, const __DRIversion * drmExpected); 108 109extern GLint driIntersectArea( drm_clip_rect_t rect1, drm_clip_rect_t rect2 ); 110 111extern GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, 112 GLint *x, GLint *y, 113 GLsizei *width, GLsizei *height ); 114 115extern __DRIconfig ** 116driCreateConfigs(GLenum fb_format, GLenum fb_type, 117 const u_int8_t * depth_bits, const u_int8_t * stencil_bits, 118 unsigned num_depth_stencil_bits, 119 const GLenum * db_modes, unsigned num_db_modes); 120 121const __DRIconfig **driConcatConfigs(__DRIconfig **a, __DRIconfig **b); 122 123#endif /* DRI_DEBUG_H */ 124