From 9e3371021541dbb7d8428b419c2e77156b166f1a Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:58:30 +0200 Subject: Imported nxagent-3.1.0-2.tar.gz Summary: Imported nxagent-3.1.0-2.tar.gz Keywords: Imported nxagent-3.1.0-2.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.h | 221 ++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 nx-X11/programs/Xserver/hw/nxagent/Drawable.h (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.h') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h new file mode 100644 index 000000000..62af0685d --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h @@ -0,0 +1,221 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2001, 2007 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 NoMachine S.r.l. */ +/* */ +/* All rights reserved. */ +/* */ +/**************************************************************************/ + +#ifndef __Drawable_H__ +#define __Drawable_H__ + +#include "resource.h" +#include "Windows.h" +#include "Pixmaps.h" + +/* + * Structures and macros used to manage the Lazy encoding. + */ + +typedef struct +{ + DrawablePtr pDrawable; + int drawableType; + int abort; + int windowBitmaps; + int pixmapBitmaps; + int backgroundBitmaps; + +} _nxagentSynchronizationRec; + +extern _nxagentSynchronizationRec nxagentSynchronization; + +enum DrawableStatus +{ + Synchronized, + NotSynchronized +}; + +enum SynchronizationPredicate +{ + Needed, + NotNeeded, + Delayed +}; + +/* + * Shall the synchronization wait for the + * drawable wakening? + */ + +#define DONT_WAIT 0 +#define DO_WAIT 1 + +/* + * How the synchronization loop can be + * interrupted? A 0 mask means that the + * loop can't be stopped. + */ + +#define EVENT_BREAK (1 << 0) +#define CONGESTION_BREAK (1 << 1) +#define BLOCKING_BREAK (1 << 2) + +#define NEVER_BREAK 0 +#define ALWAYS_BREAK (EVENT_BREAK | \ + CONGESTION_BREAK | \ + BLOCKING_BREAK) + +/* + * Minimum value of usage counter which + * a pixmap should have to be synchronized. + */ + +#define MINIMUM_PIXMAP_USAGE_COUNTER 2 + +/* + * This is the macro used to get the external XID + * from a generic pointer to a drawable. + */ + +#define nxagentDrawable(pDrawable) \ + ((pDrawable)->type == DRAWABLE_WINDOW ? \ + nxagentWindow((WindowPtr)pDrawable) : \ + nxagentPixmap((PixmapPtr)pDrawable)) + +#define nxagentVirtualDrawable(pDrawable) \ + (DrawablePtr)((pDrawable)->type == DRAWABLE_WINDOW ? \ + NULL : nxagentVirtualPixmap((PixmapPtr)pDrawable)) + +#define nxagentDrawablePicture(pDrawable) \ + ((DrawablePtr)((pDrawable)->type == DRAWABLE_WINDOW ? \ + nxagentWindowPriv((WindowPtr)pDrawable) -> pPicture : \ + nxagentPixmapPriv((PixmapPtr)pDrawable) -> pPicture)) + +#define nxagentCorruptedRegion(pDrawable) \ + ((pDrawable) -> type == DRAWABLE_PIXMAP ? \ + nxagentPixmapCorruptedRegion((PixmapPtr) pDrawable) : \ + nxagentWindowCorruptedRegion((WindowPtr) pDrawable)) + +#define nxagentDrawableStatus(pDrawable) \ + (REGION_NIL(nxagentCorruptedRegion(pDrawable)) ? \ + Synchronized : NotSynchronized) + +#define nxagentDrawableContainGlyphs(pDrawable) \ + ((pDrawable) -> type == DRAWABLE_PIXMAP ? \ + nxagentPixmapContainGlyphs((PixmapPtr) (pDrawable)) : \ + nxagentWindowContainGlyphs((WindowPtr) (pDrawable))) + +#define nxagentSetDrawableContainGlyphs(pDrawable, value) \ +do \ +{ \ + if ((pDrawable) -> type == DRAWABLE_PIXMAP) \ + { \ + nxagentPixmapContainGlyphs(nxagentRealPixmap((PixmapPtr) (pDrawable))) = (value); \ + } \ + else \ + { \ + nxagentWindowContainGlyphs((WindowPtr) (pDrawable)) = (value); \ + } \ +} while (0) + +#define nxagentDrawableBitmap(pDrawable) \ + ((pDrawable) -> type == DRAWABLE_PIXMAP ? \ + nxagentPixmapPriv(nxagentRealPixmap((PixmapPtr) (pDrawable))) -> synchronizationBitmap : \ + nxagentWindowPriv((WindowPtr) (pDrawable)) -> synchronizationBitmap) + +#define nxagentDrawableTimestamp(pDrawable) \ + ((pDrawable) -> type == DRAWABLE_PIXMAP ? \ + nxagentPixmapTimestamp((PixmapPtr) pDrawable) : \ + nxagentWindowTimestamp((WindowPtr) pDrawable)) + +#define nxagentDrawableType(pDrawable) \ + ((pDrawable) -> type == DRAWABLE_PIXMAP ? "pixmap" : "window") + +extern RESTYPE RT_NX_CORR_BACKGROUND; +extern RESTYPE RT_NX_CORR_WINDOW; +extern RESTYPE RT_NX_CORR_PIXMAP; + +extern int nxagentCorruptedPixmaps; +extern int nxagentCorruptedWindows; +extern int nxagentCorruptedBackgrounds; + +extern int nxagentForceSynchronization; + +extern RegionPtr nxagentCreateRegion(DrawablePtr pDrawable, GCPtr pGC, int x, int y, + int width, int height); + +#define nxagentFreeRegion(pDrawable, pRegion) \ + REGION_DESTROY((pDrawable) -> pScreen, pRegion); + +extern void nxagentMarkCorruptedRegion(DrawablePtr pDrawable, RegionPtr pRegion); +extern void nxagentUnmarkCorruptedRegion(DrawablePtr pDrawable, RegionPtr pRegion); +extern void nxagentMoveCorruptedRegion(WindowPtr pWin, unsigned int mask); +extern void nxagentIncreasePixmapUsageCounter(PixmapPtr pPixmap); + +extern int nxagentSynchronizeRegion(DrawablePtr pDrawable, RegionPtr pRegion, unsigned int breakMask, WindowPtr owner); +extern void nxagentSynchronizeBox(DrawablePtr pDrawable, BoxPtr pBox, unsigned int breakMask); +extern int nxagentSynchronizeDrawable(DrawablePtr pDrawable, int wait, unsigned int breakMask, WindowPtr owner); +extern int nxagentSynchronizeDrawableData(DrawablePtr pDrawable, unsigned int breakMask, WindowPtr owner); +extern void nxagentSynchronizationLoop(unsigned int mask); + +extern int nxagentSynchronizationPredicate(void); + +extern BoxPtr nxagentGetOptimizedRegionBoxes(RegionPtr pRegion); + +extern void nxagentCleanCorruptedDrawable(DrawablePtr pDrawable); + +extern void nxagentUnmarkExposedRegion(WindowPtr pWin, RegionPtr pRegion, RegionPtr pOther); +extern void nxagentSendDeferredBackgroundExposures(void); + +extern void nxagentClearRegion(DrawablePtr pDrawable, RegionPtr pRegion); +extern void nxagentFillRemoteRegion(DrawablePtr pDrawable, RegionPtr pRegion); + +extern void nxagentAllocateCorruptedResource(DrawablePtr pDrawable, RESTYPE type); +extern void nxagentDestroyCorruptedResource(DrawablePtr pDrawable, RESTYPE type); +extern int nxagentDestroyCorruptedBackgroundResource(pointer p, XID id); +extern int nxagentDestroyCorruptedWindowResource(pointer p, XID id); +extern int nxagentDestroyCorruptedPixmapResource(pointer p, XID id); + +extern void nxagentCreateDrawableBitmap(DrawablePtr pDrawable); +extern void nxagentDestroyDrawableBitmap(DrawablePtr pDrawable); + +extern void nxagentRegionsOnScreen(void); + +#define PRINT_REGION_BOXES(pRegion, strRegion) \ +do \ +{ \ + int i; \ + int numRects; \ + BoxPtr pBox; \ +\ + if (pRegion == NullRegion) \ + { \ + fprintf(stderr, "printRegionBoxes:: Region " strRegion " is null.\n"); \ + break; \ + } \ +\ + numRects = REGION_NUM_RECTS(pRegion); \ + pBox = REGION_RECTS(pRegion); \ +\ + fprintf(stderr, "printRegionBoxes:: Region " strRegion " at [%p] has [%d] boxes:\n", \ + (void *) (pRegion), numRects); \ +\ + for (i = 0; i < numRects; i++) \ + { \ + fprintf(stderr, "[%d] [%d,%d,%d,%d]\n", \ + i, pBox[i].x1, pBox[i].y1, pBox[i].x2, pBox[i].y2); \ + } \ +\ +} while (0) + +#endif /* __Drawable_H__ */ -- cgit v1.2.3 From e9132da09462b3d2607a97e2f580cbd3144819eb Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:58:57 +0200 Subject: Imported nxagent-3.4.0-11.tar.gz Summary: Imported nxagent-3.4.0-11.tar.gz Keywords: Imported nxagent-3.4.0-11.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.h') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h index 62af0685d..146610efb 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2007 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2010 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 */ @@ -9,7 +9,7 @@ /* */ /* Check http://www.nomachine.com/licensing.html for applicability. */ /* */ -/* NX and NoMachine are trademarks of NoMachine S.r.l. */ +/* NX and NoMachine are trademarks of Medialogic S.p.A. */ /* */ /* All rights reserved. */ /* */ -- cgit v1.2.3 From 25af86cd3aaa61dc4a3d69825aa523177c2229e1 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:58:57 +0200 Subject: Imported nxagent-3.4.0-16.tar.gz Summary: Imported nxagent-3.4.0-16.tar.gz Keywords: Imported nxagent-3.4.0-16.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.h') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h index 146610efb..c987fa119 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ +/* 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 */ -- cgit v1.2.3 From d30ef0340e759378964b75e8143625ecaea245b0 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:58:58 +0200 Subject: Imported nxagent-3.4.0-3.tar.gz Summary: Imported nxagent-3.4.0-3.tar.gz Keywords: Imported nxagent-3.4.0-3.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.h') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h index c987fa119..6ce0e3156 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2009 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 */ -- cgit v1.2.3 From c078024019d334eb96fbfaf922c64297c9a0c6e0 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:58:59 +0200 Subject: Imported nxagent-3.4.0-5.tar.gz Summary: Imported nxagent-3.4.0-5.tar.gz Keywords: Imported nxagent-3.4.0-5.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.h') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h index 6ce0e3156..146610efb 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2009 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2010 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 */ -- cgit v1.2.3 From 39b738a67a14dde67b2a811d56ac84934fcef52d Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:59:00 +0200 Subject: Imported nxagent-3.5.0-2.tar.gz Summary: Imported nxagent-3.5.0-2.tar.gz Keywords: Imported nxagent-3.5.0-2.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.h') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h index 146610efb..c987fa119 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.h @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ +/* 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 */ -- cgit v1.2.3