xref: /OK3568_Linux_fs/external/xserver/hw/xfree86/common/xf86xvpriv.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 
2 /*
3  * Copyright (c) 2003 by The XFree86 Project, Inc.
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  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
19  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21  * OTHER DEALINGS IN THE SOFTWARE.
22  *
23  * Except as contained in this notice, the name of the copyright holder(s)
24  * and author(s) shall not be used in advertising or otherwise to promote
25  * the sale, use or other dealings in this Software without prior written
26  * authorization from the copyright holder(s) and author(s).
27  */
28 
29 #ifndef _XF86XVPRIV_H_
30 #define _XF86XVPRIV_H_
31 
32 #include "xf86xv.h"
33 #include "privates.h"
34 
35 /*** These are DDX layer privates ***/
36 
37 extern _X_EXPORT DevPrivateKey XF86XvScreenKey;
38 
39 typedef struct {
40     DestroyWindowProcPtr DestroyWindow;
41     ClipNotifyProcPtr ClipNotify;
42     WindowExposuresProcPtr WindowExposures;
43     PostValidateTreeProcPtr PostValidateTree;
44     void (*AdjustFrame) (ScrnInfoPtr, int, int);
45     Bool (*EnterVT) (ScrnInfoPtr);
46     void (*LeaveVT) (ScrnInfoPtr);
47     xf86ModeSetProc *ModeSet;
48     CloseScreenProcPtr CloseScreen;
49 } XF86XVScreenRec, *XF86XVScreenPtr;
50 
51 typedef struct {
52     int flags;
53     PutVideoFuncPtr PutVideo;
54     PutStillFuncPtr PutStill;
55     GetVideoFuncPtr GetVideo;
56     GetStillFuncPtr GetStill;
57     StopVideoFuncPtr StopVideo;
58     SetPortAttributeFuncPtr SetPortAttribute;
59     GetPortAttributeFuncPtr GetPortAttribute;
60     QueryBestSizeFuncPtr QueryBestSize;
61     PutImageFuncPtr PutImage;
62     ReputImageFuncPtr ReputImage;
63     QueryImageAttributesFuncPtr QueryImageAttributes;
64 } XvAdaptorRecPrivate, *XvAdaptorRecPrivatePtr;
65 
66 typedef struct {
67     ScrnInfoPtr pScrn;
68     DrawablePtr pDraw;
69     unsigned char type;
70     unsigned int subWindowMode;
71     RegionPtr clientClip;
72     RegionPtr ckeyFilled;
73     RegionPtr pCompositeClip;
74     Bool FreeCompositeClip;
75     XvAdaptorRecPrivatePtr AdaptorRec;
76     XvStatus isOn;
77     Bool clipChanged;
78     int vid_x, vid_y, vid_w, vid_h;
79     int drw_x, drw_y, drw_w, drw_h;
80     DevUnion DevPriv;
81 } XvPortRecPrivate, *XvPortRecPrivatePtr;
82 
83 typedef struct _XF86XVWindowRec {
84     XvPortRecPrivatePtr PortRec;
85     struct _XF86XVWindowRec *next;
86 } XF86XVWindowRec, *XF86XVWindowPtr;
87 
88 #endif                          /* _XF86XVPRIV_H_ */
89