]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/gfx/PixelFormat.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.utils.ui / src / org / simantics / utils / ui / gfx / PixelFormat.java
index ee1d97eb51191c7a4f6eab809301ffa9bd1bfb01..2c8474c2d0b3604f9e3ee8d4628e1cdea289ec1d 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.utils.ui.gfx;\r
-\r
-//import org.eclipse.ui.IMemento;\r
-\r
-/**\r
- * PixelFormat\r
- * @author Toni Kalajainen\r
- */\r
-public final class PixelFormat {\r
-\r
-    public static PixelFormat RGB24 = new PixelFormat(0xff, 0xff00, 0xff0000, 0);\r
-    \r
-    /** red mask */\r
-    private final int redMask;\r
-    /** green mask */\r
-    private final int greenMask;\r
-    /** blue mask */\r
-    private final int blueMask;\r
-    /** alpha mask */\r
-    private final int alphaMask;\r
-    \r
-    private final int redHighBit;\r
-    private final int greenHighBit;\r
-    private final int blueHighBit;\r
-    private final int alphaHighBit;\r
-\r
-    private final int redLowBit;\r
-    private final int greenLowBit;\r
-    private final int blueLowBit;\r
-    private final int alphaLowBit;\r
-    \r
-    // Highest bit\r
-    private final int bitDepth;\r
-    \r
-    public PixelFormat(int redMask, int greenMask, int blueMask, int alphaMask) {\r
-        this.redMask = redMask;\r
-        this.greenMask = greenMask;\r
-        this.blueMask = blueMask;\r
-        this.alphaMask = alphaMask;\r
-\r
-        this.redHighBit = findHighestBit(redMask);\r
-        this.greenHighBit = findHighestBit(greenMask);\r
-        this.blueHighBit = findHighestBit(blueMask);\r
-        this.alphaHighBit = findHighestBit(alphaMask);\r
-\r
-        this.redLowBit = findLowestBit(redMask);\r
-        this.greenLowBit = findLowestBit(greenMask);\r
-        this.blueLowBit = findLowestBit(blueMask);\r
-        this.alphaLowBit = findLowestBit(alphaMask);\r
-        \r
-        this.bitDepth = findHighestBit(redMask|greenMask|blueMask|alphaMask)+1;        \r
-    }\r
-        \r
-    public boolean hasAlpha() {\r
-        return alphaMask != 0;\r
-    }\r
-    \r
-    /**\r
-     * Calculates mask's bit shift value\r
-     *\r
-     * @param mask color mask\r
-     */\r
-    static int calculateShiftFromMask(int mask) {\r
-        return 7-findHighestBit(mask);\r
-    }\r
-    \r
-    static int findHighestBit(int mask) {\r
-        // Scan bits starting from left. Find first bit\r
-        for (int i=31; i>=0; i--)\r
-            // Check if bit i is 1\r
-            if ((mask & (1<<i)) > 0) return i;\r
-        return 0;\r
-    }\r
-\r
-    static int findLowestBit(int mask) {\r
-        // Scan bits starting from left. Find first bit\r
-        for (int i=0; i<32; i++)\r
-            // Check if bit i is 1\r
-            if ((mask & (1<<i)) > 0) return i;\r
-        return 0;\r
-    }\r
-\r
-    public int getAlphaMask() {\r
-        return alphaMask;\r
-    }\r
-\r
-    public int getAlphaShift() {\r
-        return 7-alphaHighBit;\r
-    }\r
-\r
-    public int getAlphaDepth() {\r
-        return alphaHighBit-alphaLowBit+1;\r
-    }\r
-    \r
-    public int getAlphaHighBit() {\r
-        return alphaHighBit;\r
-    }\r
-    \r
-    public int getAlphaLowBit() {\r
-        return alphaLowBit;\r
-    }\r
-    \r
-    \r
-    public int getBlueMask() {\r
-        return blueMask;\r
-    }\r
-\r
-    public int getBlueShift() {\r
-        return 7- blueHighBit;\r
-    }\r
-\r
-    public int getBlueDepth() {\r
-        return blueHighBit-blueLowBit+1;\r
-    }\r
-    \r
-    public int getBlueHighBit() {\r
-        return blueHighBit;\r
-    }\r
-    \r
-    public int getBlueLowBit() {\r
-        return blueLowBit;\r
-    }\r
-\r
-    \r
-    public int getGreenMask() {\r
-        return greenMask;\r
-    }\r
-\r
-    public int getGreenShift() {\r
-        return 7-greenHighBit;\r
-    }\r
-\r
-    public int getGreenDepth() {\r
-        return greenHighBit-greenLowBit+1;\r
-    }\r
-    \r
-    public int getGreenHighBit() {\r
-        return greenHighBit;\r
-    }\r
-    \r
-    public int getGreenLowBit() {\r
-        return greenLowBit;\r
-    }\r
-\r
-    public int getRedMask() {\r
-        return redMask;\r
-    }\r
-    \r
-    public int getRedShift() {\r
-        return 7-redHighBit;\r
-    }\r
-\r
-    public int getRedDepth() {\r
-        return redHighBit-redLowBit+1;\r
-    }\r
-    \r
-    public int getRedHighBit() {\r
-        return redHighBit;\r
-    }\r
-    \r
-    public int getRedLowBit() {\r
-        return redLowBit;\r
-    }\r
-    \r
-    public int getBitDepth() {\r
-        return bitDepth; \r
-    }\r
-    \r
-    public int getNumberOfColorComponents() {\r
-        int result = 0;\r
-        if (redMask>0) result++;\r
-        if (greenMask>0) result++;\r
-        if (blueMask>0) result++;\r
-        if (alphaMask>0) result++;\r
-        return result;\r
-    }\r
-    \r
-    \r
-    /**\r
-     * Return pixel size in bytes\r
-     * @return pixel size in bytes\r
-     */\r
-    public int getPixelSize() {\r
-        return (bitDepth+7)/8; \r
-    }\r
-    \r
-    @Override\r
-    public int hashCode() {\r
-        return (redLowBit)|(redHighBit<<4)|(greenLowBit<<8)|(greenHighBit<<12)|(blueLowBit<<16)|(blueHighBit<<20)|(alphaLowBit<<24)|(alphaHighBit<<28); \r
-    }\r
-    \r
-    @Override\r
-    public boolean equals(Object o2) {\r
-        if (!o2.getClass().equals(this.getClass())) return false;\r
-        PixelFormat pf2 = (PixelFormat) o2;\r
-        return (redMask == pf2.redMask) && (greenMask == pf2.greenMask) && (blueMask == pf2.blueMask) && (alphaMask == pf2.alphaMask);\r
-    }    \r
-    \r
-    @Override\r
-    public String toString() {\r
-        return bitDepth+" bits";\r
-    }\r
-    \r
-//    public void saveState(IMemento memento)\r
-//    {   \r
-//        memento.putInteger("redMask", redMask);\r
-//        memento.putInteger("greenMask", greenMask);\r
-//        memento.putInteger("blueMask", blueMask);\r
-//        memento.putInteger("alphaMask", alphaMask);\r
-//    }\r
-//    \r
-//    public static PixelFormat restoreState(IMemento memento)\r
-//    {\r
-//        return new PixelFormat(\r
-//                memento.getInteger("redMask"),\r
-//                memento.getInteger("greenMask"),\r
-//                memento.getInteger("blueMask"),\r
-//                memento.getInteger("alphaMask")\r
-//                );\r
-//    }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.utils.ui.gfx;
+
+//import org.eclipse.ui.IMemento;
+
+/**
+ * PixelFormat
+ * @author Toni Kalajainen
+ */
+public final class PixelFormat {
+
+    public static PixelFormat RGB24 = new PixelFormat(0xff, 0xff00, 0xff0000, 0);
+    
+    /** red mask */
+    private final int redMask;
+    /** green mask */
+    private final int greenMask;
+    /** blue mask */
+    private final int blueMask;
+    /** alpha mask */
+    private final int alphaMask;
+    
+    private final int redHighBit;
+    private final int greenHighBit;
+    private final int blueHighBit;
+    private final int alphaHighBit;
+
+    private final int redLowBit;
+    private final int greenLowBit;
+    private final int blueLowBit;
+    private final int alphaLowBit;
+    
+    // Highest bit
+    private final int bitDepth;
+    
+    public PixelFormat(int redMask, int greenMask, int blueMask, int alphaMask) {
+        this.redMask = redMask;
+        this.greenMask = greenMask;
+        this.blueMask = blueMask;
+        this.alphaMask = alphaMask;
+
+        this.redHighBit = findHighestBit(redMask);
+        this.greenHighBit = findHighestBit(greenMask);
+        this.blueHighBit = findHighestBit(blueMask);
+        this.alphaHighBit = findHighestBit(alphaMask);
+
+        this.redLowBit = findLowestBit(redMask);
+        this.greenLowBit = findLowestBit(greenMask);
+        this.blueLowBit = findLowestBit(blueMask);
+        this.alphaLowBit = findLowestBit(alphaMask);
+        
+        this.bitDepth = findHighestBit(redMask|greenMask|blueMask|alphaMask)+1;        
+    }
+        
+    public boolean hasAlpha() {
+        return alphaMask != 0;
+    }
+    
+    /**
+     * Calculates mask's bit shift value
+     *
+     * @param mask color mask
+     */
+    static int calculateShiftFromMask(int mask) {
+        return 7-findHighestBit(mask);
+    }
+    
+    static int findHighestBit(int mask) {
+        // Scan bits starting from left. Find first bit
+        for (int i=31; i>=0; i--)
+            // Check if bit i is 1
+            if ((mask & (1<<i)) > 0) return i;
+        return 0;
+    }
+
+    static int findLowestBit(int mask) {
+        // Scan bits starting from left. Find first bit
+        for (int i=0; i<32; i++)
+            // Check if bit i is 1
+            if ((mask & (1<<i)) > 0) return i;
+        return 0;
+    }
+
+    public int getAlphaMask() {
+        return alphaMask;
+    }
+
+    public int getAlphaShift() {
+        return 7-alphaHighBit;
+    }
+
+    public int getAlphaDepth() {
+        return alphaHighBit-alphaLowBit+1;
+    }
+    
+    public int getAlphaHighBit() {
+        return alphaHighBit;
+    }
+    
+    public int getAlphaLowBit() {
+        return alphaLowBit;
+    }
+    
+    
+    public int getBlueMask() {
+        return blueMask;
+    }
+
+    public int getBlueShift() {
+        return 7- blueHighBit;
+    }
+
+    public int getBlueDepth() {
+        return blueHighBit-blueLowBit+1;
+    }
+    
+    public int getBlueHighBit() {
+        return blueHighBit;
+    }
+    
+    public int getBlueLowBit() {
+        return blueLowBit;
+    }
+
+    
+    public int getGreenMask() {
+        return greenMask;
+    }
+
+    public int getGreenShift() {
+        return 7-greenHighBit;
+    }
+
+    public int getGreenDepth() {
+        return greenHighBit-greenLowBit+1;
+    }
+    
+    public int getGreenHighBit() {
+        return greenHighBit;
+    }
+    
+    public int getGreenLowBit() {
+        return greenLowBit;
+    }
+
+    public int getRedMask() {
+        return redMask;
+    }
+    
+    public int getRedShift() {
+        return 7-redHighBit;
+    }
+
+    public int getRedDepth() {
+        return redHighBit-redLowBit+1;
+    }
+    
+    public int getRedHighBit() {
+        return redHighBit;
+    }
+    
+    public int getRedLowBit() {
+        return redLowBit;
+    }
+    
+    public int getBitDepth() {
+        return bitDepth; 
+    }
+    
+    public int getNumberOfColorComponents() {
+        int result = 0;
+        if (redMask>0) result++;
+        if (greenMask>0) result++;
+        if (blueMask>0) result++;
+        if (alphaMask>0) result++;
+        return result;
+    }
+    
+    
+    /**
+     * Return pixel size in bytes
+     * @return pixel size in bytes
+     */
+    public int getPixelSize() {
+        return (bitDepth+7)/8; 
+    }
+    
+    @Override
+    public int hashCode() {
+        return (redLowBit)|(redHighBit<<4)|(greenLowBit<<8)|(greenHighBit<<12)|(blueLowBit<<16)|(blueHighBit<<20)|(alphaLowBit<<24)|(alphaHighBit<<28); 
+    }
+    
+    @Override
+    public boolean equals(Object o2) {
+        if (!o2.getClass().equals(this.getClass())) return false;
+        PixelFormat pf2 = (PixelFormat) o2;
+        return (redMask == pf2.redMask) && (greenMask == pf2.greenMask) && (blueMask == pf2.blueMask) && (alphaMask == pf2.alphaMask);
+    }    
+    
+    @Override
+    public String toString() {
+        return bitDepth+" bits";
+    }
+    
+//    public void saveState(IMemento memento)
+//    {   
+//        memento.putInteger("redMask", redMask);
+//        memento.putInteger("greenMask", greenMask);
+//        memento.putInteger("blueMask", blueMask);
+//        memento.putInteger("alphaMask", alphaMask);
+//    }
+//    
+//    public static PixelFormat restoreState(IMemento memento)
+//    {
+//        return new PixelFormat(
+//                memento.getInteger("redMask"),
+//                memento.getInteger("greenMask"),
+//                memento.getInteger("blueMask"),
+//                memento.getInteger("alphaMask")
+//                );
+//    }
+}