gnu.gcj.xlib

Class XImage


public class XImage
extends Object

Structure containing image data that resides on the client side. The format, depth and offset attributes of an XImage determines how bitfields are encoded in a raster image. However, it does not determine how a color is encoded into a bitfield. I.e. the XImage pixel values in a specific structure, but does not determine what colors that will be used to represent these pixel values on the screen.

Field Summary

static int
LEAST_SIGNIFICANT_B_FIRST_ORDER
static int
MOST_SIGNIFICANT_B_FIRST_ORDER
static int
XYBITMAP_FORMAT
static int
XYPIXMAP_FORMAT
static int
ZPIXMAP_FORMAT

Constructor Summary

XImage(Visual visual, int width, int height)
XImage(Visual visual, int width, int height, boolean allocate)
Create a new XImage.
XImage(Visual visual, int depth, int format, int xoffset, int width, int height, int bitmapPad, int bytesPerLine)
XImage(Visual visual, int depth, int format, int xoffset, int width, int height, int bitmapPad, int bytesPerLine, int bitsPerPixel)

Method Summary

protected void
finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
int
getBitmapBitOrder()
int
getBitmapPad()
int
getBitmapUnit()
int
getBitsPerPixel()
int
getBlueMask()
int
getBytesPerLine()
int
getDepth()
int
getFormat()
int
getGreenMask()
int
getHeight()
int
getImageByteOrder()
int
getRedMask()
int
getWidth()
int
getXOffset()
Get the xoffset.
void
init(Visual visual, int depth, int format, int xoffset, int width, int height, int bitmapPad, int bytesPerLine, int bitsPerPixel)
boolean
isZPixmapFormat()
void
setData(byte[] data, int offset)
Attach image data to this XImage.
void
setData(int[] data, int offset)
Attach image data to this XImage
void
setData(short[] data, int offset)
Attach image data to this XImage.
void
setPixel(int x, int y, int pixel)
Set a pixel value at a given position in the image.
String
toString()
Convert this Object to a human-readable String.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

LEAST_SIGNIFICANT_B_FIRST_ORDER

public static final int LEAST_SIGNIFICANT_B_FIRST_ORDER
Field Value:
0

MOST_SIGNIFICANT_B_FIRST_ORDER

public static final int MOST_SIGNIFICANT_B_FIRST_ORDER
Field Value:
1

XYBITMAP_FORMAT

public static final int XYBITMAP_FORMAT
Field Value:
0

XYPIXMAP_FORMAT

public static final int XYPIXMAP_FORMAT
Field Value:
1

ZPIXMAP_FORMAT

public static final int ZPIXMAP_FORMAT
Field Value:
2

Constructor Details

XImage

public XImage(Visual visual,
              int width,
              int height)

XImage

public XImage(Visual visual,
              int width,
              int height,
              boolean allocate)
Create a new XImage.
Parameters:
allocate - specifies whether to automatically allocate memory for the image. It is possible to create the data array elsewhere, so that we can for instance use a DataBufferUShort as data. Ie. not limit ourself to byte arrays. This is done by passing false and calling a setData() method manually after creation.

XImage

public XImage(Visual visual,
              int depth,
              int format,
              int xoffset,
              int width,
              int height,
              int bitmapPad,
              int bytesPerLine)

XImage

public XImage(Visual visual,
              int depth,
              int format,
              int xoffset,
              int width,
              int height,
              int bitmapPad,
              int bytesPerLine,
              int bitsPerPixel)

Method Details

finalize

protected void finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.

Overrides:
finalize in interface Object

getBitmapBitOrder

public final int getBitmapBitOrder()

getBitmapPad

public final int getBitmapPad()

getBitmapUnit

public final int getBitmapUnit()

getBitsPerPixel

public final int getBitsPerPixel()

getBlueMask

public int getBlueMask()

getBytesPerLine

public final int getBytesPerLine()

getDepth

public final int getDepth()

getFormat

public final int getFormat()

getGreenMask

public int getGreenMask()

getHeight

public final int getHeight()

getImageByteOrder

public final int getImageByteOrder()

getRedMask

public int getRedMask()

getWidth

public final int getWidth()

getXOffset

public final int getXOffset()
Get the xoffset. The xoffset avoids the need of shifting the scanlines into place.

init

public void init(Visual visual,
                 int depth,
                 int format,
                 int xoffset,
                 int width,
                 int height,
                 int bitmapPad,
                 int bytesPerLine,
                 int bitsPerPixel)

isZPixmapFormat

public final boolean isZPixmapFormat()

setData

public void setData(byte[] data,
                    int offset)
Attach image data to this XImage.
Parameters:
offset - the index of the first actual data element in the array.

setData

public void setData(int[] data,
                    int offset)
Attach image data to this XImage
Parameters:
offset - the index of the first actual data element in the array. Note: this is not a byte offset.

setData

public void setData(short[] data,
                    int offset)
Attach image data to this XImage.
Parameters:
offset - the index of the first actual data element in the array. Note: this is short offset, not a byte offset.

setPixel

public final void setPixel(int x,
                           int y,
                           int pixel)
Set a pixel value at a given position in the image. This method is slow. Don't use it, except as a fall-back.

toString

public String toString()
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() and such.

It is typical, but not required, to ensure that this method never completes abruptly with a RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).

Overrides:
toString in interface Object
Returns:
the String representing this Object, which may be null

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.