Commit Graph

17 Commits

Author SHA1 Message Date
Stephen Heumann
462b351425 Report zero-length reads as successful.
I've encountered a server that sometimes sends zero-size cursor updates, which can trigger this case.
2016-09-05 21:52:24 -05:00
Stephen Heumann
af7b5b8119 Do raw drawing incrementally while data is being received.
This currently disables the support for skipping invisible pixels. It is generally not very important, since raw drawing speed usually is not the bottleneck.
2016-09-05 17:22:10 -05:00
Stephen Heumann
ec3cbc6748 Implement option to tune Marinetti for high throughput.
This sets the tcpTUNEIPUSERPOLLCT and tcpTUNEIPRUNQCT tuning parameters to 10 (the maximum) instead of the default of 2. This makes Marinetti process more incoming data at once and significantly increases throughput. (Actually, current versions of Marinetti only seem to use tcpTUNEIPUSERPOLLCT, but we set both for compatibility with any future versions that actually use tcpTUNEIPRUNQCT.)
2016-09-02 19:08:45 -05:00
Stephen Heumann
aa15c60672 Have Marinetti return a new handle in ReadFixup.
This should be faster, as in DoReadTCP, and it simplifies the code a little.

Also, check for returned data size of 0 in DoReadTCP. I don't think this should happen, but in case it did, the returned handle could be invalid.
2016-05-28 23:19:13 -05:00
Stephen Heumann
e1288f7e1b Small refactoring to reduce boilerplate code
DoReadTCP automatically disposes the old read buffer handle before doing the read, and then locks the new read buffer handle before returning. This removes the need for most explicit locking/unlocking of the handle. A macro is provided to dispose of the handle earlier (useful in a few cases where it may be big, and another read isn't immediately performed).

Also, set displayInProgress to FALSE in NextRect, rather than in code for each encoding.
2016-05-28 21:59:35 -05:00
Stephen Heumann
3a175f9b02 Have Marinetti return read data in a new handle.
This should be faster than the other options (reusing an existing handle or using a pointer) because it avoids an extra copy of the data inside Marinetti. For the other options, Marinetti will create a new handle and copy the data to it anyway, but then copy it again into the requested destination.
2016-05-28 20:41:43 -05:00
Stephen Heumann
d1b2e10489 Don't duplicatively regenerate color table entries.
The logic for making sure the color table was complete before connecting was slightly broken due to wraparound, so it would cause all entries to be generated, re-generating any that already had been. This fixes it, which should make the initial connection process slightly faster on slow systems.
2016-05-21 00:23:48 -05:00
Stephen Heumann
12999358b5 Use a static (instead of dynamically allocated) buffer for SHR pixels generated from raw decoding.
The program code is moved to a separate segment to make room for the buffer.
2016-05-13 21:44:12 -05:00
Stephen Heumann
141739c985 Clean up headers and make things static where appropriate.
Also include a few missing prototypes, which could possibly fix bugs.
2016-05-13 20:19:27 -05:00
Stephen Heumann
e0044468e3 Fix a memory leak in ReadFixup.
The buffer from the last read is still left around until the next one, but this should usually be fairly small, and it's the same behavior as the main DoReadTCP routine.
2015-09-29 17:21:37 -05:00
Stephen Heumann
8cdef04732 Terminate blocking reads on TCP errors, instead of waiting for timer to expire.
This should avoid most cases where the program seems to hang for 15 seconds.
2015-09-25 19:02:52 -05:00
Stephen Heumann
ebf5297779 Switch to standard indentation of closing braces 2015-09-23 20:56:33 -05:00
Stephen Heumann
ab3210adb0 Consistently use spaces for indentation 2015-09-23 20:26:03 -05:00
Stephen Heumann
31ff375570 Post-1.0b1 work in progress from 2004.
This contains partial code for displaying the cursor locally.
2015-09-23 19:40:17 -05:00
Stephen Heumann
fb43622db7 VNCview GS 1.0b1 sources 2015-09-23 19:06:46 -05:00
Stephen Heumann
48972d5a9c VNCview GS 1.0a2 sources 2015-09-23 19:02:23 -05:00
Stephen Heumann
16f792352e VNCview GS 1.0a1 sources 2015-09-23 18:46:47 -05:00