Stephen Heumann
46a1657580
Properly set up for next rectangle after out-of-bounds CopyRect.
2016-05-28 18:33:31 -05:00
Stephen Heumann
bb65891a4a
Use shadowing and fast port optimizations for QuickDraw.
...
This should cause a bit of a speedup, although it wasn't really noticeable in my tests.
2016-05-21 12:35:51 -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
1b4d47b690
Speed up raw drawing by calling EventAvail and SystemTask less often.
...
They are now called only every 16 lines, instead of every line. This is enough to maintain reasonable responsiveness, while providing a measurable speedup.
2016-05-20 23:09:40 -05:00
Stephen Heumann
aa38f6d209
Use faster assembly routine for 320-mode raw pixel decoding too.
...
The assembly code for the 640-mode and 320-mode routines is moved to a macro so it can be shared between them.
2016-05-20 22:08:05 -05:00
Stephen Heumann
9e401f4a83
Switch to using faster assembly routine (instead of C) for 640-mode pixel decoding loop.
2016-05-14 17:30:44 -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
b8bdc81eda
Statically allocate space for color tables in an assembly file.
...
This is a prelude to rewriting the raw decoding logic in more efficient assembly code.
2016-05-13 18:34:23 -05:00
Stephen Heumann
b9699111da
Add link to binary releases.
2015-09-29 18:00:32 -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
c6389c9925
Optimize 640 mode raw decoding for case where consecutive blocks of 4 pixels are the same.
...
This is also a win provided it can use the optimized case over ~40% of the time.
2015-09-28 22:48:23 -05:00
Stephen Heumann
2f13669a2f
Optimize 320-mode raw pixel decoding for the case where two consecutive pairs of pixels are the same.
...
This is only a win if we can use the optimized case a reasonable proportion of the time (~40% or more), but that should be the case for most real screen images.
The equality comparisons are written with XORs because that produces better assembly code.
2015-09-28 20:53:45 -05:00
Stephen Heumann
13cd339277
Add a README.md file.
...
This is a slightly reformatted version of the existing README.
2015-09-26 23:58:19 -05:00
Stephen Heumann
3c069bc35d
Raw decoding optimization: Do operations using 16 bits where possible.
...
This saves a few instructions that were being used to switch to 8-bit mode or mask values down to 8 bits.
2015-09-26 22:16:04 -05:00
Stephen Heumann
f810cb3799
Optimize the core loops for decoding raw pixels a little, in particular deferring increments to the end.
2015-09-26 14:26:05 -05:00
Stephen Heumann
59a3bf938c
Use 16-bit computations for shifts, where possible.
...
This causes ORCA/C to generate better code, using shift instructions rather than function calls.
2015-09-26 01:24:58 -05:00
Stephen Heumann
8861cb4a3a
Replace a few mod-by-power-of-2 operations with bit masking, since ORCA/C wasn't optimizing them
2015-09-26 00:33:08 -05:00
Stephen Heumann
8ee57096d2
Fix bug where the rightmost few pixels of a cursor could sometimes be corrupted
2015-09-25 23:47:09 -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
50a273440a
Update README for version 1.0b2.
...
Use a standard open source license (two-clause BSD license).
2015-09-24 22:33:24 -05:00
Stephen Heumann
a44940a468
Flip the mapping of OA (Command) and Option keys.
...
This matches the de facto standard of Mac VNC implementations, although it's inconsistent with the labeling of Option as "Alt."
2015-09-24 19:25:08 -05:00
Stephen Heumann
8c18d44109
Improved error handling in local cursor code
2015-09-24 18:33:27 -05:00
Stephen Heumann
60c976dda6
Update version number and copyright dates
2015-09-24 01:37:21 -05:00
Stephen Heumann
b9dba4ac26
Fix issues with local cursor code. It seems to work OK now.
2015-09-24 01:33:01 -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
f44c7089d2
Remove non-source files, out-of-date build scripts, and unused header
2015-09-23 20:03:30 -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