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));