diff --git a/mi/meson.build b/mi/meson.build index 74595494e..cccdb06eb 100644 --- a/mi/meson.build +++ b/mi/meson.build @@ -9,6 +9,7 @@ srcs_mi = [ 'mifillarc.c', 'migc.c', 'miglblt.c', + 'mioverlay.c', 'mipointer.c', 'mipoly.c', 'mipolypnt.c', diff --git a/mi/mioverlay.c b/mi/mioverlay.c new file mode 100644 index 000000000..23cc2b366 --- /dev/null +++ b/mi/mioverlay.c @@ -0,0 +1,56 @@ + +#include + +#include + +#include "dix/cursor_priv.h" +#include "mi/mi_priv.h" + +#include "scrnintstr.h" +#include +#include "validate.h" +#include "windowstr.h" +#include "gcstruct.h" +#include "regionstr.h" +#include "privates.h" +#include "mivalidate.h" +#include "mioverlay.h" +#include "migc.h" + +#include "globals.h" + +typedef struct { + RegionRec exposed; + RegionRec borderExposed; + RegionPtr borderVisible; + DDXPointRec oldAbsCorner; +} miOverlayValDataRec, *miOverlayValDataPtr; + +typedef struct _TreeRec { + WindowPtr pWin; + struct _TreeRec *parent; + struct _TreeRec *firstChild; + struct _TreeRec *lastChild; + struct _TreeRec *prevSib; + struct _TreeRec *nextSib; + RegionRec borderClip; + RegionRec clipList; + unsigned visibility; + miOverlayValDataPtr valdata; +} miOverlayTreeRec, *miOverlayTreePtr; + +typedef struct { + miOverlayTreePtr tree; +} miOverlayWindowRec, *miOverlayWindowPtr; + +typedef struct { + CloseScreenProcPtr CloseScreen; + CreateWindowProcPtr CreateWindow; + DestroyWindowProcPtr DestroyWindow; + UnrealizeWindowProcPtr UnrealizeWindow; + RealizeWindowProcPtr RealizeWindow; + miOverlayTransFunc MakeTransparent; + miOverlayInOverlayFunc InOverlay; + Bool underlayMarked; + Bool copyUnderlay; +} miOverlayScreenRec, *miOverlayScreenPtr;