List of usage examples for com.google.gwt.typedarrays.client Int8Array create
public static final native Int8Array create(ArrayBuffer buffer, int byteOffset, int length) ;
From source file:playn.html.HtmlGL20.java
License:Apache License
/** * Returns the typed array of the given native buffer. * Set byteSize to -1 to use remaining() */// w w w . j ava 2 s . co m protected ArrayBufferView getTypedArray(Buffer buffer, int type, int byteSize) { if (!(buffer instanceof HasArrayBufferView)) { throw new RuntimeException("Native buffer required " + buffer); } HasArrayBufferView arrayHolder = (HasArrayBufferView) buffer; int bufferElementSize = arrayHolder.getElementSize(); ArrayBufferView webGLArray = arrayHolder.getTypedArray(); if (byteSize == -1) { byteSize = buffer.remaining() * bufferElementSize; } if (byteSize == buffer.capacity() * bufferElementSize && type == arrayHolder.getElementType()) { return webGLArray; } int byteOffset = webGLArray.getByteOffset() + buffer.position() * bufferElementSize; switch (type) { case FLOAT: return Float32Array.create(webGLArray.getBuffer(), byteOffset, byteSize / 4); case UNSIGNED_BYTE: return Uint8Array.create(webGLArray.getBuffer(), byteOffset, byteSize); case UNSIGNED_SHORT: return Uint16Array.create(webGLArray.getBuffer(), byteOffset, byteSize / 2); case INT: return Int32Array.create(webGLArray.getBuffer(), byteOffset, byteSize / 4); case SHORT: return Int16Array.create(webGLArray.getBuffer(), byteOffset, byteSize / 2); case BYTE: return Int8Array.create(webGLArray.getBuffer(), byteOffset, byteSize); default: throw new IllegalArgumentException("Type: " + type); } }