[PATCH] XFree86: Xv: Add ClipNotify helper

Daniel Stone daniel at fooishbar.org
Mon Jan 5 01:38:05 PST 2009


Add a ClipNotify helper that lets the driver know about changes in the
clipping of an Xv backing drawable.  This is useful for drivers that
cannot implement more than a single bounding box.

Signed-off-by: Daniel Stone <daniel.stone at collabora.co.uk>
---
 hw/xfree86/common/xf86xv.c     |    4 ++++
 hw/xfree86/common/xf86xv.h     |    3 +++
 hw/xfree86/common/xf86xvpriv.h |    1 +
 3 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c
index 85b13d3..abbe033 100644
--- a/hw/xfree86/common/xf86xv.c
+++ b/hw/xfree86/common/xf86xv.c
@@ -1123,6 +1123,10 @@ xf86XVClipNotify(WindowPtr pWin, int dx, int dy)
 
      pPriv->pCompositeClip = NULL;
 
+     if (pPriv->AdaptorRec->ClipNotify)
+        (*pPriv->AdaptorRec->ClipNotify)(pPriv->pScrn, pPriv->DevPriv.ptr,
+                                         pWin, dx, dy);
+
      /* Stop everything except images, but stop them too if the
 	window isn't visible.  But we only remove the images. */
 
diff --git a/hw/xfree86/common/xf86xv.h b/hw/xfree86/common/xf86xv.h
index e98c423..c3db6cc 100644
--- a/hw/xfree86/common/xf86xv.h
+++ b/hw/xfree86/common/xf86xv.h
@@ -112,6 +112,8 @@ typedef int (* ReputImageFuncPtr)( ScrnInfoPtr pScrn, short drw_x, short drw_y,
 typedef int (*QueryImageAttributesFuncPtr)(ScrnInfoPtr pScrn, 
 	int image, unsigned short *width, unsigned short *height, 
 	int *pitches, int *offsets);
+typedef void (*ClipNotifyFuncPtr)(ScrnInfoPtr pScrn, pointer data,
+                                  WindowPtr window, int dx, int dy);
 
 typedef enum {
     XV_OFF,
@@ -165,6 +167,7 @@ typedef struct {
   PutImageFuncPtr PutImage;
   ReputImageFuncPtr ReputImage;
   QueryImageAttributesFuncPtr QueryImageAttributes;
+  ClipNotifyFuncPtr ClipNotify;
 } XF86VideoAdaptorRec, *XF86VideoAdaptorPtr;
 
 typedef struct {
diff --git a/hw/xfree86/common/xf86xvpriv.h b/hw/xfree86/common/xf86xvpriv.h
index 761fc3a..7623d29 100644
--- a/hw/xfree86/common/xf86xvpriv.h
+++ b/hw/xfree86/common/xf86xvpriv.h
@@ -59,6 +59,7 @@ typedef struct {
   PutImageFuncPtr PutImage;
   ReputImageFuncPtr ReputImage;
   QueryImageAttributesFuncPtr QueryImageAttributes;
+  ClipNotifyFuncPtr ClipNotify;
 } XvAdaptorRecPrivate, *XvAdaptorRecPrivatePtr;
 
 typedef struct {
-- 
1.5.6.5




More information about the xorg mailing list