/* * * Adapted from MDrawingSurfaceInfo.java version - 1.3 96/12/20 * */package inferno.awt;import sun.awt.DrawingSurfaceInfo;import sun.awt.PhysicalDrawingSurface;import sun.awt.image.ImageRepresentation;import java.awt.Rectangle;import java.awt.Shape;import java.awt.image.ColorModel;import java.awt.peer.ComponentPeer; // eventually inferno.awt.iComponentPeer ??/** * The iDrawingSurfaceInfo object provides direct access for rendering * on Components maintained by the Inferno iToolkit. * */public class iDrawingSurfaceInfo implements DrawingSurfaceInfo, PhysicalDrawingSurface /* , iDrawingSurface */{ int state; int w, h; ComponentPeer peer = null; // eventually an iComponentPeer ImageRepresentation imgrep; /** * Construct a new iDrawingSurfaceInfo for the specified peer. */ /* To date Inferno doesn't need this constructor from MDrawingSurfaceInfo if it does, we'll need an inferno.awt.iComponentPeer iDrawingSurfaceInfo(iComponentPeer peer) { this.peer = peer; } */ /** * Construct a new iDrawingSurfaceInfo for the specified offscreen image. */ iDrawingSurfaceInfo(ImageRepresentation imgrep) { this.imgrep = imgrep; } // implementation of lock from sun.awt.DrawingSurfaceInfo interface public native int lock(); // implementation of unlock from sun.awt.DrawingSurfaceInfo interface public native void unlock(); // implementation of getBounds from sun.awt.DrawingSurfaceInfo interface public Rectangle getBounds() { Rectangle r; // comment out to keep compiler happy, eventually may // need this code ? - jfs /* if (peer != null) { r = peer.target.getBounds(); r.setLocation(0, 0); } else { r = new Rectangle(0, 0, imgrep.width, imgrep.height); } return r; */ return (r = new Rectangle(0, 0, imgrep.width, imgrep.height)); } // implementation of getSurface from sun.awt.DrawingSurfaceInfo interface public PhysicalDrawingSurface getSurface() { return this; } // implementation of getClip from sun.awt.DrawingSurfaceInfo interface public Shape getClip() { return getBounds(); } public ColorModel getColorModel() { return iToolkit.getStaticColorModel(); } /** * Returns a an Object pointer to the rendered $Draw->Image * represented by this object. */ final native Object getDrawable(); /** * Return the depth (log2 of pixel width) of the * $Draw->Image represented by this object. */ final native int getDepth(); /* for future reference: X11DrawingSurfaceInfo implements X11DrawingSurface: public native int getDisplay(); public native int getDrawable(); public native int getDepth(); public native int getVisualID(); public native int getColormapID(); public ColorModel getColorModel(); and WDrawingSurfaceInfo implements WDrawingSurface: public native int getHWnd(); public native int getHBitmap(); public native int getPBits(); public native int getHDC(); public native int getDepth(); public native int getHPalette(); */}
/*
*
* Adapted from MDrawingSurfaceInfo.java version - 1.3 96/12/20
*
*/
package inferno.awt;
import sun.awt.DrawingSurfaceInfo;
import sun.awt.PhysicalDrawingSurface;
import sun.awt.image.ImageRepresentation;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.image.ColorModel;
import java.awt.peer.ComponentPeer; // eventually inferno.awt.iComponentPeer ??
/**
* The iDrawingSurfaceInfo object provides direct access for rendering
* on Components maintained by the Inferno iToolkit.
*
*/
public class iDrawingSurfaceInfo
implements DrawingSurfaceInfo, PhysicalDrawingSurface /* , iDrawingSurface */
{
int state;
int w, h;
ComponentPeer peer = null; // eventually an iComponentPeer
ImageRepresentation imgrep;
/**
* Construct a new iDrawingSurfaceInfo for the specified peer.
*/
/* To date Inferno doesn't need this constructor from
MDrawingSurfaceInfo if it does, we'll need an
inferno.awt.iComponentPeer
iDrawingSurfaceInfo(iComponentPeer peer) {
this.peer = peer;
}
*/
/**
* Construct a new iDrawingSurfaceInfo for the specified offscreen image.
*/
iDrawingSurfaceInfo(ImageRepresentation imgrep) {
this.imgrep = imgrep;
}
// implementation of lock from sun.awt.DrawingSurfaceInfo interface
public native int lock();
// implementation of unlock from sun.awt.DrawingSurfaceInfo interface
public native void unlock();
// implementation of getBounds from sun.awt.DrawingSurfaceInfo interface
public Rectangle getBounds() {
Rectangle r;
// comment out to keep compiler happy, eventually may
// need this code ? - jfs
/*
if (peer != null) {
r = peer.target.getBounds();
r.setLocation(0, 0);
} else {
r = new Rectangle(0, 0, imgrep.width, imgrep.height);
}
return r;
*/
return (r = new Rectangle(0, 0, imgrep.width, imgrep.height));
}
// implementation of getSurface from sun.awt.DrawingSurfaceInfo interface
public PhysicalDrawingSurface getSurface() {
return this;
}
// implementation of getClip from sun.awt.DrawingSurfaceInfo interface
public Shape getClip() {
return getBounds();
}
public ColorModel getColorModel() {
return iToolkit.getStaticColorModel();
}
/**
* Returns a an Object pointer to the rendered $Draw->Image
* represented by this object.
*/
final native Object getDrawable();
/**
* Return the depth (log2 of pixel width) of the
* $Draw->Image represented by this object.
*/
final native int getDepth();
/*
for future reference:
X11DrawingSurfaceInfo implements X11DrawingSurface:
public native int getDisplay();
public native int getDrawable();
public native int getDepth();
public native int getVisualID();
public native int getColormapID();
public ColorModel getColorModel();
and WDrawingSurfaceInfo implements WDrawingSurface:
public native int getHWnd();
public native int getHBitmap();
public native int getPBits();
public native int getHDC();
public native int getDepth();
public native int getHPalette();
*/
}