3 #include <X11/extensions/Xvlib.h>
4 #include <X11/extensions/XvMC.h>
5 #include <X11/Xlibint.h>
7 Status XvMCCreateSubpicture
11 XvMCSubpicture
*subpicture
,
13 unsigned short height
,
17 Display
*dpy
= display
;
21 return XvMCBadContext
;
25 if (width
> 2048 || height
> 2048)
28 if (xvimage_id
!= 123)
31 subpicture
->subpicture_id
= XAllocID(display
);
32 subpicture
->context_id
= context
->context_id
;
33 subpicture
->xvimage_id
= xvimage_id
;
34 subpicture
->width
= width
;
35 subpicture
->height
= height
;
36 subpicture
->num_palette_entries
= 0;
37 subpicture
->entry_bytes
= 0;
38 subpicture
->component_order
[0] = 0;
39 subpicture
->component_order
[1] = 0;
40 subpicture
->component_order
[2] = 0;
41 subpicture
->component_order
[3] = 0;
42 /* TODO: subpicture->privData = ;*/
48 Status XvMCClearSubpicture
51 XvMCSubpicture
*subpicture
,
55 unsigned short height
,
62 return XvMCBadSubpicture
;
64 /* TODO: Assert clear rect is within bounds? Or clip? */
69 Status XvMCCompositeSubpicture
72 XvMCSubpicture
*subpicture
,
77 unsigned short height
,
85 return XvMCBadSubpicture
;
89 if (subpicture
->xvimage_id
!= image
->id
)
92 /* TODO: Assert rects are within bounds? Or clip? */
97 Status
XvMCDestroySubpicture(Display
*display
, XvMCSubpicture
*subpicture
)
102 return XvMCBadSubpicture
;
104 return BadImplementation
;
107 Status
XvMCSetSubpicturePalette(Display
*display
, XvMCSubpicture
*subpicture
, unsigned char *palette
)
112 return XvMCBadSubpicture
;
116 /* We don't support paletted subpictures */
120 Status XvMCBlendSubpicture
123 XvMCSurface
*target_surface
,
124 XvMCSubpicture
*subpicture
,
131 unsigned short surfw
,
138 return XvMCBadSurface
;
141 return XvMCBadSubpicture
;
143 if (target_surface
->context_id
!= subpicture
->context_id
)
146 /* TODO: Assert rects are within bounds? Or clip? */
150 Status XvMCBlendSubpicture2
153 XvMCSurface
*source_surface
,
154 XvMCSurface
*target_surface
,
155 XvMCSubpicture
*subpicture
,
162 unsigned short surfw
,
168 if (!source_surface
|| !target_surface
)
169 return XvMCBadSurface
;
172 return XvMCBadSubpicture
;
174 if (source_surface
->context_id
!= subpicture
->context_id
)
177 if (source_surface
->context_id
!= subpicture
->context_id
)
180 /* TODO: Assert rects are within bounds? Or clip? */
184 Status
XvMCSyncSubpicture(Display
*display
, XvMCSubpicture
*subpicture
)
189 return XvMCBadSubpicture
;
194 Status
XvMCFlushSubpicture(Display
*display
, XvMCSubpicture
*subpicture
)
199 return XvMCBadSubpicture
;
204 Status
XvMCGetSubpictureStatus(Display
*display
, XvMCSubpicture
*subpicture
, int *status
)
209 return XvMCBadSubpicture
;