⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xgraphicsconfiguration.java

📁 gcc的JAVA模块的源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
  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);  }  /**   * Gets the associated device that this configuration describes.   *   * @return the device   */  public GraphicsDevice getDevice()  {    throw new UnsupportedOperationException("not implemented");    }  /**   * Returns a buffered image optimized to this device, so that blitting can   * be supported in the buffered image.   *   * @param w the width of the buffer   * @param h the height of the buffer   * @return the buffered image, or null if none is supported   */  public BufferedImage createCompatibleImage(int width,					     int height,					     int transparency)  {    throw new UnsupportedOperationException("not implemented");  }  /**   * Returns a buffered volatile image optimized to this device, so that   * blitting can be supported in the buffered image. Because the buffer is   * volatile, it can be optimized by native graphics accelerators.   *   * @param w the width of the buffer   * @param h the height of the buffer   * @return the buffered image, or null if none is supported   * @see Component#createVolatileImage(int, int)   * @since 1.4   */  public VolatileImage createCompatibleVolatileImage(int w, int h)  {    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)  {    // If the metrics object for this font is already cached, use it.    // Otherwise create and cache it.    Display display = visual.getScreen ().getDisplay ();    XFontMetrics fm = fontMetricsCache.get (awtFont,display);    if (fm == null)    {      String foundry      = "*";      String family       = awtFont.getName ();      String weight       = awtFont.isBold () ? "bold" : "medium";      String slant        = awtFont.isItalic () ? "i" : "r";      String sWidth       = "*";      String addStyle     = "";      String pixelSize    = "*";      String pointSize    = awtFont.getSize () + "0";      String xres         = "*";      String yres         = "*";      String spacing      = "*";      String averageWidth = "*";      String charset      = "iso10646-1"; // because we use functions like XDrawString16            String logicalFontDescription =        "-" + // FontNameRegistry prefix        foundry   + "-" + family    + "-" + weight       + "-" +        slant     + "-" + sWidth    + "-" + addStyle     + "-" +        pixelSize + "-" + pointSize + "-" + xres         + "-" +        yres      + "-" + spacing   + "-" + averageWidth + "-";            // Try to load a Unicode font.  If that doesn't work, try again, without      // specifying the character set.      try      {        gnu.gcj.xlib.Font xfont = new gnu.gcj.xlib.Font (display, logicalFontDescription + charset);        fm = new XFontMetrics (xfont, awtFont);      }      catch (XException e)      {        gnu.gcj.xlib.Font xfont = new gnu.gcj.xlib.Font (display, logicalFontDescription + "*-*");        fm = new XFontMetrics (xfont, awtFont);      }      fontMetricsCache.put (awtFont,display,fm);    }    return fm;  }  int getPixel(Color color)  {    /* FIXME: consider an integer technique whenever     * the ColorModel is 8 bits per color.     * The problem with using integers is that it doesn't work unless     * the colors are 8 bits each (as in the array), since ColorModel.getDataElement(int[],int)     * expects non-normalized values.  For example, in a 16-bit display mode, you     * would typically have 5 bits each for red and blue, and 6 bits for green.    int[] components =    {      color.getRed (),      color.getGreen (),      color.getBlue (),      0xff    };     */        float[] normalizedComponents =    {      ((float)color.getRed ()) / 255F,      ((float)color.getGreen ()) / 255F,      ((float)color.getBlue ()) / 255F,      1    };    int[] unnormalizedComponents = { 0, 0, 0, 0xff };    ColorModel cm = getColorModel ();    cm.getUnnormalizedComponents(normalizedComponents, 0,				 unnormalizedComponents, 0);    return cm.getDataElement (unnormalizedComponents, 0);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -