]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/gnu/awt/xlib/XGraphicsConfiguration.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / gnu / awt / xlib / XGraphicsConfiguration.java
diff --git a/libjava/gnu/awt/xlib/XGraphicsConfiguration.java b/libjava/gnu/awt/xlib/XGraphicsConfiguration.java
deleted file mode 100644 (file)
index 69cc6e2..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-/* Copyright (C) 2000  Free Software Foundation
-
-   This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
-details.  */
-
-package gnu.awt.xlib;
-
-import java.awt.GraphicsConfiguration;
-import java.awt.Rectangle;
-import java.awt.Graphics2D;
-import java.awt.Graphics;
-import java.awt.Point;
-import java.awt.Color;
-import java.awt.color.ColorSpace;
-import java.awt.image.*;
-import java.awt.geom.AffineTransform;
-import gnu.gcj.xlib.GC;
-import gnu.gcj.xlib.Drawable;
-import gnu.gcj.xlib.Window;
-import gnu.gcj.xlib.XImage;
-import gnu.gcj.xlib.Visual;
-import gnu.gcj.xlib.Colormap;
-import gnu.gcj.xlib.XColor;
-import gnu.gcj.xlib.Screen;
-import gnu.gcj.xlib.Display;
-import gnu.java.awt.Buffers;
-import java.util.Hashtable;
-
-public class XGraphicsConfiguration extends GraphicsConfiguration
-{
-  //public abstract GraphicsDevice getDevice();
-  
-  Visual visual;
-  int format;
-  Colormap colormap;
-  ColorModel imageCM;
-  ColorModel pixelCM;
-  
-  public XGraphicsConfiguration(Visual visual)
-  {
-    this.visual = visual;
-  }
-
-  public BufferedImage createCompatibleImage(int width, int height)
-  {
-    XImage ximg = new XImage(visual, width, height,
-                            false // do not auto allocate memory
-                            );
-
-    Point origin = new Point(0, 0);
-    WritableRaster raster = createRasterForXImage(ximg, origin);
-
-    /* This is not a good way of doing this. Multiple toolkits may
-       want to share the BufferedImage. */
-    Hashtable props = new Hashtable();
-    props.put("gnu.gcj.xlib.XImage", ximg);
-    props.put("java.awt.GraphicsConfiguration", this);
-    
-    BufferedImage bimg = new BufferedImage(imageCM,raster, false, props);
-
-    DataBuffer dataB = raster.getDataBuffer();
-    attachData(ximg, dataB, 0);
-    return bimg;
-  }
-
-  WritableRaster createRasterForXImage(XImage ximage, Point origin)
-  {
-    if (imageCM == null) prepareColorModel(ximage);
-    
-    /*
-      This will not work, since it creates a sample model that
-      does not necessarily match the format of the XImage.
-      
-      WritableRaster raster =
-      imageCM.createCompatibleWritableRaster(width, height); */
-    
-    // Create a sample model matching the XImage:
-
-    SampleModel imageSM = null;
-
-    int width = ximage.getWidth();
-    int height = ximage.getHeight();
-    int bitsPerPixel = ximage.getBitsPerPixel();
-    int dataType =
-      Buffers.smallestAppropriateTransferType(bitsPerPixel);
-    int bitsPerDataElement = DataBuffer.getDataTypeSize(dataType);
-    int scanlineStride = ximage.getBytesPerLine()*8/bitsPerDataElement;
-    
-    if (imageCM instanceof IndexColorModel)
-      {
-       int[] bandOffsets = {0};
-       imageSM = new ComponentSampleModel(dataType,
-                                          width, height,
-                                          1, // pixel stride
-                                          scanlineStride,
-                                          bandOffsets);
-      }
-    else if (imageCM instanceof PackedColorModel)
-      {
-       PackedColorModel pcm = (PackedColorModel) imageCM;
-       int[] masks = pcm.getMasks();
-       
-       imageSM = new SinglePixelPackedSampleModel(dataType,
-                                                  width, height,
-                                                  scanlineStride,
-                                                  masks);
-      }
-
-    if (imageSM == null)
-      {
-       throw new UnsupportedOperationException("creating sample model " +
-                                               "for " + imageCM +
-                                               " not implemented");
-      }
-
-    WritableRaster raster = Raster.createWritableRaster(imageSM, origin);
-    return raster;
-  }
-
-
-
-  /**
-   * Attach a the memory of a data buffer to an XImage
-   * structure. [This method is not gnu.awt.xlib specific, and should
-   * maybe be moved to a different location.]
-   *
-   * @param offset Offset to data. The given offset does not include
-   * data buffer offset, which will also be added.  */
-  static void attachData(XImage ximage, DataBuffer dataB, int offset)
-  {
-    offset += dataB.getOffset();
-    switch (dataB.getDataType())
-      {
-      case DataBuffer.TYPE_BYTE:
-       ximage.setData(((DataBufferByte) dataB).getData(), offset);
-       break;
-      case DataBuffer.TYPE_USHORT:
-       ximage.setData(((DataBufferUShort) dataB).getData(), offset);
-       break;
-      case DataBuffer.TYPE_INT:
-       ximage.setData(((DataBufferInt) dataB).getData(), offset);
-       break;
-      default:
-       throw
-         new UnsupportedOperationException("Do not know how to " +
-                                           "set data for data " +
-                                           "type " +
-                                           dataB.getDataType());
-      }
-  }
-    
-  void prepareColorModel(XImage ximage)
-  {
-    format = ximage.getFormat();
-    int bitsPerPixel = ximage.getBitsPerPixel();
-    switch (format) {
-    case XImage.ZPIXMAP_FORMAT:
-      calcZPixmapModels(bitsPerPixel);
-      break;
-      
-    default:
-      throw new UnsupportedOperationException("unimplemented format");
-    }
-  }
-
-  void calcZPixmapModels(int bitsPerPixel)
-  {
-    switch (visual.getVisualClass())
-      {
-      case Visual.VC_TRUE_COLOR:
-       calcDecomposedRGBModels(bitsPerPixel);
-       break;
-      case Visual.VC_PSEUDO_COLOR:
-       calcPseudoColorModels(bitsPerPixel);
-       break;
-      default:
-       String msg = "unimplemented visual class";
-       throw new UnsupportedOperationException(msg);
-      }
-  }
-    
-  void calcDecomposedRGBModels(int bitsPerPixel)
-  {
-    int dataType = Buffers.smallestAppropriateTransferType(bitsPerPixel);
-    
-    
-    if (DataBuffer.getDataTypeSize(dataType) == bitsPerPixel)
-      {        
-       ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
-       
-       imageCM = new DirectColorModel(cs,
-                                      visual.getDepth(),
-                                      visual.getRedMask(),
-                                      visual.getGreenMask(),
-                                      visual.getBlueMask(),
-                                      0, // no alpha
-                                      false,
-                                      dataType);
-      }
-    else
-      {
-       throw new
-         UnsupportedOperationException("unimplemented bits per pixel");
-      }
-    }
-    
-  void calcPseudoColorModels(int bitsPerPixel)
-  {
-    if (colormap == null)
-      colormap = visual.getScreen().getDefaultColormap();
-    
-    XColor[] colArray = colormap.getXColors();
-       
-    int numCol = colArray.length;
-    byte[] rmap = new byte[numCol];
-    byte[] gmap = new byte[numCol];
-    byte[] bmap = new byte[numCol];
-    byte[] amap = new byte[numCol];
-    
-    for (int i=0; i < numCol; i++)
-      {
-       XColor color = colArray[i];
-       if (color.getFlags() == Colormap.FLAG_SHARED)
-         {
-           rmap[i] = (byte) (color.getRed()   >> 8);
-           gmap[i] = (byte) (color.getGreen() >> 8);
-           bmap[i] = (byte) (color.getBlue()  >> 8);
-           amap[i] = (byte) 0xff;
-         } // else, leave default zero values...
-      }
-
-    imageCM = new IndexColorModel(visual.getDepth(), numCol,
-                                 rmap, gmap, bmap, amap);
-  }
-
-  public BufferedImage createCompatibleImage(int width,
-                                            int height,
-                                            int transparency)
-  {
-    throw new UnsupportedOperationException("not implemented");
-  }
-    
-  /**
-   * FIXME: I'm not sure which color model that should be returned here.
-   */
-  public ColorModel getColorModel()
-  {
-    if (pixelCM == null)
-      preparePixelCM();
-    return pixelCM;
-  }
-
-  void preparePixelCM()
-  {
-    switch (visual.getVisualClass())
-      {
-      case Visual.VC_TRUE_COLOR:
-       pixelCM = new DirectColorModel(visual.getDepth(),
-                                      visual.getRedMask(),
-                                      visual.getGreenMask(),
-                                      visual.getBlueMask());
-       break;
-      case Visual.VC_PSEUDO_COLOR:
-
-       if (colormap == null)
-         colormap = visual.getScreen().getDefaultColormap();
-       
-       XColor[] colArray = colormap.getXColors();
-       
-       int numCol = colArray.length;
-       byte[] rmap = new byte[numCol];
-       byte[] gmap = new byte[numCol];
-       byte[] bmap = new byte[numCol];
-       byte[] amap = new byte[numCol];
-       
-       for (int i=0; i < numCol; i++)
-         {
-           XColor color = colArray[i];
-           if (color.getFlags() == Colormap.FLAG_SHARED) {
-             rmap[i] = (byte) (color.getRed()   >> 8);
-             gmap[i] = (byte) (color.getGreen() >> 8);
-             bmap[i] = (byte) (color.getBlue()  >> 8);
-             amap[i] = (byte) 0xff;
-           } // else, leave default zero values...
-
-         }
-
-       pixelCM = new IndexColorModel(visual.getDepth(), numCol,
-                                     rmap, gmap, bmap, amap);
-       break;
-      default:
-       throw new UnsupportedOperationException("not implemented");
-      }
-  }
-  
-  public ColorModel getColorModel(int transparency)
-  {
-    throw new UnsupportedOperationException("not implemented");
-  }
-    
-  public AffineTransform getDefaultTransform()
-  {
-    throw new UnsupportedOperationException("not implemented");
-  }
-
-  public AffineTransform getNormalizingTransform()
-  {
-    throw new UnsupportedOperationException("not implemented");
-  }
-  public Rectangle getBounds()
-  {
-    throw new UnsupportedOperationException("not implemented");
-  }
-
-  Visual getVisual()
-  {
-    return visual;
-  }
-    
-  /* FIXME: This should be moved to XGraphicsDevice... */
-  XFontMetrics getXFontMetrics(java.awt.Font awtFont)
-  {
-    // FIXME: do caching...
-    
-    String family       = "*";
-    String name         = awtFont.getName();
-    String weight       = awtFont.isBold() ? "bold" : "medium";
-    String slant        = awtFont.isItalic() ? "i" : "r";
-    String addStyle     = "*";
-    String pixelSize    = "*";
-    String pointSize    = awtFont.getSize() + "0";
-    String xres         = "*";
-    String yres         = "*";
-    String spacing      = "*";
-    String averageWidth = "*";
-    String charset      = "*";
-    
-    String logicalFontDescription =
-      family    + "-" + name         + "-" + weight    + "-" +
-      slant     + "-" + addStyle     + "-" + pixelSize + "-" +
-      pointSize + "-" + xres         + "-" + yres      + "-" +
-      spacing   + "-" + averageWidth + "-" + charset;
-    
-    Display display = visual.getScreen().getDisplay();
-    gnu.gcj.xlib.Font xfont =
-      new gnu.gcj.xlib.Font(display, logicalFontDescription);
-    return new XFontMetrics(xfont, awtFont);
-  }
-
-  int getPixel(Color color)
-  {
-    int[] components =
-        {
-         color.getRed(),
-         color.getGreen(),
-         color.getBlue(),
-         0xff
-       };
-       
-    ColorModel cm = getColorModel();
-    return cm.getDataElement(components, 0);
-  }
-}