ponty / framebuffer-vncserver

VNC server for Linux framebuffer devices
GNU General Public License v2.0
169 stars 69 forks source link

Add support for 32 bit rotated screen #25

Open pfyra opened 10 months ago

pfyra commented 10 months ago

This PR makes 32 bpp work with 90 degree rotation. Other combinations should work as well, but I haven't tested anything else.

Not sure about BITS_PER_SAMPLE, but colors are a bit off if I keep it at 5.

ponty commented 10 months ago

You can test the results so: (from README)

python3 -m pip install fabric vncdotool python-vagrant entrypoint2
python3 vfb.py

I added tests for 32 bit rotation I run the above test and I uploaded the results in my rot32 branch:

https://github.com/ponty/framebuffer-vncserver/tree/rot32#automatic-test

32 bit rotation seems to be OK, but the 16 bit became green.

pfyra commented 9 months ago

Sorry for being slow... I tried running the automated tests but unfortunately I get some vagrant errors. However, I do believe that the change of BITS_PER_SAMPLE is the cause of the greeniness as the PIXEL_FB_TO_RFB macro shifts the blue value 16 bits to the left and if only 16 bits per pixel is used I guess the blue color will be missing completely.