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