b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/GL/dri/dristruct.h,v 1.10 2001/03/21 16:21:40 dawes Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/**************************************************************************
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright (c) 2002 Apple Computer, Inc.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncAll Rights Reserved.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission is hereby granted, free of charge, to any person obtaining a
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopy of this software and associated documentation files (the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync"Software"), to deal in the Software without restriction, including
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncwithout limitation the rights to use, copy, modify, merge, publish,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdistribute, sub license, and/or sell copies of the Software, and to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncpermit persons to whom the Software is furnished to do so, subject to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthe following conditions:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncThe above copyright notice and this permission notice (including the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncnext paragraph) shall be included in all copies or substantial portions
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncof the Software.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync**************************************************************************/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Authors:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Jens Owen <jens@precisioninsight.com>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef DRI_STRUCT_H
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DRI_STRUCT_H
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "dri.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "x-list.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DRI_MAX_DRAWABLES 256
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((DRIWindowPrivIndex < 0) ? \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync NULL : \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((DRIDrawablePrivPtr)((pWin)->devPrivates[DRIWindowPrivIndex].ptr)))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DRI_DRAWABLE_PRIV_FROM_PIXMAP(pPix) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((DRIPixmapPrivIndex < 0) ? \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync NULL : \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((DRIDrawablePrivPtr)((pPix)->devPrivates[DRIPixmapPrivIndex].ptr)))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _DRIDrawablePrivRec
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xp_surface_id sid;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int drawableIndex;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr pDraw;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr pScreen;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int refCount;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int key[2];
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync x_list *notifiers; /* list of (FUN . DATA) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} DRIDrawablePrivRec, *DRIDrawablePrivPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DRI_SCREEN_PRIV(pScreen) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((DRIScreenPrivIndex < 0) ? \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync NULL : \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((DRIScreenPrivPtr)((pScreen)->devPrivates[DRIScreenPrivIndex].ptr)))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DRI_SCREEN_PRIV_FROM_INDEX(screenIndex) ((DRIScreenPrivPtr) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (screenInfo.screens[screenIndex]->devPrivates[DRIScreenPrivIndex].ptr))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _DRIScreenPrivRec
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Bool directRenderingSupport;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int nrWindows;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DRIWrappedFuncsRec wrap;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr DRIDrawables[DRI_MAX_DRAWABLES];
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} DRIScreenPrivRec, *DRIScreenPrivPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* DRI_STRUCT_H */