javax.media.j3d
Class ImageComponentRetained

java.lang.Object
  extended by javax.media.j3d.IndexedObject
      extended by javax.media.j3d.SceneGraphObjectRetained
          extended by javax.media.j3d.NodeComponentRetained
              extended by javax.media.j3d.ImageComponentRetained
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
ImageComponent2DRetained, ImageComponent3DRetained

abstract class ImageComponentRetained
extends NodeComponentRetained

Abstract class that is used to define 2D or 3D ImageComponent classes used in a Java 3D scene graph. This is used for texture images, background images and raster components of Shape3D nodes.


Nested Class Summary
(package private)  class ImageComponentRetained.ImageData
          Wrapper class for image data.
(package private) static class ImageComponentRetained.ImageDataType
           
(package private) static class ImageComponentRetained.ImageFormatType
           
 
Field Summary
(package private)  boolean abgrSupported
           
private  int apiFormat
           
(package private)  boolean byReference
           
(package private)  int depth
           
private  boolean enforceNonPowerOfTwoSupport
           
(package private)  java.lang.Object evaluateExtLock
           
(package private)  GeometryLock geomLock
           
(package private)  int height
           
(package private) static int IMAGE_CHANGED
           
(package private) static int IMAGE_DATA_TYPE_BYTE_ARRAY
           
(package private) static int IMAGE_DATA_TYPE_BYTE_BUFFER
           
(package private) static int IMAGE_DATA_TYPE_INT_ARRAY
           
(package private) static int IMAGE_DATA_TYPE_INT_BUFFER
           
(package private) static int IMAGE_SIZE_512X512
           
private  ImageComponent.ImageClass imageClass
           
(package private)  ImageComponentRetained.ImageData imageData
           
private  ImageComponentRetained.ImageData imageDataPowerOfTwo
           
private  ImageComponentRetained.ImageFormatType imageFormatType
           
private  int imageType
           
(package private)  boolean imageTypeIsSupported
           
(package private)  boolean npotSupported
           
private  int numberOfComponents
           
(package private)  int numXTiles
           
(package private)  int numYTiles
           
private  java.awt.image.AffineTransformOp powerOfTwoATOp
           
private  java.lang.Object[] refImage
           
(package private) static int SUBIMAGE_CHANGED
           
(package private)  int tileh
           
(package private)  int tilew
           
(package private) static int TYPE_BYTE_ABGR
           
(package private) static int TYPE_BYTE_BGR
           
(package private) static int TYPE_BYTE_GRAY
           
(package private) static int TYPE_BYTE_LA
           
(package private) static int TYPE_BYTE_RGB
           
(package private) static int TYPE_BYTE_RGBA
           
(package private) static int TYPE_INT_ARGB
           
(package private) static int TYPE_INT_BGR
           
(package private) static int TYPE_INT_RGB
           
(package private) static int TYPE_USHORT_GRAY
           
private  int unitsPerPixel
           
private  boolean usedByOffScreenCanvas
           
(package private)  java.util.ArrayList userList
           
(package private)  int width
           
(package private)  boolean yUp
           
 
Fields inherited from class javax.media.j3d.NodeComponentRetained
changedFrequent, compChanged, duplicateOnCloneTree, mirror, refCnt, refCount, users
 
Fields inherited from class javax.media.j3d.SceneGraphObjectRetained
DONT_MERGE, inBackgroundGroup, inSetLive, MERGE, MERGE_DONE, mergeFlag, onUpdateList, source
 
Fields inherited from class javax.media.j3d.IndexedObject
listIdx
 
Constructor Summary
ImageComponentRetained()
           
 
Method Summary
(package private)  void addUser(NodeComponentRetained node)
           
(package private)  void convertImageDataFromABGRToRGBA()
           
(package private)  void copyImageByBlock(java.awt.image.BufferedImage bi, int depthIndex, ImageComponentRetained.ImageData data)
           
(package private)  void copyImageLineByLine(java.awt.image.BufferedImage bi, int srcX, int srcY, int dstX, int dstY, int depthIndex, int copyWidth, int copyHeight, ImageComponentRetained.ImageData data)
           
(package private)  void copySupportedImageToImageData(java.awt.image.RenderedImage ri, int depthIndex, ImageComponentRetained.ImageData data)
          copy complete region of a RenderedImage to ImageComponent's imageData object.
(package private)  void copySupportedImageToImageData(java.awt.image.RenderedImage ri, int srcX, int srcY, int dstX, int dstY, int depthIndex, int copyWidth, int copyHeight, ImageComponentRetained.ImageData data)
          Copy specified region of image data from RenderedImage to ImageComponent's imageData object
(package private)  void copyToRefImage(int depth)
          Copy supported ImageType from ImageData to the user defined bufferedImage
(package private)  void copyToRefImageWithFormatConversion(int depth)
          Copy image to the user defined bufferedImage ( 3 or 4 components only )
(package private)  void copyUnsupportedImageToImageData(java.awt.image.BufferedImage bi, int srcX, int srcY, int dstX, int dstY, int depthIndex, int copyWidth, int copyHeight, ImageComponentRetained.ImageData data)
           
(package private)  void copyUnsupportedImageToImageData(java.awt.image.RenderedImage ri, int depthIndex, ImageComponentRetained.ImageData data)
           
(package private)  void copyUnsupportedImageToImageData(java.awt.image.RenderedImage ri, int srcX, int srcY, int dstX, int dstY, int depthIndex, int copyWidth, int copyHeight, ImageComponentRetained.ImageData data)
           
(package private)  void copyUnsupportedNioImageToImageData(NioImageBuffer nioImage, int srcX, int srcY, int dstX, int dstY, int copyWidth, int copyHeight, ImageComponentRetained.ImageData iData)
           
(package private)  void createBlankImageData()
           
(package private)  ImageComponentRetained.ImageData createNioImageBufferDataObject(NioImageBuffer nioImageBuffer)
           
(package private)  ImageComponentRetained.ImageData createRenderedImageDataObject(java.awt.image.RenderedImage byRefImage)
           
(package private)  ImageComponentRetained.ImageData createRenderedImageDataObject(java.awt.image.RenderedImage byRefImage, int dataWidth, int dataHeight)
           
(package private)  void evaluateExtABGR(int ext)
           
(package private)  void evaluateExtensions(Canvas3D canvas)
           
(package private)  void evaluateExtNonPowerOfTwo(int ext)
           
(package private)  int evaluateImageType(java.awt.image.RenderedImage ri)
           
private  int getCeilPowerOf2(int value)
           
private  int getClosestPowerOf2(int value)
           
(package private) static java.lang.Object getDataElementBuffer(java.awt.image.Raster ras)
           
(package private)  int getFormat()
          Retrieves the apiFormat of this image component object.
(package private)  int getHeight()
          Retrieves the height of this image component object.
(package private)  ImageComponent.ImageClass getImageClass()
           
(package private)  ImageComponentRetained.ImageData getImageData(boolean npotSupportNeeded)
           
(package private)  int getImageDataTypeIntValue()
           
(package private)  ImageComponentRetained.ImageFormatType getImageFormatType()
           
(package private)  int getImageFormatTypeIntValue(boolean powerOfTwoData)
           
(package private)  int getImageType()
           
(package private)  int getNumberOfComponents()
           
(package private)  java.lang.Object getRefImage(int index)
           
(package private)  int getUnitsPerPixel()
           
(package private)  boolean getUsedByOffScreen()
           
(package private)  int getWidth()
          Retrieves the width of this image component object.
(package private)  void handleFrequencyChange(int bit)
           
(package private)  boolean is3ByteRGB(java.awt.image.RenderedImage ri)
           
(package private)  boolean is4ByteRGBA(java.awt.image.RenderedImage ri)
           
(package private)  boolean isByReference()
           
(package private)  boolean isImageTypeSupported()
           
(package private)  boolean isImageTypeSupported(NioImageBuffer nioImgBuf)
           
(package private)  boolean isImageTypeSupported(java.awt.image.RenderedImage ri)
           
(package private)  boolean isSubImageTypeEqual(java.awt.image.RenderedImage ri)
           
(package private)  boolean isYUp()
           
(package private)  void processParams(int format, int width, int height, int depth)
          Check if ImageComponent parameters have valid values.
(package private)  void removeUser(NodeComponentRetained node)
           
(package private)  void sendMessage(int attrMask, java.lang.Object attr)
           
(package private)  void setByReference(boolean byReference)
           
(package private)  void setEnforceNonPowerOfTwoSupport(boolean npot)
           
(package private)  void setFormat(int format)
           
(package private)  void setImageClass(NioImageBuffer image)
           
(package private)  void setImageClass(java.awt.image.RenderedImage image)
           
(package private)  void setImageFormatType(ImageComponentRetained.ImageFormatType ift)
           
(package private)  void setLive(boolean inBackgroundGroup, int refCount)
           
(package private)  void setNumberOfComponents(int numberOfComponents)
           
(package private)  void setRefImage(java.lang.Object image, int index)
           
(package private)  void setUnitsPerPixel(int ipp)
           
(package private)  void setUsedByOffScreen(boolean used)
           
(package private)  void setYUp(boolean yUp)
           
private  void updateImageDataPowerOfTwo(int depthIndex)
           
(package private)  void updateMirrorObject(int component, java.lang.Object value)
          ImageComponent object doesn't really have mirror object.
(package private)  boolean useBilinearFilter()
           
 
Methods inherited from class javax.media.j3d.NodeComponentRetained
addAMirrorUser, addUser, clearLive, clone, copyMirrorUsers, createMirrorObject, decRefCnt, doSetLive, getDuplicateOnCloneTree, getInImmCtx, incRefCnt, initMirrorObject, notifyUsers, removeAMirrorUser, removeMirrorUsers, removeUser, set, setDuplicateOnCloneTree, setFrequencyChangeMask, setInImmCtx
 
Methods inherited from class javax.media.j3d.SceneGraphObjectRetained
clearLive, clearLive, compile, doSetLive, doSetLive, getSource, getVirtualUniverse, isInSetLive, isStatic, markAsLive, merge, mergeTransform, setCompiled, setLive, setLive, setSource, traverse
 
Methods inherited from class javax.media.j3d.IndexedObject
getIdxUsed, incIdxUsed
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IMAGE_CHANGED

static final int IMAGE_CHANGED
See Also:
Constant Field Values

SUBIMAGE_CHANGED

static final int SUBIMAGE_CHANGED
See Also:
Constant Field Values

TYPE_BYTE_BGR

static final int TYPE_BYTE_BGR
See Also:
Constant Field Values

TYPE_BYTE_RGB

static final int TYPE_BYTE_RGB
See Also:
Constant Field Values

TYPE_BYTE_ABGR

static final int TYPE_BYTE_ABGR
See Also:
Constant Field Values

TYPE_BYTE_RGBA

static final int TYPE_BYTE_RGBA
See Also:
Constant Field Values

TYPE_BYTE_LA

static final int TYPE_BYTE_LA
See Also:
Constant Field Values

TYPE_BYTE_GRAY

static final int TYPE_BYTE_GRAY
See Also:
Constant Field Values

TYPE_USHORT_GRAY

static final int TYPE_USHORT_GRAY
See Also:
Constant Field Values

TYPE_INT_BGR

static final int TYPE_INT_BGR
See Also:
Constant Field Values

TYPE_INT_RGB

static final int TYPE_INT_RGB
See Also:
Constant Field Values

TYPE_INT_ARGB

static final int TYPE_INT_ARGB
See Also:
Constant Field Values

IMAGE_SIZE_512X512

static final int IMAGE_SIZE_512X512
See Also:
Constant Field Values

IMAGE_DATA_TYPE_BYTE_ARRAY

static final int IMAGE_DATA_TYPE_BYTE_ARRAY
See Also:
Constant Field Values

IMAGE_DATA_TYPE_INT_ARRAY

static final int IMAGE_DATA_TYPE_INT_ARRAY
See Also:
Constant Field Values

IMAGE_DATA_TYPE_BYTE_BUFFER

static final int IMAGE_DATA_TYPE_BYTE_BUFFER
See Also:
Constant Field Values

IMAGE_DATA_TYPE_INT_BUFFER

static final int IMAGE_DATA_TYPE_INT_BUFFER
See Also:
Constant Field Values

apiFormat

private int apiFormat

width

int width

height

int height

depth

int depth

byReference

boolean byReference

yUp

boolean yUp

imageTypeIsSupported

boolean imageTypeIsSupported

abgrSupported

boolean abgrSupported

npotSupported

boolean npotSupported

unitsPerPixel

private int unitsPerPixel

numberOfComponents

private int numberOfComponents

imageType

private int imageType

imageFormatType

private ImageComponentRetained.ImageFormatType imageFormatType

imageData

ImageComponentRetained.ImageData imageData

imageClass

private ImageComponent.ImageClass imageClass

imageDataPowerOfTwo

private ImageComponentRetained.ImageData imageDataPowerOfTwo

powerOfTwoATOp

private java.awt.image.AffineTransformOp powerOfTwoATOp

enforceNonPowerOfTwoSupport

private boolean enforceNonPowerOfTwoSupport

usedByOffScreenCanvas

private boolean usedByOffScreenCanvas

refImage

private java.lang.Object[] refImage

evaluateExtLock

java.lang.Object evaluateExtLock

geomLock

GeometryLock geomLock

tilew

int tilew

tileh

int tileh

numXTiles

int numXTiles

numYTiles

int numYTiles

userList

java.util.ArrayList userList
Constructor Detail

ImageComponentRetained

ImageComponentRetained()
Method Detail

getWidth

int getWidth()
Retrieves the width of this image component object.

Returns:
the width of this image component object

getHeight

int getHeight()
Retrieves the height of this image component object.

Returns:
the height of this image component object

getFormat

int getFormat()
Retrieves the apiFormat of this image component object.

Returns:
the apiFormat of this image component object

setFormat

void setFormat(int format)

setByReference

void setByReference(boolean byReference)

isByReference

boolean isByReference()

setYUp

void setYUp(boolean yUp)

isYUp

boolean isYUp()

getUnitsPerPixel

int getUnitsPerPixel()

setUnitsPerPixel

void setUnitsPerPixel(int ipp)

getImageClass

ImageComponent.ImageClass getImageClass()

setImageClass

void setImageClass(java.awt.image.RenderedImage image)

setImageClass

void setImageClass(NioImageBuffer image)

setEnforceNonPowerOfTwoSupport

void setEnforceNonPowerOfTwoSupport(boolean npot)

setUsedByOffScreen

void setUsedByOffScreen(boolean used)

getUsedByOffScreen

boolean getUsedByOffScreen()

getNumberOfComponents

int getNumberOfComponents()

setNumberOfComponents

void setNumberOfComponents(int numberOfComponents)

getImageDataTypeIntValue

int getImageDataTypeIntValue()

getImageFormatTypeIntValue

int getImageFormatTypeIntValue(boolean powerOfTwoData)

getImageType

int getImageType()

setImageFormatType

void setImageFormatType(ImageComponentRetained.ImageFormatType ift)

getImageFormatType

ImageComponentRetained.ImageFormatType getImageFormatType()

setRefImage

void setRefImage(java.lang.Object image,
                 int index)

getRefImage

java.lang.Object getRefImage(int index)

getImageData

ImageComponentRetained.ImageData getImageData(boolean npotSupportNeeded)

useBilinearFilter

boolean useBilinearFilter()

isImageTypeSupported

boolean isImageTypeSupported()

processParams

void processParams(int format,
                   int width,
                   int height,
                   int depth)
Check if ImageComponent parameters have valid values.


evaluateImageType

int evaluateImageType(java.awt.image.RenderedImage ri)

is3ByteRGB

boolean is3ByteRGB(java.awt.image.RenderedImage ri)

is4ByteRGBA

boolean is4ByteRGBA(java.awt.image.RenderedImage ri)

isSubImageTypeEqual

boolean isSubImageTypeEqual(java.awt.image.RenderedImage ri)

createBlankImageData

void createBlankImageData()

isImageTypeSupported

boolean isImageTypeSupported(NioImageBuffer nioImgBuf)

isImageTypeSupported

boolean isImageTypeSupported(java.awt.image.RenderedImage ri)

createNioImageBufferDataObject

ImageComponentRetained.ImageData createNioImageBufferDataObject(NioImageBuffer nioImageBuffer)

createRenderedImageDataObject

ImageComponentRetained.ImageData createRenderedImageDataObject(java.awt.image.RenderedImage byRefImage,
                                                               int dataWidth,
                                                               int dataHeight)

updateImageDataPowerOfTwo

private void updateImageDataPowerOfTwo(int depthIndex)

createRenderedImageDataObject

ImageComponentRetained.ImageData createRenderedImageDataObject(java.awt.image.RenderedImage byRefImage)

copySupportedImageToImageData

void copySupportedImageToImageData(java.awt.image.RenderedImage ri,
                                   int srcX,
                                   int srcY,
                                   int dstX,
                                   int dstY,
                                   int depthIndex,
                                   int copyWidth,
                                   int copyHeight,
                                   ImageComponentRetained.ImageData data)
Copy specified region of image data from RenderedImage to ImageComponent's imageData object


copyImageLineByLine

void copyImageLineByLine(java.awt.image.BufferedImage bi,
                         int srcX,
                         int srcY,
                         int dstX,
                         int dstY,
                         int depthIndex,
                         int copyWidth,
                         int copyHeight,
                         ImageComponentRetained.ImageData data)

copyImageByBlock

void copyImageByBlock(java.awt.image.BufferedImage bi,
                      int depthIndex,
                      ImageComponentRetained.ImageData data)

copySupportedImageToImageData

void copySupportedImageToImageData(java.awt.image.RenderedImage ri,
                                   int depthIndex,
                                   ImageComponentRetained.ImageData data)
copy complete region of a RenderedImage to ImageComponent's imageData object.


copyUnsupportedNioImageToImageData

void copyUnsupportedNioImageToImageData(NioImageBuffer nioImage,
                                        int srcX,
                                        int srcY,
                                        int dstX,
                                        int dstY,
                                        int copyWidth,
                                        int copyHeight,
                                        ImageComponentRetained.ImageData iData)

copyUnsupportedImageToImageData

void copyUnsupportedImageToImageData(java.awt.image.RenderedImage ri,
                                     int depthIndex,
                                     ImageComponentRetained.ImageData data)

copyUnsupportedImageToImageData

void copyUnsupportedImageToImageData(java.awt.image.BufferedImage bi,
                                     int srcX,
                                     int srcY,
                                     int dstX,
                                     int dstY,
                                     int depthIndex,
                                     int copyWidth,
                                     int copyHeight,
                                     ImageComponentRetained.ImageData data)

copyUnsupportedImageToImageData

void copyUnsupportedImageToImageData(java.awt.image.RenderedImage ri,
                                     int srcX,
                                     int srcY,
                                     int dstX,
                                     int dstY,
                                     int depthIndex,
                                     int copyWidth,
                                     int copyHeight,
                                     ImageComponentRetained.ImageData data)

evaluateExtensions

void evaluateExtensions(Canvas3D canvas)

evaluateExtABGR

void evaluateExtABGR(int ext)

getClosestPowerOf2

private int getClosestPowerOf2(int value)

getCeilPowerOf2

private int getCeilPowerOf2(int value)

evaluateExtNonPowerOfTwo

void evaluateExtNonPowerOfTwo(int ext)

convertImageDataFromABGRToRGBA

void convertImageDataFromABGRToRGBA()

copyToRefImage

void copyToRefImage(int depth)
Copy supported ImageType from ImageData to the user defined bufferedImage


copyToRefImageWithFormatConversion

void copyToRefImageWithFormatConversion(int depth)
Copy image to the user defined bufferedImage ( 3 or 4 components only )


addUser

void addUser(NodeComponentRetained node)

removeUser

void removeUser(NodeComponentRetained node)

setLive

void setLive(boolean inBackgroundGroup,
             int refCount)
Overrides:
setLive in class NodeComponentRetained

updateMirrorObject

void updateMirrorObject(int component,
                        java.lang.Object value)
ImageComponent object doesn't really have mirror object. But it's using the updateMirrorObject interface to propagate the changes to the users

Overrides:
updateMirrorObject in class NodeComponentRetained

sendMessage

final void sendMessage(int attrMask,
                       java.lang.Object attr)

handleFrequencyChange

void handleFrequencyChange(int bit)
Overrides:
handleFrequencyChange in class SceneGraphObjectRetained

getDataElementBuffer

static java.lang.Object getDataElementBuffer(java.awt.image.Raster ras)


Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.