Home | History | Annotate | Download | only in glx
      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 struct drisw_display
     27 {
     28    __GLXDRIdisplay base;
     29 };
     30 
     31 struct drisw_context
     32 {
     33    struct glx_context base;
     34    __DRIcontext *driContext;
     35 
     36 };
     37 
     38 struct drisw_screen
     39 {
     40    struct glx_screen base;
     41 
     42    __DRIscreen *driScreen;
     43    __GLXDRIscreen vtable;
     44    const __DRIcoreExtension *core;
     45    const __DRIswrastExtension *swrast;
     46    const __DRItexBufferExtension *texBuffer;
     47    const __DRIcopySubBufferExtension *copySubBuffer;
     48    const __DRI2rendererQueryExtension *rendererQuery;
     49 
     50    const __DRIconfig **driver_configs;
     51 
     52    void *driver;
     53 };
     54 
     55 struct drisw_drawable
     56 {
     57    __GLXDRIdrawable base;
     58 
     59    GC gc;
     60    GC swapgc;
     61 
     62    __DRIdrawable *driDrawable;
     63    XVisualInfo *visinfo;
     64    XImage *ximage;
     65 };
     66 
     67 _X_HIDDEN int
     68 drisw_query_renderer_integer(struct glx_screen *base, int attribute,
     69                              unsigned int *value);
     70 _X_HIDDEN int
     71 drisw_query_renderer_string(struct glx_screen *base, int attribute,
     72                             const char **value);
     73