2 #include <X11/Xlibint.h>
3 #include <X11/extensions/XvMClib.h>
5 Status
XvMCCreateSubpicture(Display
*dpy
, XvMCContext
*context
, XvMCSubpicture
*subpicture
,
6 unsigned short width
, unsigned short height
, int xvimage_id
)
11 return XvMCBadContext
;
15 /*if (width > || height > )
21 subpicture
->subpicture_id
= XAllocID(dpy
);
22 subpicture
->context_id
= context
->context_id
;
23 subpicture
->xvimage_id
= xvimage_id
;
24 subpicture
->width
= width
;
25 subpicture
->height
= height
;
26 subpicture
->num_palette_entries
= 0;
27 subpicture
->entry_bytes
= 0;
28 subpicture
->component_order
[0] = 0;
29 subpicture
->component_order
[1] = 0;
30 subpicture
->component_order
[2] = 0;
31 subpicture
->component_order
[3] = 0;
32 /* TODO: subpicture->privData = ;*/
39 Status
XvMCClearSubpicture(Display
*dpy
, XvMCSubpicture
*subpicture
, short x
, short y
,
40 unsigned short width
, unsigned short height
, unsigned int color
)
45 return XvMCBadSubpicture
;
47 /* TODO: Assert clear rect is within bounds? Or clip? */
52 Status
XvMCCompositeSubpicture(Display
*dpy
, XvMCSubpicture
*subpicture
, XvImage
*image
,
53 short srcx
, short srcy
, unsigned short width
, unsigned short height
,
54 short dstx
, short dsty
)
59 return XvMCBadSubpicture
;
63 if (subpicture
->xvimage_id
!= image
->id
)
66 /* TODO: Assert rects are within bounds? Or clip? */
71 Status
XvMCDestroySubpicture(Display
*dpy
, XvMCSubpicture
*subpicture
)
76 return XvMCBadSubpicture
;
78 return BadImplementation
;
81 Status
XvMCSetSubpicturePalette(Display
*dpy
, XvMCSubpicture
*subpicture
, unsigned char *palette
)
86 return XvMCBadSubpicture
;
90 /* We don't support paletted subpictures */
94 Status
XvMCBlendSubpicture(Display
*dpy
, XvMCSurface
*target_surface
, XvMCSubpicture
*subpicture
,
95 short subx
, short suby
, unsigned short subw
, unsigned short subh
,
96 short surfx
, short surfy
, unsigned short surfw
, unsigned short surfh
)
101 return XvMCBadSurface
;
104 return XvMCBadSubpicture
;
106 if (target_surface
->context_id
!= subpicture
->context_id
)
109 /* TODO: Assert rects are within bounds? Or clip? */
113 Status
XvMCBlendSubpicture2(Display
*dpy
, XvMCSurface
*source_surface
, XvMCSurface
*target_surface
,
114 XvMCSubpicture
*subpicture
, short subx
, short suby
, unsigned short subw
, unsigned short subh
,
115 short surfx
, short surfy
, unsigned short surfw
, unsigned short surfh
)
119 if (!source_surface
|| !target_surface
)
120 return XvMCBadSurface
;
123 return XvMCBadSubpicture
;
125 if (source_surface
->context_id
!= subpicture
->context_id
)
128 if (source_surface
->context_id
!= subpicture
->context_id
)
131 /* TODO: Assert rects are within bounds? Or clip? */
135 Status
XvMCSyncSubpicture(Display
*dpy
, XvMCSubpicture
*subpicture
)
140 return XvMCBadSubpicture
;
145 Status
XvMCFlushSubpicture(Display
*dpy
, XvMCSubpicture
*subpicture
)
150 return XvMCBadSubpicture
;
155 Status
XvMCGetSubpictureStatus(Display
*dpy
, XvMCSubpicture
*subpicture
, int *status
)
160 return XvMCBadSubpicture
;