Example usage for com.google.gwt.typedarrays.shared Int32Array get

List of usage examples for com.google.gwt.typedarrays.shared Int32Array get

Introduction

In this page you can find the example usage for com.google.gwt.typedarrays.shared Int32Array get.

Prototype

int get(int index);

Source Link

Document

Retrieve one element of this view.

Usage

From source file:com.lizardtech.djvu.GPixmap.java

License:Open Source License

/**
 * Initialize this pixmap to the specified size and fill in the specified color.
 *
 * @param arows number of rows/*  w w w .  j  ava  2 s  . c o  m*/
 * @param acolumns number of columns
 * @param filler fill color
 *
 * @return the initialized pixmap
 */
public GPixmap init(int arows, int acolumns, GPixel filler) {
    //    boolean needFill=false;
    if ((arows != nrows) || (acolumns != ncolumns)) {
        data = null;
        nrows = arows;
        ncolumns = acolumns;
    }

    final int npix = rowOffset(rows());

    if (npix > 0) {
        if (data == null) {
            setImageData(imageDataFactory.createImageData(ncolumns, nrows));
            if (filler == null) {
                for (int i = 0; i < npix; i++)
                    data.set(i * ncolors + 3, 0xFF);
            }
        }

        if (filler != null) {
            data.set(redOffset, filler.redByte());
            data.set(greenOffset, filler.greenByte());
            data.set(blueOffset, filler.blueByte());
            data.set(3, 0xFF);
            Int32Array fillBuffer = TypedArrays.createInt32Array(data.buffer());
            int fillValue = fillBuffer.get(0);
            for (int i = 0; i < npix; i++)
                fillBuffer.set(i, fillValue);
        }
    }

    return this;
}

From source file:com.shc.webgl4j.client.WEBGL_draw_buffers.java

License:Open Source License

public static void glDrawBuffersWEBGL(Int32Array buffers) {
    JsArrayInteger array = JsArrayInteger.createArray(buffers.length()).cast();

    for (int i = 0; i < buffers.length(); i++)
        array.push(buffers.get(i));

    glDrawBuffersWEBGL(array);/*from  ww  w .java 2 s  . c o m*/
}

From source file:thothbot.parallax.core.client.textures.CompressedTexture.java

License:Open Source License

/**
 * Adapted from @toji's DDS utils/*from  www .ja va  2 s  . c  o m*/
 * <a href="https://github.com/toji/webgl-texture-utils/blob/master/texture-util/dds.js">github.com/toji</a>
 * <p>
 * All values and structures referenced from: 
 * <a href="http://msdn.microsoft.com/en-us/library/bb943991.aspx/">msdn.microsoft.com</a>
 * 
 * @param buffer
 * @param loadMipmaps
 */
private void parseDDS(ArrayBuffer buffer, boolean loadMipmaps) {
    //      var dds = { mipmaps: [], width: 0, height: 0, format: null, mipmapCount: 1 };

    int DDS_MAGIC = 0x20534444;

    int DDSD_CAPS = 0x1, DDSD_HEIGHT = 0x2, DDSD_WIDTH = 0x4, DDSD_PITCH = 0x8, DDSD_PIXELFORMAT = 0x1000,
            DDSD_MIPMAPCOUNT = 0x20000, DDSD_LINEARSIZE = 0x80000, DDSD_DEPTH = 0x800000;

    int DDSCAPS_COMPLEX = 0x8, DDSCAPS_MIPMAP = 0x400000, DDSCAPS_TEXTURE = 0x1000;

    int DDSCAPS2_CUBEMAP = 0x200, DDSCAPS2_CUBEMAP_POSITIVEX = 0x400, DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,
            DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000, DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,
            DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000, DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,
            DDSCAPS2_VOLUME = 0x200000;

    int DDPF_ALPHAPIXELS = 0x1, DDPF_ALPHA = 0x2, DDPF_FOURCC = 0x4, DDPF_RGB = 0x40, DDPF_YUV = 0x200,
            DDPF_LUMINANCE = 0x20000;

    int FOURCC_DXT1 = fourCCToInt32("DXT1");
    int FOURCC_DXT3 = fourCCToInt32("DXT3");
    int FOURCC_DXT5 = fourCCToInt32("DXT5");

    // The header length in 32 bit ints
    int headerLengthInt = 31;

    // Offsets into the header array

    int off_magic = 0;

    int off_size = 1;
    int off_flags = 2;
    int off_height = 3;
    int off_width = 4;

    int off_mipmapCount = 7;

    int off_pfFlags = 20;
    int off_pfFourCC = 21;

    // Parse header

    Int32Array header = Int32ArrayNative.create(buffer, 0, headerLengthInt);

    if (header.get(off_magic) != DDS_MAGIC) {
        Log.error("ImageUtils.parseDDS(): Invalid magic number in DDS header");
        return;
    }

    if ((header.get(off_pfFlags) & DDPF_FOURCC) == 0) {
        Log.error("ImageUtils.parseDDS(): Unsupported format, must contain a FourCC code");
        return;
    }

    int blockBytes;

    int fourCC = header.get(off_pfFourCC);

    if (fourCC == FOURCC_DXT1) {
        blockBytes = 8;
        this.compressedFormat = WebGLCompressedTextureS3tc.COMPRESSED_RGB_S3TC_DXT1_EXT;
    } else if (fourCC == FOURCC_DXT3) {
        blockBytes = 16;
        this.compressedFormat = WebGLCompressedTextureS3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT;
    } else if (fourCC == FOURCC_DXT5) {
        blockBytes = 16;
        this.compressedFormat = WebGLCompressedTextureS3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT;
    } else {
        Log.error("ImageUtils.parseDDS(): Unsupported FourCC code: ", int32ToFourCC(fourCC));
        return;
    }

    int mipmapCount = 1;

    if (((header.get(off_flags) & DDSD_MIPMAPCOUNT) != 0) && loadMipmaps != false) {
        mipmapCount = Math.max(1, header.get(off_mipmapCount));
    }

    //        setWidth( header.get( off_width ) );
    //        setHeight( header.get( off_height ) );

    int dataOffset = header.get(off_size) + 4;

    // Extract mipmaps buffers

    int width = header.get(off_width);
    int height = header.get(off_height);

    for (int i = 0; i < mipmapCount; i++) {
        int dataLength = Math.max(4, width) / 4 * Math.max(4, height) / 4 * blockBytes;
        Uint8Array byteArray = Uint8ArrayNative.create(buffer, dataOffset, dataLength);

        DataTexture mipmap = new DataTexture(width, height);
        //TODO: change to google
        //         mipmap.setData(byteArray);
        mipmaps.add(mipmap);

        dataOffset += dataLength;

        width = (int) Math.max(width * 0.5, 1);
        height = (int) Math.max(height * 0.5, 1);
    }
}