#include <assert.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XvMClib.h>
Status XvMCCreateSubpicture(Display *dpy, XvMCContext *context, XvMCSubpicture *subpicture,
unsigned short width, unsigned short height, int xvimage_id)
{
assert(dpy);
if (!context)
return XvMCBadContext;
assert(subpicture);
subpicture->subpicture_id = XAllocID(dpy);
subpicture->context_id = context->context_id;
subpicture->xvimage_id = xvimage_id;
subpicture->width = width;
subpicture->height = height;
subpicture->num_palette_entries = 0;
subpicture->entry_bytes = 0;
subpicture->component_order[0] = 0;
subpicture->component_order[1] = 0;
subpicture->component_order[2] = 0;
subpicture->component_order[3] = 0;
SyncHandle();
return Success;
}
Status XvMCClearSubpicture(Display *dpy, XvMCSubpicture *subpicture, short x, short y,
unsigned short width, unsigned short height, unsigned int color)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
return Success;
}
Status XvMCCompositeSubpicture(Display *dpy, XvMCSubpicture *subpicture, XvImage *image,
short srcx, short srcy, unsigned short width, unsigned short height,
short dstx, short dsty)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
assert(image);
if (subpicture->xvimage_id != image->id)
return BadMatch;
return Success;
}
Status XvMCDestroySubpicture(Display *dpy, XvMCSubpicture *subpicture)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
return BadImplementation;
}
Status XvMCSetSubpicturePalette(Display *dpy, XvMCSubpicture *subpicture, unsigned char *palette)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
assert(palette);
return BadMatch;
}
Status XvMCBlendSubpicture(Display *dpy, XvMCSurface *target_surface, XvMCSubpicture *subpicture,
short subx, short suby, unsigned short subw, unsigned short subh,
short surfx, short surfy, unsigned short surfw, unsigned short surfh)
{
assert(dpy);
if (!target_surface)
return XvMCBadSurface;
if (!subpicture)
return XvMCBadSubpicture;
if (target_surface->context_id != subpicture->context_id)
return BadMatch;
return Success;
}
Status XvMCBlendSubpicture2(Display *dpy, XvMCSurface *source_surface, XvMCSurface *target_surface,
XvMCSubpicture *subpicture, short subx, short suby, unsigned short subw, unsigned short subh,
short surfx, short surfy, unsigned short surfw, unsigned short surfh)
{
assert(dpy);
if (!source_surface || !target_surface)
return XvMCBadSurface;
if (!subpicture)
return XvMCBadSubpicture;
if (source_surface->context_id != subpicture->context_id)
return BadMatch;
if (source_surface->context_id != subpicture->context_id)
return BadMatch;
return Success;
}
Status XvMCSyncSubpicture(Display *dpy, XvMCSubpicture *subpicture)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
return Success;
}
Status XvMCFlushSubpicture(Display *dpy, XvMCSubpicture *subpicture)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
return Success;
}
Status XvMCGetSubpictureStatus(Display *dpy, XvMCSubpicture *subpicture, int *status)
{
assert(dpy);
if (!subpicture)
return XvMCBadSubpicture;
assert(status);
*status = 0;
return Success;
}