OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [gnu/] [java/] [awt/] [peer/] [x/] [ZPixmapDataBuffer.java] - Rev 769

Compare with Previous | Blame | View Log

package gnu.java.awt.peer.x;
 
import gnu.x11.Display;
import gnu.x11.image.ZPixmap;
 
import java.awt.GraphicsEnvironment;
import java.awt.image.DataBuffer;
 
/**
 * A DataBuffer implementation that is based on a ZPixmap. This is used
 * as backing store for BufferedImages.
 */
class ZPixmapDataBuffer
  extends DataBuffer
{
 
  /**
   * The backing ZPixmap.
   */
  private ZPixmap zpixmap;
 
  /**
   * Creates a new ZPixmapDataBuffer with a specified width and height.
   *
   * @param d the X display
   * @param w the width
   * @param h the height
   */
  ZPixmapDataBuffer(int w, int h)
  {
    super(TYPE_BYTE, w * h * 3); // TODO: Support non-24-bit-resolutions.
    GraphicsEnvironment env =
      GraphicsEnvironment.getLocalGraphicsEnvironment();
    XGraphicsDevice dev = (XGraphicsDevice) env.getDefaultScreenDevice();
    Display d = dev.getDisplay();
    zpixmap = new ZPixmap(d, w, h, d.default_pixmap_format);
  }
 
  /**
   * Creates a ZPixmapDataBuffer from an existing ZPixmap.
   *
   * @param zpixmap the ZPixmap to wrap
   */
  ZPixmapDataBuffer(ZPixmap zpixmap)
  {
    super(TYPE_BYTE, zpixmap.get_data_length());
    this.zpixmap = zpixmap;
  }
 
  @Override
  public int getElem(int bank, int i)
  {
    return 0xff & zpixmap.get_data_element(i);
  }
 
  @Override
  public void setElem(int bank, int i, int val)
  {
    zpixmap.set_data_element(i, (byte) val);
  }
 
  ZPixmap getZPixmap()
  {
    return zpixmap;
  }
 
}
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.