]> source.dussan.org Git - tigervnc.git/commitdiff
fixed bug where IndexColorModel was reset when switching to 8bpp from another depth
authorBrian Hinz <bphinz@users.sourceforge.net>
Thu, 6 Dec 2012 02:25:49 +0000 (02:25 +0000)
committerBrian Hinz <bphinz@users.sourceforge.net>
Thu, 6 Dec 2012 02:25:49 +0000 (02:25 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5016 3789f03b-4d11-0410-bbf8-ca57d06f2519

java/com/tigervnc/rfb/PixelBuffer.java
java/com/tigervnc/vncviewer/BIPixelBuffer.java

index 88b3a89e529f24f4ded597a535e890e74a21c68c..4627318db44b8fedf066d1b27051ae4b5b6eb724 100644 (file)
@@ -41,13 +41,12 @@ public class PixelBuffer {
     case  6: 
       // Fall-through to depth 8
     case  8: 
+      if (cm != null && cm instanceof IndexColorModel)
+        break;
       int rmask = pf.redMax << pf.redShift;
       int gmask = pf.greenMax << pf.greenShift;
       int bmask = pf.blueMax << pf.blueShift;
-      if (pf.trueColour)
-        cm = new DirectColorModel(8, rmask, gmask, bmask);
-      else
-        cm = new IndexColorModel(8, 256, new byte[256], new byte[256], new byte[256]);
+      cm = new DirectColorModel(8, rmask, gmask, bmask);
       break;
     case 16: 
       cm = new DirectColorModel(32, 0xF800, 0x07C0, 0x003E, (0xff << 24));
index 6690c79f406cfca0738ab6204293d52b975f25ca..ae38302c974bd2d64841d06ffc4b2d86be7ca651 100644 (file)
@@ -38,7 +38,7 @@ public class BIPixelBuffer extends PlatformPixelBuffer implements ImageObserver
   }
 
   public void updateColourMap() {
-    cm = new IndexColorModel(8, nColours, reds, greens, blues);
+    super.updateColourMap();
     createImage(width_, height_);
   }