@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer, int byteOffset, int length) { return Float32ArrayNative.create(buffer, byteOffset, length); }
@Override public Float32ArrayNative createFloat32Array(int length) { return Float32ArrayNative.create(length); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer) { return Float32ArrayNative.create(buffer); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer, int byteOffset) { return Float32ArrayNative.create(buffer, byteOffset); }
@Override public float getFloat32(int byteOffset, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int len = Float32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { reverseBytes(uint8Array, ofs, len, tempBuffer, 0); buf = tempBuffer.buffer(); ofs = 0; } return Float32ArrayNative.create(buf, ofs, 1).get(0); }
@Override public void setFloat32(int byteOffset, float value, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int finalOfs = ofs; int len = Float32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { buf = tempBuffer.buffer(); ofs = 0; } Float32ArrayNative.create(buf, ofs, 1).set(0, value); if (littleEndian != nativeLittleEndian) { reverseBytes(tempBuffer, 0, len, uint8Array, finalOfs); } }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer, int byteOffset, int length) { return Float32ArrayNative.create(buffer, byteOffset, length); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer) { return Float32ArrayNative.create(buffer); }
@Override public Float32ArrayNative createFloat32Array(int length) { return Float32ArrayNative.create(length); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer, int byteOffset) { return Float32ArrayNative.create(buffer, byteOffset); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer, int byteOffset, int length) { return Float32ArrayNative.create(buffer, byteOffset, length); }
@Override public Float32ArrayNative createFloat32Array(int length) { return Float32ArrayNative.create(length); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer) { return Float32ArrayNative.create(buffer); }
@Override public Float32ArrayNative createFloat32Array(ArrayBuffer buffer, int byteOffset) { return Float32ArrayNative.create(buffer, byteOffset); }
@Override public float getFloat32(int byteOffset, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int len = Float32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { reverseBytes(uint8Array, ofs, len, tempBuffer, 0); buf = tempBuffer.buffer(); ofs = 0; } return Float32ArrayNative.create(buf, ofs, 1).get(0); }
@Override public float getFloat32(int byteOffset, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int len = Float32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { reverseBytes(uint8Array, ofs, len, tempBuffer, 0); buf = tempBuffer.buffer(); ofs = 0; } return Float32ArrayNative.create(buf, ofs, 1).get(0); }
@Override public void setFloat32(int byteOffset, float value, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int finalOfs = ofs; int len = Float32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { buf = tempBuffer.buffer(); ofs = 0; } Float32ArrayNative.create(buf, ofs, 1).set(0, value); if (littleEndian != nativeLittleEndian) { reverseBytes(tempBuffer, 0, len, uint8Array, finalOfs); } }
@Override public void glUniformMatrix3fv(int location, boolean transpose, DirectFloatBuffer matrix) { WebGL10.glUniformMatrix3fv(location, transpose, Float32ArrayNative.create(((ArrayBufferView) matrix.getDirectBuffer().nativeBuffer()).buffer())); }
@Override public void glUniformMatrix4fv(int location, boolean transpose, DirectFloatBuffer matrix) { WebGL10.glUniformMatrix4fv(location, transpose, Float32ArrayNative.create(((ArrayBufferView) matrix.getDirectBuffer().nativeBuffer()).buffer())); }
public Float32Array copy (FloatBuffer buffer) { if(buffer == null) return Float32ArrayNative.create(0); if (GWT.isProdMode()) { // return ((Float32Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining()); return ((Float32Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(0, buffer.limit()); } else { ensureCapacity(buffer); for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) { floatBuffer.set(j, buffer.get(i)); } return floatBuffer.subarray(0, buffer.remaining()); } }