Remove the in-tree versin of FLTK. Maintaining such a copy is way too
much work, and it's constantly out of sync. Let's document what the
main developers (ie Cendio) are using instead.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4951 3789f03b-4d11-0410-bbf8-ca57d06f2519
We were not handling the "sync next" fence properly as we sent the response
right after we got the request (instead of waiting for the next command).
This created a race where we could lose pixel format sync between the client
and the server.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4943 3789f03b-4d11-0410-bbf8-ca57d06f2519
GnuTLS 3.x has removed gnutls_transport_set_global_errno() in favour of
gnutls_transport_set_errno(). Make sure we call the right errno function
depending on which GnuTLS we're using.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4922 3789f03b-4d11-0410-bbf8-ca57d06f2519
Refactor the TLS code so that the push/pull functions are aware of their
containing stream object. This is in preparation for supporting GnuTLS 3.x.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4921 3789f03b-4d11-0410-bbf8-ca57d06f2519
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.
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.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4841 3789f03b-4d11-0410-bbf8-ca57d06f2519
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.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4839 3789f03b-4d11-0410-bbf8-ca57d06f2519
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.
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.
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.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4824 3789f03b-4d11-0410-bbf8-ca57d06f2519
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.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4811 3789f03b-4d11-0410-bbf8-ca57d06f2519
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.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4810 3789f03b-4d11-0410-bbf8-ca57d06f2519
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).
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4809 3789f03b-4d11-0410-bbf8-ca57d06f2519
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.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4788 3789f03b-4d11-0410-bbf8-ca57d06f2519
Cork the outgoing TCP stream while we still have messages to process. This
allows more efficent use of the congestion window as we will send fewer packets.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4782 3789f03b-4d11-0410-bbf8-ca57d06f2519
Expose Linux' cork functionality which allows us to aggregate TCP data in a
controlled manner. Unfortunately there is no equivalent for Windows.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4781 3789f03b-4d11-0410-bbf8-ca57d06f2519
Clean up the interface for VNCSConnectionST. Entry points are more apparent
and the data flow is now more strictly aimed towards this connection class.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4771 3789f03b-4d11-0410-bbf8-ca57d06f2519