From 222a4a22214608b7f89691eee1c57873c2631705 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 22 May 2012 00:49:10 +0200 Subject: Imported nxagent-3.5.0-9.tar.gz Summary: Imported nxagent-3.5.0-9.tar.gz Keywords: Imported nxagent-3.5.0-9.tar.gz into Git repository --- nx-X11/programs/Xserver/hw/nxagent/Drawable.c | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Drawable.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.c b/nx-X11/programs/Xserver/hw/nxagent/Drawable.c index 9c167743f..f2225996b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.c @@ -112,6 +112,27 @@ unsigned long nxagentGetColor(DrawablePtr pDrawable, int xPixel, int yPixel); unsigned long nxagentGetDrawableColor(DrawablePtr pDrawable); unsigned long nxagentGetRegionColor(DrawablePtr pDrawable, RegionPtr pRegion); +int nxagentSkipImage = 0; + +static int nxagentTooManyImageData(void) +{ + unsigned int r; + unsigned int limit; + + limit = nxagentOption(ImageRateLimit); + + r = nxagentGetDataRate() / 1000; + + #ifdef TEST + if (r > limit) + { + fprintf(stderr, "Warning: Current bit rate is: %u kB/s.\n", r); + } + #endif + + return (r > limit); +} + int nxagentSynchronizeDrawable(DrawablePtr pDrawable, int wait, unsigned int breakMask, WindowPtr owner) { int result; @@ -1304,6 +1325,18 @@ FIXME: All drawables should be set as synchronized and never marked as corrupted while the display is down. */ + + nxagentSkipImage = nxagentTooManyImageData(); + + if (nxagentOption(ImageRateLimit) && nxagentSkipImage) + { + #ifdef TEST + fprintf(stderr, "nxagentSynchronizeDrawable: Skipping due to bit rate limit reached.\n"); + #endif + + return; + } + if (NXDisplayError(nxagentDisplay) == 1) { #ifdef TEST -- cgit v1.2.3