List of usage examples for com.google.gwt.typedarrays.shared Int32Array get
int get(int index);
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); } }