/** * @param buffer * @param byteOffset * @param byteLength * @return a {@link DataView} instance */ public static DataView create(ArrayBuffer buffer, int byteOffset, int byteLength) { return new DataViewNativeEmul(buffer, byteOffset, byteLength); }
@Override public DataView createDataView(ArrayBuffer buffer, int byteOffset, int byteLength) { if (checkDataViewSupport()) { return DataViewNative.create(buffer, byteOffset, byteLength); } else { return DataViewNativeEmul.create(buffer, byteOffset, byteLength); } }
@Override public float getFloat32(int byteOffset) { return getFloat32(byteOffset, false); }
@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 double getUint32AsDouble(int byteOffset) { return getUint32(byteOffset, false); }
@Override public int getUint16(int byteOffset) { return getUint16(byteOffset, false); }
@Override public int getInt32(int byteOffset) { return getInt32(byteOffset, false); }
@Override public double getFloat64(int byteOffset) { return getFloat64(byteOffset, false); }
@Override public short getInt16(int byteOffset) { return getInt16(byteOffset, false); }
@Override public void setFloat32(int byteOffset, float value) { setFloat32(byteOffset, value, false); }
@Override public int getInt32(int byteOffset, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int len = Int32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { reverseBytes(uint8Array, ofs, len, tempBuffer, 0); buf = tempBuffer.buffer(); ofs = 0; } return Int32ArrayNative.create(buf, ofs, 1).get(0); }
@Override public double getUint32AsDouble(int byteOffset, boolean littleEndian) { return getUint32(byteOffset, littleEndian); }
@Override public int getUint16(int byteOffset) { return getUint16(byteOffset, false); }
@Override public int getInt32(int byteOffset) { return getInt32(byteOffset, false); }
@Override public double getFloat64(int byteOffset) { return getFloat64(byteOffset, false); }
@Override public short getInt16(int byteOffset) { return getInt16(byteOffset, false); }
@Override public void setFloat32(int byteOffset, float value) { setFloat32(byteOffset, value, false); }
@Override public long getUint32(int byteOffset, boolean littleEndian) { ArrayBuffer buf = buffer; int ofs = bufferByteOffset + byteOffset; int len = Uint32Array.BYTES_PER_ELEMENT; if (littleEndian != nativeLittleEndian) { reverseBytes(uint8Array, ofs, len, tempBuffer, 0); buf = tempBuffer.buffer(); ofs = 0; } return Uint32ArrayNative.create(buf, ofs, 1).get(0); }
@Override public DataView createDataView(ArrayBuffer buffer, int byteOffset) { if (checkDataViewSupport()) { return DataViewNative.create(buffer, byteOffset); } else { return DataViewNativeEmul.create(buffer, byteOffset, buffer.byteLength() - byteOffset); } }
@Override public long getUint32(int byteOffset) { return getUint32(byteOffset, false); }