DRC [Sat, 1 Oct 2011 19:13:12 +0000 (19:13 +0000)]
Disable Composite extension by default in the legacy-friendly TigerVNC build. Justification: Some older versions of Gnome do not work properly when Composite is enabled. This is known to be a problem with RHEL 4 (Gnome 2.8), and it causes the legacy-friendly build to be unusable on that platform. Newer Gnome versions, such as 2.16.0 (the version in RHEL 5), work properly with Composite enabled, but those versions don't support compositing anyhow, so it doesn't matter if we remove the extension. Typically, platforms that are new enough to support compositing are also new enough to not require the legacy-friendly build of TigerVNC. Further, Composite can be re-enabled by simply adding --enable-composite to the XORGCFGFLAGS env. variable prior to executing 'build-xorg build'.
Pierre Ossman [Fri, 30 Sep 2011 12:54:24 +0000 (12:54 +0000)]
Put the TigerVNC marker at the end instead of the beginning of the window
title, making it easier to differentiate windows. At the same time remove
the translation tags as there is nothing in there that should be translated.
Peter Åstrand [Mon, 29 Aug 2011 13:14:51 +0000 (13:14 +0000)]
Avoid translation strings with leading and/or trailing whitespace. Our
experience is that translators very often fails to notice them and
forgets to include the whitespace in the translated string.
DRC [Tue, 23 Aug 2011 23:44:22 +0000 (23:44 +0000)]
We can't assume that Pixman is under ${includedir}, because ${includedir} depends on the install prefix. Fortunately, XSERVERLIBS_CFLAGS should contain the correct include directory for Pixman, so we can use this variable directly or parse it for the include directory.
DRC [Tue, 23 Aug 2011 20:26:11 +0000 (20:26 +0000)]
Clarify when in-tree version of Zlib is being used, and remove redundant "not found" message for the system version (find_package() already takes care of that.)
Peter Åstrand [Tue, 23 Aug 2011 12:04:46 +0000 (12:04 +0000)]
Make sure to include config.h in every compilation unit. Otherwise,
the necessary defines will only be visible as a side effect of
including other headers, leading to problems with things like
translations, which will fail in various places.
DRC [Fri, 19 Aug 2011 04:57:18 +0000 (04:57 +0000)]
Add support for TurboVNC pseudo-encodings and Grayscale JPEG compression so that, when a TurboVNC viewer is connected, the TigerVNC Server will behave exactly like the TurboVNC Server.
Brian Hinz [Thu, 18 Aug 2011 01:09:19 +0000 (01:09 +0000)]
add support for "hidden" compression levels 0,7,8,9 in the gui (JComboBox is now editable). Also addded some sanity checks to make sure only 0-9 can be passed in via the gui or the command line.
DRC [Wed, 17 Aug 2011 02:30:34 +0000 (02:30 +0000)]
Implement recommendations from low-level performance study (undocument compress levels 7-9 in the GUI, since they do nothing but increase CPU usage, set the default compress level to 1, and include a note that levels higher than 3 are rarely useful)
DRC [Wed, 17 Aug 2011 02:27:59 +0000 (02:27 +0000)]
Further optimizations to the Tight encoder to eliminate getImage() overhead. The encoder now directly accesses the framebuffer for solid rectangle computation, JPEG encoding, and color counting (if pixel translation is not required.) Also moved everything in tightEncode.h into the TightEncoder class to eliminate all of the static mess (this will be important later on if we decide to multi-thread the encoder.)
DRC [Thu, 11 Aug 2011 11:18:34 +0000 (11:18 +0000)]
Ported encoding optimizations from TurboVNC. The changes to the Tight parameters were determined through extensive low-level profiling (see http://www.virtualgl.org/pmwiki/uploads/About/turbototiger.pdf). The other enhancements involved: (1) porting the solid subrectangle pre-computation code from TightVNC/TurboVNC (it makes a pretty big difference-- see report), (2) encapsulating the JPEG encoder in its own class (this eliminates a buffer copy, and the JPEG buffer is now set to a decent size where it shouldn't ever need to be paged or re-allocated, except in rare corner cases), (3) adding support for last rect. encoding (necessary to support the solid rectangle pre-computation enhancements.
Peter Åstrand [Thu, 11 Aug 2011 09:14:54 +0000 (09:14 +0000)]
Update the fl_update_clipboard function, so that it matches the latest
version of the win32 clipboard patch available from
http://www.fltk.org/str.php?L2636. See bug 3386240.
DRC [Tue, 9 Aug 2011 11:12:55 +0000 (11:12 +0000)]
Revert r4498 and fix #3305357 properly. The issue was two-fold: (1) the compress buffer allocated by the Tight encoder was not large enough, and (2) Zlib 1.2.5 can sometimes call deflate(..., Z_BLOCK) within the body of deflateParams(), so we need to check avail_in after calling checkCompressionLevel() to ensure that there is still data left to compress before we call deflate() again.
DRC [Tue, 9 Aug 2011 02:26:30 +0000 (02:26 +0000)]
(Re-)fix static Xvnc build. We can leverage the BUILD_STATIC option to modify our fake libtool scripts such that they pick up the static libstdc++.a. Unfortunately, adding -static-libgcc to those scripts makes libtool barf, so we still have to add that flag to LDFLAGS in build-xorg.
DRC [Mon, 1 Aug 2011 20:25:40 +0000 (20:25 +0000)]
Only try to run the libjpeg-turbo test program if we aren't cross-compiling. In a cross-compile environment, we'll settle for just making sure it compiles and links. Even though that can theoretically produce situations in which the wrong libjpeg is linked, such situations would be exceedingly rare in a cross-compile environment, since there is no "system libjpeg" to accidentally link with.
Peter Åstrand [Mon, 1 Aug 2011 10:34:38 +0000 (10:34 +0000)]
More fullscreen fixes: Do not try to change size in fullscreen mode
even if viewport is same as window size. However, after exiting
fullscreen mode, the window size needs to be updated.
Pierre Ossman [Fri, 15 Jul 2011 13:42:11 +0000 (13:42 +0000)]
When we stopped doing full updates on format changes, we also lost the side
effect of having the first update being a full update. This is needed for
correct behaviour for some extensions.
Pierre Ossman [Fri, 15 Jul 2011 12:34:33 +0000 (12:34 +0000)]
Add hack to make the client start properly even in the face of endian issues.
There was a similar hack in the old viewer, so this seems to work well enough
in practice.
Pierre Ossman [Fri, 15 Jul 2011 08:11:55 +0000 (08:11 +0000)]
The new viewer stores the framebuffer in a native format, instead of
converting it on each render like the old one. That means we have to change
how we deal with colour maps and make sure it is updated before any changes
to the framebuffer.
Pierre Ossman [Tue, 12 Jul 2011 16:58:12 +0000 (16:58 +0000)]
Mostly we will catch socket errors when processing incoming data, but
sometimes we'll time it so that a write will be the initial offender. Make
sure these cases are also properly caught and dealt with.
Pierre Ossman [Tue, 12 Jul 2011 16:56:34 +0000 (16:56 +0000)]
Destroy the main UI and connection objects before popping up the fatal error
message. This avoids a lot of problems with recursion and trying to send
events over a dead socket.
Fix regression. We need to set WIN64 so it will be properly defined in resdefs.h. Failing to do so causes the incorrect manifest file to be included in the Win64 version of WinVNC4.exe, which causes it to fail to run.
The previous fix for eliminating the console window in vncviewer.exe was not portable (it only worked in MinGW, which isn't what most people use.) Use the CMake "WIN32" target property instead.