wonder.js
Version:
194 lines (180 loc) • 7.29 kB
JavaScript
;
var Caml_int32 = require("bs-platform/lib/js/caml_int32.js");
var Log$WonderLog = require("wonder-log/lib/js/src/Log.js");
var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js");
var BufferUtils$Wonderjs = require("../utils/BufferUtils.js");
var ArrayService$Wonderjs = require("../../service/atom/ArrayService.js");
var StateDataMain$Wonderjs = require("../../service/state/main/data/StateDataMain.js");
var DataViewCommon$Wonderjs = require("../generate/DataViewCommon.js");
var IsDebugMainService$Wonderjs = require("../../service/state/main/state/IsDebugMainService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
function getDefault11ImageUint8ArrayData(param) {
return /* tuple */[
new Uint8Array(/* array */[
137,
80,
78,
71,
13,
10,
26,
10,
0,
0,
0,
13,
73,
72,
68,
82,
0,
0,
0,
1,
0,
0,
0,
1,
8,
6,
0,
0,
0,
31,
21,
196,
137,
0,
0,
0,
13,
73,
68,
65,
84,
24,
87,
99,
248,
255,
255,
255,
25,
0,
9,
200,
3,
202,
69,
126,
87,
75,
0,
0,
0,
0,
73,
69,
78,
68,
174,
66,
96,
130
]),
"image/png",
"load default11 image error"
];
}
function _check(currentByteOffset, endByteOffset) {
return Contract$WonderLog.requireCheck((function (param) {
return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("currentByteOffset === endByteOffset", "not"), (function (param) {
return Contract$WonderLog.Operators[/* = */0](currentByteOffset, endByteOffset);
}));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
}
function getStreamChunkArr(param, dataView) {
var currentByteOffset = BufferUtils$Wonderjs.getWDBHeaderTotalByteLength(/* () */0) + BufferUtils$Wonderjs.alignedLength(param[0]) | 0;
var endByteOffset = currentByteOffset + param[1] | 0;
var currentByteOffsetRef = currentByteOffset;
var streamChunkArr = /* array */[];
while(currentByteOffsetRef < endByteOffset) {
var match = DataViewCommon$Wonderjs.getUint32_1(currentByteOffsetRef, dataView);
var match$1 = DataViewCommon$Wonderjs.getUint16_1(match[1], dataView);
var match$2 = DataViewCommon$Wonderjs.getUint32_1(match$1[1], dataView);
var match$3 = DataViewCommon$Wonderjs.getUint8_1(match$2[1], dataView);
currentByteOffsetRef = match$3[1];
ArrayService$Wonderjs.push(/* record */[
/* byteLength */match[0],
/* index */match$2[0],
/* type_ */match$3[0],
/* componentType */match$1[0]
], streamChunkArr);
};
_check(currentByteOffsetRef, endByteOffset);
return streamChunkArr;
}
function _writeStreamChunk(streamChunkArr, byteOffset, dataView) {
var byteOffset$1 = BufferUtils$Wonderjs.alignedLength(ArrayService$WonderCommonlib.reduceOneParam((function (byteOffset, param) {
var byteOffset$1 = DataViewCommon$Wonderjs.writeUint32_1(param[/* byteLength */0], byteOffset, dataView);
var byteOffset$2 = DataViewCommon$Wonderjs.writeUint16_1(param[/* componentType */3], byteOffset$1, dataView);
var byteOffset$3 = DataViewCommon$Wonderjs.writeUint32_1(param[/* index */1], byteOffset$2, dataView);
return DataViewCommon$Wonderjs.writeUint8_1(param[/* type_ */2], byteOffset$3, dataView);
}), byteOffset, streamChunkArr));
return /* tuple */[
byteOffset$1,
dataView
];
}
function _getStreamChunkArrByteLength(streamChunkArr) {
return Caml_int32.imul(((Uint32Array.BYTES_PER_ELEMENT << 1) + Uint16Array.BYTES_PER_ELEMENT | 0) + Uint8Array.BYTES_PER_ELEMENT | 0, streamChunkArr.length);
}
var getStreamChunkTotalByteLength = _getStreamChunkArrByteLength;
function buildStreamChunk(byteOffset, streamChunkArr, dataView) {
return _writeStreamChunk(streamChunkArr, byteOffset, dataView);
}
function _getBinBufferAlignedByteLength(bufferViewDataArr) {
return ArrayService$WonderCommonlib.reduceOneParam((function (byteLength, param) {
return byteLength + param[2] | 0;
}), 0, bufferViewDataArr);
}
function _writeBinBufferByBufferViewData(totalByteOffset, param, binBufferDataView, totalDataView) {
var oldBufferView = param[0];
var bufferViewByteOffsetRef = BufferUtils$Wonderjs.unsafeGetBufferViewByteOffset(oldBufferView);
var totalByteOffsetRef = totalByteOffset;
var binBuffer = binBufferDataView.buffer;
var totalBuffer = totalDataView.buffer;
BufferUtils$Wonderjs.mergeUint8Array(new Uint8Array(totalBuffer), new Uint8Array(binBuffer).subarray(bufferViewByteOffsetRef, bufferViewByteOffsetRef + oldBufferView[/* byteLength */2] | 0), totalByteOffsetRef);
return /* tuple */[
totalByteOffset + param[2] | 0,
binBufferDataView,
totalDataView
];
}
var getBinBufferChunkTotalAlignedByteLength = _getBinBufferAlignedByteLength;
function buildBinBufferChunk(byteOffset, bufferViewDataArr, binBuffer, dataView) {
var binBufferDataView = DataViewCommon$Wonderjs.create(binBuffer);
var match = ArrayService$WonderCommonlib.reduceOneParam((function (param, bufferViewData) {
return _writeBinBufferByBufferViewData(param[0], bufferViewData, param[1], param[2]);
}), /* tuple */[
byteOffset,
binBufferDataView,
dataView
], bufferViewDataArr);
return /* tuple */[
match[0],
match[2]
];
}
exports.getDefault11ImageUint8ArrayData = getDefault11ImageUint8ArrayData;
exports._check = _check;
exports.getStreamChunkArr = getStreamChunkArr;
exports._writeStreamChunk = _writeStreamChunk;
exports._getStreamChunkArrByteLength = _getStreamChunkArrByteLength;
exports.getStreamChunkTotalByteLength = getStreamChunkTotalByteLength;
exports.buildStreamChunk = buildStreamChunk;
exports._getBinBufferAlignedByteLength = _getBinBufferAlignedByteLength;
exports._writeBinBufferByBufferViewData = _writeBinBufferByBufferViewData;
exports.getBinBufferChunkTotalAlignedByteLength = getBinBufferChunkTotalAlignedByteLength;
exports.buildBinBufferChunk = buildBinBufferChunk;
/* Log-WonderLog Not a pure module */