diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 18:02:52 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 18:02:52 +0200 |
commit | 5b4ca0f93c44d7bbc8d6a3eebdd5c458e3a84c14 (patch) | |
tree | b6f59ec830436134aaccf47aa71a070aa2ad2992 /nx-X11/programs/Xserver/hw/nxagent/Split.h | |
parent | e29a112097fa74b520ba619eb07e2e0e0a7f2f3e (diff) | |
parent | e01b9177b41f7d27a934d41fa38d550fa0026b45 (diff) | |
download | nx-libs-5b4ca0f93c44d7bbc8d6a3eebdd5c458e3a84c14.tar.gz nx-libs-5b4ca0f93c44d7bbc8d6a3eebdd5c458e3a84c14.tar.bz2 nx-libs-5b4ca0f93c44d7bbc8d6a3eebdd5c458e3a84c14.zip |
Merge branch 'nxagent'
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__ */ |