| /* |
| * This file is part of the Jikes RVM project (http://jikesrvm.org). |
| * |
| * This file is licensed to You under the Eclipse Public License (EPL); |
| * You may not use this file except in compliance with the License. You |
| * may obtain a copy of the License at |
| * |
| * http://www.opensource.org/licenses/eclipse-1.0.php |
| * |
| * See the COPYRIGHT.txt file distributed with this work for information |
| * regarding copyright ownership. |
| */ |
| package org.mmtk.utility.gcspy; |
| |
| import org.mmtk.vm.VM; |
| |
| import org.vmmagic.pragma.*; |
| |
| /** |
| * Color.java |
| * |
| * Cut-down implementation of java.awt.Color sufficient to provide |
| * the server side (Stream) with colours |
| */ |
| @Uninterruptible public class Color { |
| |
| /** |
| * Some gcspy standard colours (taken from gcspy_color_db.c). |
| */ |
| public static final Color Black = new Color(0, 0, 0); |
| public static final Color Blue = new Color(0, 0, 255); |
| public static final Color Cyan = new Color(0, 255, 255); |
| public static final Color DarkGray = new Color(64, 64, 64); |
| public static final Color Gray = new Color(128, 128, 128); |
| public static final Color Green = new Color(0, 255, 0); |
| public static final Color LightGray = new Color(192, 192, 192); |
| public static final Color Magenta = new Color(255, 0, 255); |
| public static final Color MidGray = new Color(160, 160, 160); |
| public static final Color NavyBlue = new Color(0, 0, 150); |
| public static final Color OffWhite = new Color(230, 230, 230); |
| public static final Color Orange = new Color(255, 200, 0); |
| public static final Color Pink = new Color(255, 175, 175); |
| public static final Color Red = new Color(255, 0, 0); |
| public static final Color White = new Color(255, 255, 255); |
| public static final Color Yellow = new Color(255, 255, 0); |
| |
| private short r; // red component |
| private short g; // green component |
| private short b; // blue component |
| |
| /** |
| * Constructor for a simple RGB colour model. |
| * |
| * @param r red component |
| * @param g green component |
| * @param b blue component |
| */ |
| public Color(short r, short g, short b) { |
| if (VM.VERIFY_ASSERTIONS) |
| VM.assertions._assert((0 <= r) && (r <= 255) && |
| (0 <= g) && (g <= 255) && |
| (0 <= b) && (b <= 255)); |
| this.r = r; |
| this.g = g; |
| this.b = b; |
| } |
| |
| /** |
| * Constructor for a simple RGB colour model. |
| * |
| * @param r red component |
| * @param g green component |
| * @param b blue component |
| */ |
| private Color(int r, int g, int b) { |
| this((short) r, (short) g, (short) b); |
| } |
| |
| |
| /** |
| * Red component |
| * |
| * @return the red component |
| */ |
| public short getRed() { return r; } |
| |
| /** |
| * Green component |
| * |
| * @return the green component |
| */ |
| public short getGreen() { return g; } |
| |
| /** |
| * Blue component |
| * |
| * @return the blue component |
| */ |
| public short getBlue() { return b; } |
| } |