📄 xoffscreenimage.java
字号:
/* Copyright (C) 2000, 2003 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of theLibgcj License. Please consult the file "LIBGCJ_LICENSE" fordetails. */package gnu.awt.xlib;import java.awt.Image;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GraphicsConfiguration;import java.awt.image.ColorModel;import java.awt.image.ImageObserver;import java.awt.image.ImageProducer;import java.util.Hashtable;import gnu.awt.j2d.DirectRasterGraphics;import gnu.awt.j2d.Graphics2DImpl;import gnu.awt.j2d.IntegerGraphicsState;import gnu.gcj.xlib.Drawable;import gnu.gcj.xlib.Pixmap;import gnu.gcj.xlib.Screen;import gnu.gcj.xlib.Visual;/** Image class for xlib off-screen buffers. * The image is stored in a server-side pixmap for best performance. * This class supports getGraphics, so you can draw on the pixmap, and is * specially handled when doing drawImage, so that the image copy is done * entirely in the X server. * This class does not support rasterization, for which you'd need an XImage. * * @author scott gilbertson <scottg@mantatest.com> <sgilbertson@cogeco.ca> */public class XOffScreenImage extends Image implements IntegerGraphicsState.ScreenCoupledImage{ private Pixmap pixmap; private XGraphicsConfiguration config; private int width; private int height; /** Create a new XOffScreenImage * @param config Graphics configuration, to compare against on-screen * components and to create the appropriate Graphics * @param drawable The drawable with which the image is compatible * @param width The width of the image * @param height The height of the image */ XOffScreenImage (XGraphicsConfiguration config, Drawable drawable, int width, int height) { this.config = config; this.width = width; this.height = height; pixmap = new Pixmap (drawable, width, height, drawable.getDepth ()); } /** Get the pixmap which contains this image * @return The pixmap */ public Pixmap getPixmap () { return pixmap; } /** Flushes (that is, destroys) any resources used for this image. This * includes the actual image data. */ public void flush () { // FIXME: should dispose pixmap pixmap = null; } /** Returns a graphics context object for drawing an off-screen object. * This method is only valid for off-screen objects. * * @return a graphics context object for an off-screen object * @see Graphics#createImage(int, int) */ public Graphics getGraphics () { DirectRasterGraphics gfxDevice = new XGraphics (pixmap, config); IntegerGraphicsState igState = new IntegerGraphicsState (gfxDevice); Graphics2DImpl gfx2d = new Graphics2DImpl (config); gfx2d.setState (igState); return gfx2d; } /** Returns the height of the image, or -1 if it is unknown. If the * image height is unknown, the observer object will be notified when * the value is known. * * @param observer the image observer for this object * @return the height in pixels * @see #getWidth(ImageObserver) */ public int getHeight (ImageObserver observer) { return height; } /** Returns the height of the image, or -1 if it is unknown. If the * image height is unknown, the observer object will be notified when * the value is known. * * @return the height in pixels * @see #getWidth() */ public int getHeight () { return height; } /** Returns the image producer object for this object. The producer is the * object which generates pixels for this image. * * @return the image producer for this object */ public ImageProducer getSource () { throw new UnsupportedOperationException ("getSource not supported"); } /** Returns the width of the image, or -1 if it is unknown. If the * image width is unknown, the observer object will be notified when * the value is known. * * @param observer the image observer for this object * @return the width in pixels * @see #getHeight(ImageObserver) */ public int getWidth (ImageObserver observer) { return width; } /** Returns the width of the image, or -1 if it is unknown. If the * image width is unknown, the observer object will be notified when * the value is known. * * @return the width in pixels * @see #getHeight() */ public int getWidth () { return width; } /** This method requests a named property for an object. The value of the * property is returned. The value <code>UndefinedProperty</code> is * returned if there is no property with the specified name. The value * <code>null</code> is returned if the properties for the object are * not yet known. In this case, the specified image observer is notified * when the properties are known. * * @param name the requested property name * @param observer the image observer for this object * @return the named property, if available * @see #UndefinedProperty */ public Object getProperty (String name, ImageObserver observer) { return null; } /** Get the GraphicsConfiguration to which this image is coupled * @return the GraphicsConfiguration */ public GraphicsConfiguration getGraphicsConfiguration () { return config; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -