If the client and server are using identical pixel formats, then perform Tight decoding directly into the viewer's back buffer, rather than going through the slow fillRect/imageRect routines.
We informed the RFB layer of RENDER operations before they were actually
carried out. Under some circumstances, this could result in an update going
out with the old framebuffer contents.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4753 3789f03b-4d11-0410-bbf8-ca57d06f2519
Don't try to push out another update if the socket is already full. This
avoids stalling the entire server because of one slow client.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4737 3789f03b-4d11-0410-bbf8-ca57d06f2519
Make socket writes non-blockable. This allows the system to more quickly
return back to the Xorg main loop, meaning that things will be more responsive
in the presence of slow VNC clients.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4735 3789f03b-4d11-0410-bbf8-ca57d06f2519
Another attempt at solving the compression level change problems. We were still
not detecting the correct approach properly, and hence still getting crashes.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4731 3789f03b-4d11-0410-bbf8-ca57d06f2519
Improved TightJPEG decoder by using a BufferedImage. It simplifies the code, and even though it's just used for grabbing the pixels, it should be faster since it can be HW accelerated. Also added a super.finalize() to the finalizer method in the ZlibInStream class for good measure.
This is subtle, but add_definitions() also adds definitions to the windres command line when building with MinGW, and this causes subsequent barfage because windres doesn't grok the -static-libgcc flag.
Revert a change from yesterday that broke the viewer (setAccelerationPriority). Fix some more issues with window sizing and scaling. Trying to eliminate unnecessary synchronization.
Re-order headers to ensure that winsock2.h is included before windows.h. Otherwise, MinGW64 complains and MSVC barfs. This is necessary because os.h now includes windows.h via. w32tiger.h.
Newer versions of GCC (specifically, the one in MinGW64) don't like casting directly from a 64-bit pointer to a 32-bit integer, so we need to first cast to a 64-bit integer (remember that Windows is LLP64)
More changes to scaling code. Tested on Ubuntu 11.04/OpenJDK and Win7/Sun Java 6u27. Auto, FixedRatio, & % scale all seem to work. Will test on other platforms soon.
The previous fix to the NullPointer issue did not work, because it was simply setting separator to null (not what we want.) Fix the issue properly + fix spelling of "separator".
Launch vncconfig directly from vncserver, not from xstartup. Justification: vncconfig is necessary to enable basic functionality of the TigerVNC system (clipboard transfer, most notably.) It isn't always going to be in the PATH, and in fact, there might be more than one version of it on the system (for instance, a version from RealVNC in /usr/bin and a version from TigerVNC in /opt/TigerVNC/bin.) If it is desirable to disable vncconfig under certain circumstances, then I would suggest adding a command-line option to vncserver to accomplish that.