Pierre Ossman [Thu, 26 Apr 2012 09:18:19 +0000 (09:18 +0000)]
Windows has a bit of a peculiarity in that winsock2.h must be included
before windows.h for correct winsock behaviour. mingw-w64 also enforces
this order, so to avoid compile errors we must include windows.h late in
all files.
Pierre Ossman [Wed, 25 Apr 2012 15:10:38 +0000 (15:10 +0000)]
The reformatting of all the Xserver sources in the 1.12.1 release changed
the headers so now some of them have multiple instances of the C++ "and"
and "xor" keywords on the same line, so the hack to sanitize them needs
to use the sed "g" flag to replace all instances, not just the first.
Otherwise, the build fails with strange errors such as:
"fb.h", line 817: Error: Unexpected type name "FbBits" encountered.
"fb.h", line 817: Error: dst is not defined.
"fb.h", line 818: Error: Unexpected type name "FbStride" encountered.
"fb.h", line 818: Error: dstStride is not defined.
"fb.h", line 819: Error: Badly formed expression.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4899 3789f03b-4d11-0410-bbf8-ca57d06f2519
Brian Hinz [Wed, 25 Apr 2012 03:24:37 +0000 (03:24 +0000)]
Set Nimbus as the default look and feel if it's available, otherwise fallback to the native LAF. Allow LAF to be specified with swing.defaultlaf system property.
Brian Hinz [Thu, 5 Apr 2012 02:08:49 +0000 (02:08 +0000)]
BufferedImage performance is poor on Microsoft Windows platforms, so fallback to the 1.2 implementation if the BI cannot be HW accelerated. Also streamline some of the code by removing synchronized statements and making the method calls themselves synchronized. Modification to the selector implementation to make it behave more like a unix selector
Brian Hinz [Fri, 16 Mar 2012 03:16:42 +0000 (03:16 +0000)]
Workaround for potential failure to read the version string if the data isn't already in the buffer. May need further consideration, the problem can't be reproduced with the binary viewer.
Brian Hinz [Thu, 15 Mar 2012 02:57:52 +0000 (02:57 +0000)]
Fix an issue where java viewer appears to hang on Mac OS X. As far as I can tell, this is caused by an upstream bug which might be fixed in JDK 7, but for now this gets around the problem without significantly affecting performance.
DRC [Mon, 13 Feb 2012 03:55:10 +0000 (03:55 +0000)]
Fix regression caused by r4841. That patch assumed that JPEG encoding always uses the raw buffer, which is not true. If pixel translation is necessary, then JPEG images will sometimes be encoded from the translated (intermediate) buffer instead.
Brian Hinz [Fri, 3 Feb 2012 05:38:23 +0000 (05:38 +0000)]
Replace all stream-based IO with non-blocking NIO-based implementation. Still a fair amount of cleanup to do, particularly in the SSL handler, which is not very robust, and exception handling in general. All core functionality appears to be working fine though.
Pierre Ossman [Mon, 30 Jan 2012 13:58:44 +0000 (13:58 +0000)]
The Tight encoder uses the pixel buffer as a scratch pad, which doesn't
work so well with the new optimisation to feed it the raw frame buffer.
Reorganise and clean up the code to handle this, and make the raw frame
buffer pointer const so that we might avoid such bugs in the future.
Pierre Ossman [Mon, 23 Jan 2012 15:54:11 +0000 (15:54 +0000)]
Fix a race condition where we might get updates thrown at us right after a
framebuffer switch, but before we've been given the pointer to the new
framebuffer.
Pierre Ossman [Mon, 23 Jan 2012 15:43:42 +0000 (15:43 +0000)]
Failure to find FLTK dependencies is only fatal for our version of FLTK.
When using the system version we have to assume it's built the way the
user wants.
DRC [Tue, 17 Jan 2012 22:33:45 +0000 (22:33 +0000)]
Our FLTK patches modified FLTK's autotools-based build system so that HAVE_XFIXES and HAVE_XCURSOR were defined in FLTK's config.h, but those changes never made it into the CMake-based build system used by the in-tree version of FLTK. Further, our build system was allowing silent failures whenever Xft, Xinerama, Xcursor, or Xfixes were not present on the build system. Now, the lack of these libraries is treated as a fatal error, since these libraries are critical for TigerVNC functionality.
DRC [Thu, 22 Dec 2011 15:57:59 +0000 (15:57 +0000)]
Changing the deferred update timer to 10 ms caused a large performance regression on video/3D apps, and until we can quantify the benefits of a larger DUT value, it was decided that it should be changed back to 1 ms for the 1.2 release.
Pierre Ossman [Wed, 21 Dec 2011 13:17:54 +0000 (13:17 +0000)]
We need to explicitly trigger a framebuffer update for server side rendered
cursors. Previously this happened to work anyway because we had a lot of
triggers for updates. After the cleanup, we need to be more explicit.
Brian Hinz [Sun, 4 Dec 2011 22:06:21 +0000 (22:06 +0000)]
Grabbing the RGB components from the BufferedImage one at a time and converting the to a 24bpp RGB color manually is about 25% faster than using BufferedImage.getRGB().
Brian Hinz [Sun, 27 Nov 2011 20:43:47 +0000 (20:43 +0000)]
Sync up java Tight decoder with recent changes to C client as much as possible. These changes should also fix the 16bpp issue reported in bug #3429667. I think there are probably errors in the FilterGradient* code but I can't get any servers to actually send this type of data to test it.
Peter Åstrand [Thu, 24 Nov 2011 12:34:15 +0000 (12:34 +0000)]
Consistent and simple comment header: No need to specify email, since
its included in the meta info below. TigerVNC Team copyright should be
sufficient.
Pierre Ossman [Sun, 20 Nov 2011 15:39:17 +0000 (15:39 +0000)]
Increase the default compression level to cater to a broader range of users
(bandwidth is often the limiting factor, rather than CPU). Further increases
give little returns, so 2 is currently deemed the best tradeoff.
Pierre Ossman [Sun, 20 Nov 2011 15:37:31 +0000 (15:37 +0000)]
The block size for the comparing update tracker was inefficently low. Raising
it from 16 to 64 pixels significantly reduces the CPU overhead in many cases,
without sacrificing much in what it detects.
Pierre Ossman [Sun, 20 Nov 2011 15:36:11 +0000 (15:36 +0000)]
Make the comparing update tracker a bit more flexible. It can now be in an
"auto" state where it will be enabled until we deem that the client is better
of without it (currently triggered by explicitly stating a low compression
level).
Pierre Ossman [Thu, 17 Nov 2011 10:19:19 +0000 (10:19 +0000)]
Also grab the mouse pointer in full screen as some window managers like to
do special things with buttons combined with modifiers. The user probably
wants to propagate these to the server though.
Pierre Ossman [Thu, 10 Nov 2011 13:30:39 +0000 (13:30 +0000)]
Send a move event when the pointer leaves the viewport as it makes it much
easier to hit the edge of the screen (which is a popular UI element these
days).
Pierre Ossman [Thu, 10 Nov 2011 12:37:39 +0000 (12:37 +0000)]
The CopyRect encoding is very efficient so it is wasteful to check those
areas here. It also makes the CUT counter-productive in some cases as it
tends to expand small changes to BLOCK_SIZE (16 pixels) because of the copy
regions.