File n_java_fix_16bit_depth.patch of Package tigervnc.20174

Author: Michal Srb <msrb@suse.com>
Subject: Fix 16bit depth.
Patch-Mainline: Never
References: bnc#1075403

This fixes 16bit depth support in the java viewer. It is not needed upstream since the code was rewritten and no longer has this issue.

Index: tigervnc-sle12sp3/java/com/tigervnc/vncviewer/PlatformPixelBuffer.java
===================================================================
--- tigervnc-sle12sp3.orig/java/com/tigervnc/vncviewer/PlatformPixelBuffer.java
+++ tigervnc-sle12sp3/java/com/tigervnc/vncviewer/PlatformPixelBuffer.java
@@ -54,10 +54,13 @@ abstract public class PlatformPixelBuffe
       int redShift    = cm.getComponentSize()[0] + cm.getComponentSize()[1];
       int greenShift  = cm.getComponentSize()[0];
       int blueShift   = 0;
+      int redMax   = (1 << cm.getComponentSize()[2]) - 1;
+      int greenMax = (1 << cm.getComponentSize()[1]) - 1;
+      int blueMax  = (1 << cm.getComponentSize()[0]) - 1;
       pf = new PixelFormat(bpp, depth, bigEndian, trueColour,
-        (depth > 8 ? 0xff : 0),
-        (depth > 8 ? 0xff : 0),
-        (depth > 8 ? 0xff : 0),
+        (depth > 8 ? redMax : 0),
+        (depth > 8 ? greenMax : 0),
+        (depth > 8 ? blueMax : 0),
         (depth > 8 ? redShift : 0),
         (depth > 8 ? greenShift : 0),
         (depth > 8 ? blueShift : 0));
openSUSE Build Service is sponsored by