VNC for Display simulation
Softgun comes with an integrated VNC Server because this is the most portable way to display graphics. It implements the
RFB-Server protocol 3.3. It does not implement authentication.
Example configuration file section for realvnc with 24 bit bug:
[lcd0]
colorset: 1
backend: rfbserver
propose_bpp: 32
start: vncviewer -FullColour -AutoSelect=0 localhost:5903
host: 127.0.0.1
port: 5903
width: 310
height: 75
startupdelay: 0
exit_on_close: 1
Pixel format
By default softgun proposes the pixel format of the simulated graphic device to the client. Clients rarely use the proposed format.
Use with RealVNC
RealVNC simply quits with the error message
setPF: not 8, 16 or 32 bpp
if the proposed pixelformat is 24 bits per pixel. This is a bug in realvnc.
It should send a SetPixelFormat message with its own proposal if it can not handle
the pixel format proposed by the server. But it never does.
As a work around softgun can propose a bit depth of 8,16 or 32 bits with
the configuration option
[<displayname>]
propose_bpp: 32
Alternatively you can remove the check for 24 bit in RealVNC. Here is a patch for Version 4.1.3:
diff --git a/common/rfb/ConnParams.cxx b/common/rfb/ConnParams.cxx
index d90be28..447ec3e 100644
--- a/common/rfb/ConnParams.cxx
+++ b/common/rfb/ConnParams.cxx
@@ -67,9 +67,7 @@ void ConnParams::writeVersion(rdr::OutStream* os)
void ConnParams::setPF(const PixelFormat& pf)
{
pf_ = pf;
-
- if (pf.bpp != 8 && pf.bpp != 16 && pf.bpp != 32)
- throw Exception("setPF: not 8, 16 or 32 bpp?");
+ return;
}
void ConnParams::setName(const char* name)
--