Bump the ABI versions. Due to Glyph privates and the XV update below, the

video driver ABI needs to be bumped to 1.0. The rest of the ABI minor
    versions were bumped to include the LoaderGetABIVersion function.
Add a DrawblePtr argument to the XV hooks. This allows drivers to determine
    that the target window is redirected and draw to the appropriate place.
This commit is contained in:
Aaron Plattner 2006-04-07 18:56:04 +00:00
parent dc43909219
commit 2387bfa5ff
4 changed files with 38 additions and 17 deletions

View File

@ -1,3 +1,18 @@
2006-04-07 Aaron Plattner <aplattner@nvidia.com>
* hw/xfree86/common/xf86Module.h:
Bump the ABI versions. Due to Glyph privates and the XV update below,
the video driver ABI needs to be bumped to 1.0. The rest of the ABI
minor versions were bumped to include the LoaderGetABIVersion
function.
* hw/xfree86/common/xf86xv.c: (xf86XVRegetVideo),
(xf86XVReputVideo), (xf86XVReputImage), (xf86XVPutStill),
(xf86XVGetStill), (xf86XVPutImage):
* hw/xfree86/common/xf86xv.h:
Add a DrawblePtr argument to the XV hooks. This allows drivers to
determine that the target window is redirected and draw to the
appropriate place.
Fri Apr 7 13:46:45 2006 Søren Sandmann <sandmann@redhat.com> Fri Apr 7 13:46:45 2006 Søren Sandmann <sandmann@redhat.com>
* composite/compext.c (ProcCompositeReleaseOverlayWindow): Use * composite/compext.c (ProcCompositeReleaseOverlayWindow): Use

View File

@ -84,11 +84,11 @@ typedef enum {
* changed. The minor revision mask is 0x0000FFFF and the major revision * changed. The minor revision mask is 0x0000FFFF and the major revision
* mask is 0xFFFF0000. * mask is 0xFFFF0000.
*/ */
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 2) #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 3)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 8) #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(1, 0)
#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 5) #define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 6)
#define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 2) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 3)
#define ABI_FONT_VERSION SET_ABI_VERSION(0, 4) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 5)
#define MODINFOSTRING1 0xef23fdc5 #define MODINFOSTRING1 0xef23fdc5
#define MODINFOSTRING2 0x10dc023a #define MODINFOSTRING2 0x10dc023a

View File

@ -748,7 +748,8 @@ xf86XVRegetVideo(XvPortRecPrivatePtr portPriv)
WinBox.x1, WinBox.y1, WinBox.x1, WinBox.y1,
portPriv->vid_w, portPriv->vid_h, portPriv->vid_w, portPriv->vid_h,
portPriv->drw_w, portPriv->drw_h, portPriv->drw_w, portPriv->drw_h,
&ClipRegion, portPriv->DevPriv.ptr); &ClipRegion, portPriv->DevPriv.ptr,
portPriv->pDraw);
if(ret == Success) if(ret == Success)
portPriv->isOn = XV_ON; portPriv->isOn = XV_ON;
@ -839,7 +840,8 @@ xf86XVReputVideo(XvPortRecPrivatePtr portPriv)
WinBox.x1, WinBox.y1, WinBox.x1, WinBox.y1,
portPriv->vid_w, portPriv->vid_h, portPriv->vid_w, portPriv->vid_h,
portPriv->drw_w, portPriv->drw_h, portPriv->drw_w, portPriv->drw_h,
&ClipRegion, portPriv->DevPriv.ptr); &ClipRegion, portPriv->DevPriv.ptr,
portPriv->pDraw);
if(ret == Success) portPriv->isOn = XV_ON; if(ret == Success) portPriv->isOn = XV_ON;
@ -925,7 +927,8 @@ xf86XVReputImage(XvPortRecPrivatePtr portPriv)
ret = (*portPriv->AdaptorRec->ReputImage)(portPriv->pScrn, ret = (*portPriv->AdaptorRec->ReputImage)(portPriv->pScrn,
WinBox.x1, WinBox.y1, WinBox.x1, WinBox.y1,
&ClipRegion, portPriv->DevPriv.ptr); &ClipRegion, portPriv->DevPriv.ptr,
portPriv->pDraw);
portPriv->isOn = (ret == Success) ? XV_ON : XV_OFF; portPriv->isOn = (ret == Success) ? XV_ON : XV_OFF;
@ -1471,7 +1474,8 @@ xf86XVPutStill(
ret = (*portPriv->AdaptorRec->PutStill)(portPriv->pScrn, ret = (*portPriv->AdaptorRec->PutStill)(portPriv->pScrn,
vid_x, vid_y, WinBox.x1, WinBox.y1, vid_x, vid_y, WinBox.x1, WinBox.y1,
vid_w, vid_h, drw_w, drw_h, vid_w, vid_h, drw_w, drw_h,
&ClipRegion, portPriv->DevPriv.ptr); &ClipRegion, portPriv->DevPriv.ptr,
pDraw);
if((ret == Success) && if((ret == Success) &&
(portPriv->AdaptorRec->flags & VIDEO_OVERLAID_STILLS)) { (portPriv->AdaptorRec->flags & VIDEO_OVERLAID_STILLS)) {
@ -1599,7 +1603,8 @@ xf86XVGetStill(
ret = (*portPriv->AdaptorRec->GetStill)(portPriv->pScrn, ret = (*portPriv->AdaptorRec->GetStill)(portPriv->pScrn,
vid_x, vid_y, WinBox.x1, WinBox.y1, vid_x, vid_y, WinBox.x1, WinBox.y1,
vid_w, vid_h, drw_w, drw_h, vid_w, vid_h, drw_w, drw_h,
&ClipRegion, portPriv->DevPriv.ptr); &ClipRegion, portPriv->DevPriv.ptr,
pDraw);
GET_STILL_BAILOUT: GET_STILL_BAILOUT:
@ -1771,7 +1776,8 @@ xf86XVPutImage(
ret = (*portPriv->AdaptorRec->PutImage)(portPriv->pScrn, ret = (*portPriv->AdaptorRec->PutImage)(portPriv->pScrn,
src_x, src_y, WinBox.x1, WinBox.y1, src_x, src_y, WinBox.x1, WinBox.y1,
src_w, src_h, drw_w, drw_h, format->id, data, width, height, src_w, src_h, drw_w, drw_h, format->id, data, width, height,
sync, &ClipRegion, portPriv->DevPriv.ptr); sync, &ClipRegion, portPriv->DevPriv.ptr,
pDraw);
if((ret == Success) && if((ret == Success) &&
(portPriv->AdaptorRec->flags & VIDEO_OVERLAID_IMAGES)) { (portPriv->AdaptorRec->flags & VIDEO_OVERLAID_IMAGES)) {

View File

@ -82,19 +82,19 @@ typedef struct {
typedef int (* PutVideoFuncPtr)( ScrnInfoPtr pScrn, typedef int (* PutVideoFuncPtr)( ScrnInfoPtr pScrn,
short vid_x, short vid_y, short drw_x, short drw_y, short vid_x, short vid_y, short drw_x, short drw_y,
short vid_w, short vid_h, short drw_w, short drw_h, short vid_w, short vid_h, short drw_w, short drw_h,
RegionPtr clipBoxes, pointer data ); RegionPtr clipBoxes, pointer data, DrawablePtr pDraw );
typedef int (* PutStillFuncPtr)( ScrnInfoPtr pScrn, typedef int (* PutStillFuncPtr)( ScrnInfoPtr pScrn,
short vid_x, short vid_y, short drw_x, short drw_y, short vid_x, short vid_y, short drw_x, short drw_y,
short vid_w, short vid_h, short drw_w, short drw_h, short vid_w, short vid_h, short drw_w, short drw_h,
RegionPtr clipBoxes, pointer data ); RegionPtr clipBoxes, pointer data, DrawablePtr pDraw );
typedef int (* GetVideoFuncPtr)( ScrnInfoPtr pScrn, typedef int (* GetVideoFuncPtr)( ScrnInfoPtr pScrn,
short vid_x, short vid_y, short drw_x, short drw_y, short vid_x, short vid_y, short drw_x, short drw_y,
short vid_w, short vid_h, short drw_w, short drw_h, short vid_w, short vid_h, short drw_w, short drw_h,
RegionPtr clipBoxes, pointer data ); RegionPtr clipBoxes, pointer data, DrawablePtr pDraw );
typedef int (* GetStillFuncPtr)( ScrnInfoPtr pScrn, typedef int (* GetStillFuncPtr)( ScrnInfoPtr pScrn,
short vid_x, short vid_y, short drw_x, short drw_y, short vid_x, short vid_y, short drw_x, short drw_y,
short vid_w, short vid_h, short drw_w, short drw_h, short vid_w, short vid_h, short drw_w, short drw_h,
RegionPtr clipBoxes, pointer data ); RegionPtr clipBoxes, pointer data, DrawablePtr pDraw );
typedef void (* StopVideoFuncPtr)(ScrnInfoPtr pScrn, pointer data, Bool Exit); typedef void (* StopVideoFuncPtr)(ScrnInfoPtr pScrn, pointer data, Bool Exit);
typedef int (* SetPortAttributeFuncPtr)(ScrnInfoPtr pScrn, Atom attribute, typedef int (* SetPortAttributeFuncPtr)(ScrnInfoPtr pScrn, Atom attribute,
INT32 value, pointer data); INT32 value, pointer data);
@ -107,9 +107,9 @@ typedef int (* PutImageFuncPtr)( ScrnInfoPtr pScrn,
short src_x, short src_y, short drw_x, short drw_y, short src_x, short src_y, short drw_x, short drw_y,
short src_w, short src_h, short drw_w, short drw_h, short src_w, short src_h, short drw_w, short drw_h,
int image, unsigned char* buf, short width, short height, Bool Sync, int image, unsigned char* buf, short width, short height, Bool Sync,
RegionPtr clipBoxes, pointer data ); RegionPtr clipBoxes, pointer data, DrawablePtr pDraw );
typedef int (* ReputImageFuncPtr)( ScrnInfoPtr pScrn, short drw_x, short drw_y, typedef int (* ReputImageFuncPtr)( ScrnInfoPtr pScrn, short drw_x, short drw_y,
RegionPtr clipBoxes, pointer data ); RegionPtr clipBoxes, pointer data, DrawablePtr pDraw );
typedef int (*QueryImageAttributesFuncPtr)(ScrnInfoPtr pScrn, typedef int (*QueryImageAttributesFuncPtr)(ScrnInfoPtr pScrn,
int image, unsigned short *width, unsigned short *height, int image, unsigned short *width, unsigned short *height,
int *pitches, int *offsets); int *pitches, int *offsets);