diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Split.h')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Split.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Split.h b/nx-X11/programs/Xserver/hw/nxagent/Split.h new file mode 100644 index 000000000..2be449a18 --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/Split.h @@ -0,0 +1,84 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ +/* */ +/* NXAGENT, NX protocol compression and NX extensions to this software */ +/* are copyright of NoMachine. Redistribution and use of the present */ +/* software is allowed according to terms specified in the file LICENSE */ +/* which comes in the source distribution. */ +/* */ +/* Check http://www.nomachine.com/licensing.html for applicability. */ +/* */ +/* NX and NoMachine are trademarks of Medialogic S.p.A. */ +/* */ +/* All rights reserved. */ +/* */ +/**************************************************************************/ + +#ifndef __Split_H__ +#define __Split_H__ + +typedef struct _SplitResourceRec +{ + int pending; + int split; + int unpack; + DrawablePtr drawable; + RegionPtr region; + GCPtr gc; + int commit; + +} SplitResourceRec; + +typedef SplitResourceRec *SplitResourcePtr; + +extern SplitResourceRec nxagentSplitResources[]; + +typedef struct _UnpackResourceRec +{ + int pending; + int unpack; + DrawablePtr drawable; + +} UnpackResourceRec; + +typedef UnpackResourceRec *UnpackResourcePtr; + +extern UnpackResourceRec nxagentUnpackResources[]; + +void nxagentInitSplitResources(); +void nxagentInitUnpackResources(); + +SplitResourcePtr nxagentAllocSplitResource(); +void nxagentFreeSplitResource(SplitResourcePtr pResource); + +UnpackResourcePtr nxagentAllocUnpackResource(); +void nxagentFreeUnpackResource(UnpackResourcePtr pResource); + +#define nxagentSplitResource(pDrawable) \ + ((pDrawable) -> type == DRAWABLE_PIXMAP ? \ + (nxagentPixmapPriv(nxagentRealPixmap((PixmapPtr) pDrawable)) -> splitResource) : \ + (nxagentWindowPriv((WindowPtr) pDrawable) -> splitResource)) + +/* +FIXME: Make it a real function to log a warning + in the logs. + +#define nxagentSplitDrawable(pDrawable) \ + (((pDrawable) -> type == DRAWABLE_PIXMAP && \ + nxagentPixmapIsVirtual((PixmapPtr) pDrawable)) ? \ + (DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable) : pDrawable) +*/ +DrawablePtr nxagentSplitDrawable(DrawablePtr pDrawable); + +int nxagentCreateSplit(DrawablePtr pDrawable, GCPtr *pGC); +void nxagentRegionSplit(DrawablePtr pDrawable, RegionPtr pRegion); +void nxagentValidateSplit(DrawablePtr pDrawable, RegionPtr pRegion); +void nxagentReleaseSplit(DrawablePtr pDrawable); + +void nxagentReleaseAllSplits(void); + +void nxagentSetCorruptedTimestamp(DrawablePtr pDrawable); +void nxagentResetCorruptedTimestamp(DrawablePtr pDrawable); + +#endif /* __Split_H__ */ |