1af69d88dSmrg/* This file was derived from drisw_glx.c which carries the following
2af69d88dSmrg * copyright:
3af69d88dSmrg *
4af69d88dSmrg * Copyright 2008 George Sapountzis
5af69d88dSmrg *
6af69d88dSmrg * Permission is hereby granted, free of charge, to any person obtaining a
7af69d88dSmrg * copy of this software and associated documentation files (the "Software"),
8af69d88dSmrg * to deal in the Software without restriction, including without limitation
9af69d88dSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10af69d88dSmrg * and/or sell copies of the Software, and to permit persons to whom the
11af69d88dSmrg * Software is furnished to do so, subject to the following conditions:
12af69d88dSmrg *
13af69d88dSmrg * The above copyright notice and this permission notice (including the next
14af69d88dSmrg * paragraph) shall be included in all copies or substantial portions of the
15af69d88dSmrg * Software.
16af69d88dSmrg *
17af69d88dSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18af69d88dSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19af69d88dSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20af69d88dSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21af69d88dSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22af69d88dSmrg * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23af69d88dSmrg * SOFTWARE.
24af69d88dSmrg */
25af69d88dSmrg
2601e04c3fSmrg#ifndef DRISW_PRIV_H
2701e04c3fSmrg#define DRISW_PRIV_H
2801e04c3fSmrg
2901e04c3fSmrg#include <X11/extensions/XShm.h>
3001e04c3fSmrg
31af69d88dSmrgstruct drisw_display
32af69d88dSmrg{
33af69d88dSmrg   __GLXDRIdisplay base;
34af69d88dSmrg};
35af69d88dSmrg
36af69d88dSmrgstruct drisw_context
37af69d88dSmrg{
38af69d88dSmrg   struct glx_context base;
39af69d88dSmrg   __DRIcontext *driContext;
40af69d88dSmrg
41af69d88dSmrg};
42af69d88dSmrg
43af69d88dSmrgstruct drisw_screen
44af69d88dSmrg{
45af69d88dSmrg   struct glx_screen base;
46af69d88dSmrg
47af69d88dSmrg   __DRIscreen *driScreen;
48af69d88dSmrg   __GLXDRIscreen vtable;
49af69d88dSmrg   const __DRIcoreExtension *core;
50af69d88dSmrg   const __DRIswrastExtension *swrast;
51af69d88dSmrg   const __DRItexBufferExtension *texBuffer;
52af69d88dSmrg   const __DRIcopySubBufferExtension *copySubBuffer;
53af69d88dSmrg   const __DRI2rendererQueryExtension *rendererQuery;
54af69d88dSmrg
55af69d88dSmrg   const __DRIconfig **driver_configs;
56af69d88dSmrg
57af69d88dSmrg   void *driver;
58af69d88dSmrg};
59af69d88dSmrg
60af69d88dSmrgstruct drisw_drawable
61af69d88dSmrg{
62af69d88dSmrg   __GLXDRIdrawable base;
63af69d88dSmrg
64af69d88dSmrg   GC gc;
65af69d88dSmrg   __DRIdrawable *driDrawable;
667ec681f3Smrg   struct glx_config *config;
67af69d88dSmrg   XImage *ximage;
6801e04c3fSmrg   XShmSegmentInfo shminfo;
697ec681f3Smrg   int xDepth;
70af69d88dSmrg};
71af69d88dSmrg
72af69d88dSmrg_X_HIDDEN int
73af69d88dSmrgdrisw_query_renderer_integer(struct glx_screen *base, int attribute,
74af69d88dSmrg                             unsigned int *value);
75af69d88dSmrg_X_HIDDEN int
76af69d88dSmrgdrisw_query_renderer_string(struct glx_screen *base, int attribute,
77af69d88dSmrg                            const char **value);
7801e04c3fSmrg
7901e04c3fSmrg#endif
80