ChangeLog: 11sep03 Fixed screen garbage bugs. Should work a lot better now. Note: some of the (old) packages are corrupt.. sorry :(. Below is the readme file from srone-*.tgz. --------- Author: matti.suomalainen@iki.fi Version: 0.02 Data: Sun Aug 31 20:33:07 EEST 2003 NOTE!! ====== This is not usable code. It is good enough for hacking/toying with. I plan to work on this, but so far the performance is not acceptable. CONTENTS ======== A hacked Xvnc virtual framebuffer Xserver Authentication client for Sun Ray(tm) USAGE ===== First you must compile and setup a dhcpd server for the sun ray. Not documented here. Compile srone (authentication client): cd srone ./configure make Compile Xvnc: cd ../vnc-3.3.7-unixsrc ./configure --with-x --x-includes=/usr/include/X11 --x-libraries=/usr/X11R6/lib make cd Xvnc make World cd programs/Xserver Run srone: cd srone; ./srone Wait for a client. Should say something like this: CLIENT CONNECTED, TO RUN XVNC TYPE: ./Xvnc -depth 24 -connect 10.124.36.170 40027 Start an Xserver with the given command. (And don't kill srone.) Problems: ========= - keycodes are not XFREE86 keycodes, so your xmodmap is not going to work. good side is that the default modmap works. also, no repeat not supported. all keys may not work. modifiers do not work right. - mouse works, but modifiers do not. - no flow control. so gfx updates can get queued on the sun ray (lag) - Preliminary code for optimizing sun ray output. (only send modified pixels, for 1-color areas, use fills, for 2-color areas use 2-bit blit with color expansion. if 2 or 3 colors are used, first use 2-bit blit than add each color using masked blit. if more then 4 colors are used, use 24 bit blit.) - support for screen-to-screen copying (but bugs) - TODO: bitmap cache - TODO: large udp packets - TODO: fix srone for correct keepalives. - the screen is split into 16x16 sub-rectangles that are tracked for modification. - if a sub-rectangle is marked for modification, the contents is still compared against a double buffer for data modications. this may not work. The interesting stuff is in vnc-3.3.7-unixsrc/Xvnc/programs/Xserver/hw/vnc/. (draw.c, init.c, srone.c)