Example usage for javax.media.j3d ImageComponent ALLOW_FORMAT_READ

List of usage examples for javax.media.j3d ImageComponent ALLOW_FORMAT_READ

Introduction

In this page you can find the example usage for javax.media.j3d ImageComponent ALLOW_FORMAT_READ.

Prototype

int ALLOW_FORMAT_READ

To view the source code for javax.media.j3d ImageComponent ALLOW_FORMAT_READ.

Click Source Link

Document

Specifies that this ImageComponent object allows reading its format component information.

Usage

From source file:TextureByReference.java

public AnimateTexturesBehavior(Texture2D texP, java.net.URL[] fnames, Appearance appP,
        TextureByReference applet) {// ww w.j ava 2 s  .c om
    int size = fnames.length;
    images = new ImageComponent2D[size];
    BufferedImage bImage;
    TextureLoader loader;
    for (int i = 0; i < size; i++) {
        loader = new TextureLoader(fnames[i], TextureLoader.BY_REFERENCE | TextureLoader.Y_UP, applet);
        images[i] = loader.getImage();
        bImage = images[i].getImage();

        // convert the image to TYPE_4BYTE_ABGR
        currentType = BufferedImage.TYPE_4BYTE_ABGR;
        bImage = ImageOps.convertImage(bImage, currentType);
        // flip the image
        flip = true;
        ImageOps.flipImage(bImage);

        // set the image on the ImageComponent to the new one
        images[i].set(bImage);

        images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
        images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
    }
    texture = texP;
    current = 0;
    max = size;
    wakeupC = new WakeupOnElapsedFrames(20);
    appearance = appP;
}

From source file:TextureByReference.java

public void setFlipImages(boolean b) {
    // double check that flipping is necessary
    if (b != flip) {
        BufferedImage bImage;//ww  w  .  ja  v  a 2 s. co  m

        // these are the same for all images so get info once
        int format = images[0].getFormat();
        boolean byRef = images[0].isByReference();
        boolean yUp = images[0].isYUp();

        // flip all the images
        // have to new ImageComponents because can't set the image at
        // runtime
        for (int i = 0; i < images.length; i++) {
            bImage = images[i].getImage();
            ImageOps.flipImage(bImage);
            // if we are byRef and the bImage type does not match
            // currentType
            // we need to convert it. If we are not byRef we will
            // save converting until it is changed to byRef
            if (byRef && bImage.getType() != currentType) {
                if (currentType != BufferedImage.TYPE_CUSTOM) {
                    bImage = ImageOps.convertImage(bImage, currentType);
                } else if (customType == this.TYPE_CUSTOM_RGBA) {
                    bImage = ImageOps.convertToCustomRGBA(bImage);
                } else {
                    bImage = ImageOps.convertToCustomRGB(bImage);
                }
            }
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }

        // set flip to new value
        flip = b;
    }
}

From source file:TextureByReference.java

public void setYUp(boolean b) {
    // double check that changing yUp is necessary
    if (b != images[0].isYUp()) {

        // these are the same for all images so get info once
        int format = images[0].getFormat();
        boolean byRef = images[0].isByReference();

        // reset yUp on all the images -- have to new ImageComponents
        // because
        // cannot change the value at runtime
        for (int i = 0; i < images.length; i++) {
            // if we are byRef and the bImage type does not match
            // currentType
            // we need to convert it. If we are not byRef we will
            // save converting until it is changed to byRef
            BufferedImage bImage = images[i].getImage();
            if (byRef && bImage.getType() != currentType) {
                //     bImage = ImageOps.convertImage(bImage, currentType);
                if (currentType != BufferedImage.TYPE_CUSTOM) {
                    bImage = ImageOps.convertImage(bImage, currentType);
                } else if (customType == this.TYPE_CUSTOM_RGBA) {
                    bImage = ImageOps.convertToCustomRGBA(bImage);
                } else {
                    bImage = ImageOps.convertToCustomRGB(bImage);
                }/*from   w  w  w  .  j a  v  a2s .  c  o m*/
            }
            images[i] = new ImageComponent2D(format, bImage, byRef, b);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }
    }
}

From source file:TextureByReference.java

public void setByReference(boolean b) {
    // double check that changing is necessary
    if (b != images[0].isByReference()) {

        // these are the same for all images so get info once
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();

        // reset yUp on all the images
        // have to new ImageComponents because cannot set value
        for (int i = 0; i < images.length; i++) {
            // if the bImage type does not match currentType and we are
            // setting
            // to byRef we need to convert it
            BufferedImage bImage = images[i].getImage();
            if (bImage.getType() != currentType && b) {
                //     bImage = ImageOps.convertImage(bImage, currentType);
                if (currentType != BufferedImage.TYPE_CUSTOM) {
                    bImage = ImageOps.convertImage(bImage, currentType);
                } else if (customType == this.TYPE_CUSTOM_RGBA) {
                    bImage = ImageOps.convertToCustomRGBA(bImage);
                } else {
                    bImage = ImageOps.convertToCustomRGB(bImage);
                }/*  w ww .  ja v a 2 s .  c  o  m*/
            }
            images[i] = new ImageComponent2D(format, bImage, b, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }
    }
}

From source file:TextureByReference.java

public void setImageType(int newType) {
    currentType = newType;//from   ww w .j  ava 2s.co m

    // only need to change the images if we are byRef otherwise will change
    // them when we chnage to byRef
    if (images[0].isByReference() == true) {
        // this information is the same for all
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();
        boolean byRef = true;
        for (int i = 0; i < images.length; i++) {
            BufferedImage bImage = images[i].getImage();
            bImage = ImageOps.convertImage(bImage, currentType);
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }
    }
}

From source file:TextureByReference.java

public void setImageTypeCustomRGBA() {
    currentType = BufferedImage.TYPE_CUSTOM;
    customType = this.TYPE_CUSTOM_RGBA;

    // only need to change images if we are byRef otherwise will change
    // them when we change to byRef
    if (images[0].isByReference()) {
        // this information is the same for all
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();
        boolean byRef = true;
        for (int i = 0; i < images.length; i++) {
            BufferedImage bImage = images[i].getImage();
            bImage = ImageOps.convertToCustomRGBA(bImage);
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }//from   w w w.  java  2  s  . c  om
    }
}

From source file:TextureByReference.java

public void setImageTypeCustomRGB() {
    currentType = BufferedImage.TYPE_CUSTOM;
    customType = this.TYPE_CUSTOM_RGB;

    // only need to change images if we are byRef otherwise will change
    // them when we change to byRef
    if (images[0].isByReference()) {
        // this information is the same for all
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();
        boolean byRef = true;
        for (int i = 0; i < images.length; i++) {
            BufferedImage bImage = images[i].getImage();
            bImage = ImageOps.convertToCustomRGB(bImage);
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }//from  w  w  w  . j a v  a2  s .com
    }
}