wonder.js
Version:
67 lines (62 loc) • 2.98 kB
JavaScript
;
var Caml_array = require("bs-platform/lib/js/caml_array.js");
var TypeArrayService$Wonderjs = require("../../../primitive/buffer/TypeArrayService.js");
var BufferMeshRendererService$Wonderjs = require("../../../record/main/meshRenderer/BufferMeshRendererService.js");
var RecordMeshRendererMainService$Wonderjs = require("../meshRenderer/RecordMeshRendererMainService.js");
function _restoreTypeArrays(currentMeshRecord, targetMeshRecord) {
var match = currentMeshRecord[/* drawModes */2] === targetMeshRecord[/* drawModes */2] && currentMeshRecord[/* isRenders */3] === targetMeshRecord[/* isRenders */3];
if (match) {
return /* tuple */[
currentMeshRecord,
targetMeshRecord
];
} else {
RecordMeshRendererMainService$Wonderjs.setAllTypeArrDataToDefault(currentMeshRecord[/* index */0], /* tuple */[
BufferMeshRendererService$Wonderjs.getDefaultDrawMode(/* () */0),
BufferMeshRendererService$Wonderjs.getDefaultIsRender(/* () */0)
], /* tuple */[
currentMeshRecord[/* drawModes */2],
currentMeshRecord[/* isRenders */3]
]);
TypeArrayService$Wonderjs.fillUint8ArrayWithUint8Array(/* tuple */[
currentMeshRecord[/* drawModes */2],
0
], /* tuple */[
targetMeshRecord[/* drawModes */2],
0
], targetMeshRecord[/* drawModes */2].length);
TypeArrayService$Wonderjs.fillUint8ArrayWithUint8Array(/* tuple */[
currentMeshRecord[/* isRenders */3],
0
], /* tuple */[
targetMeshRecord[/* isRenders */3],
0
], targetMeshRecord[/* isRenders */3].length);
return /* tuple */[
currentMeshRecord,
targetMeshRecord
];
}
}
function restore(currentState, targetState) {
var currentMeshRecord = RecordMeshRendererMainService$Wonderjs.getRecord(currentState);
var targetMeshRecord = RecordMeshRendererMainService$Wonderjs.getRecord(targetState);
var match = _restoreTypeArrays(currentMeshRecord, targetMeshRecord);
var targetMeshRecord$1 = match[1];
var currentMeshRecord$1 = match[0];
var newrecord = Caml_array.caml_array_dup(targetState);
newrecord[/* meshRendererRecord */24] = /* record */[
/* index */targetMeshRecord$1[/* index */0],
/* buffer */targetMeshRecord$1[/* buffer */1],
/* drawModes */currentMeshRecord$1[/* drawModes */2],
/* isRenders */currentMeshRecord$1[/* isRenders */3],
/* basicMaterialRenderGameObjectMap */targetMeshRecord$1[/* basicMaterialRenderGameObjectMap */4],
/* lightMaterialRenderGameObjectMap */targetMeshRecord$1[/* lightMaterialRenderGameObjectMap */5],
/* gameObjectMap */targetMeshRecord$1[/* gameObjectMap */6],
/* disposedIndexArray */targetMeshRecord$1[/* disposedIndexArray */7]
];
return newrecord;
}
exports._restoreTypeArrays = _restoreTypeArrays;
exports.restore = restore;
/* TypeArrayService-Wonderjs Not a pure module */