The xKVM / Color KVM

The xKVM, formerly known as ColorKVM, is our latest development project. We decided to rename the ColorKVM to xKVM (extended KVM) because we have added several new features since our initial color enhancement.

The following features were added to SUN's KVM 1.0.2 sources:

Additionaly, we use JavaCodeCompact to ROMize the kAWT directly to the KVM. This feature reduces loading times of kAWT applications up to factor 10. For example, loading the kAWT Sample running on a non ROMized KVM takes up to 40 seconds loading time. ROMizing the kAWT classes reduces the loading time to 4-5 secs.

Using Color or Grayscale with kAWT

The simpliest way to use colors in the ColorKVM is to use the Graphics method setColor(Color c) to set the actual color for drawing e.g. a line.

Using color with the com.sun.kjava classes

For the color support, we did not add new native methods to the KVM. Instead, we just modified the drawing routines for lines, text and rectangles to accept additonal drawmode values, determining the color, while still preserving the meaning of the KJava constants for compatibility with existing applications. For colored or grayscale drawing, set the lowest byte of the paint mode to 5, the highest byte to the red value, the second highest byte to the green value, and the second lowest byte to the blue value. The corresponding formula is:
  
  (red << 24) + (green << 16) + (blue << 8) + 5
Example for drawing a colored line:
  int red = 255;
  int green = 0;
  int blue = 0;

  int mode = (red << 24) + (green << 16) + (blue << 8) + 5;

  Graphics g = getGraphics ();

  g.drawLine(0, 0, 100, 100, mode); 
Here is a small sample application which shows how to use the new color feature without kAWT:

Download the xKVM / ColorKVM

Download the xKVM / ColorKVM binaries...