diff --git a/hw/kdrive/src/kaapict.c b/hw/kdrive/src/kaapict.c index cca0d466e..5c4696dec 100644 --- a/hw/kdrive/src/kaapict.c +++ b/hw/kdrive/src/kaapict.c @@ -426,6 +426,11 @@ kaaTryDriverComposite(CARD8 op, width, height)) return 1; + if (pKaaScr->info->CheckComposite && + !(*pKaaScr->info->CheckComposite) (op, pSrc, pMask, pDst)) + { + return -1; + } if (pSrc->pDrawable->type == DRAWABLE_PIXMAP) kaaPixmapUseScreen ((PixmapPtr) pSrc->pDrawable); diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index 7981c7e54..8dc6606ef 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -348,6 +348,10 @@ typedef struct _KaaScreenInfo { int height); void (*DoneBlend) (void); + Bool (*CheckComposite) (int op, + PicturePtr pSrcPicture, + PicturePtr pMaskPicture, + PicturePtr pDstPicture); Bool (*PrepareComposite) (int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,