[Bugfix] Xvnc: define 32bit pixel format correctly when enabled.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4124 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/unix/xserver/hw/vnc/xvnc.cc b/unix/xserver/hw/vnc/xvnc.cc
index 15235e1..d5bffbe 100644
--- a/unix/xserver/hw/vnc/xvnc.cc
+++ b/unix/xserver/hw/vnc/xvnc.cc
@@ -1203,13 +1203,22 @@
pScreen->blackPixel = pvfb->blackPixel;
pScreen->whitePixel = pvfb->whitePixel;
- if (!pvfb->pixelFormatDefined && pvfb->fb.depth == 16) {
+ if (!pvfb->pixelFormatDefined) {
pvfb->pixelFormatDefined = TRUE;
- pvfb->rgbNotBgr = TRUE;
- pvfb->blueBits = pvfb->redBits = 5;
- pvfb->greenBits = 6;
+
+ switch (pvfb->fb.depth) {
+ case 16:
+ pvfb->rgbNotBgr = TRUE;
+ pvfb->blueBits = pvfb->redBits = 5;
+ pvfb->greenBits = 6;
+ break;
+ case 32:
+ pvfb->rgbNotBgr = TRUE;
+ pvfb->blueBits = pvfb->redBits = pvfb->greenBits = 8;
+ break;
+ }
}
-
+
if (pvfb->pixelFormatDefined) {
VisualPtr vis = pScreen->visuals;
for (int i = 0; i < pScreen->numVisuals; i++) {