wonder.js
Version:
140 lines (133 loc) • 11.9 kB
JavaScript
'use strict';
var Caml_array = require("bs-platform/lib/js/caml_array.js");
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 StateDataMain$Wonderjs = require("../../../data/StateDataMain.js");
var IsDebugMainService$Wonderjs = require("../../../state/IsDebugMainService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var BufferTextureService$Wonderjs = require("../../../../../record/main/texture/BufferTextureService.js");
var DisposeTextureService$Wonderjs = require("../../../../../primitive/texture/DisposeTextureService.js");
var DisposeComponentService$Wonderjs = require("../../../../../primitive/component/DisposeComponentService.js");
var DisposeTypeArrayService$Wonderjs = require("../../../../../primitive/buffer/DisposeTypeArrayService.js");
var BufferSizeTextureService$Wonderjs = require("../../../../../record/main/texture/BufferSizeTextureService.js");
var DisposeTextureMainService$Wonderjs = require("../../DisposeTextureMainService.js");
var GroupBasicSourceTextureService$Wonderjs = require("../../../../../record/main/texture/source/basic_source/GroupBasicSourceTextureService.js");
var BufferBasicSourceTextureService$Wonderjs = require("../../../../../record/main/texture/source/basic_source/BufferBasicSourceTextureService.js");
var RecordBasicSourceTextureMainService$Wonderjs = require("./RecordBasicSourceTextureMainService.js");
function isAlive(texture, param) {
return DisposeTextureService$Wonderjs.isAlive(texture, param[/* disposedIndexArray */11]);
}
function _disposeData(texture, state) {
var basicSourceTextureRecord = RecordBasicSourceTextureMainService$Wonderjs.getRecord(state);
var newrecord = Caml_array.caml_array_dup(state);
newrecord[/* basicSourceTextureRecord */18] = /* record */[
/* index */basicSourceTextureRecord[/* index */0],
/* wrapSs */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getWrapSsSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultWrapS(/* () */0), basicSourceTextureRecord[/* wrapSs */1]),
/* wrapTs */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getWrapTsSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultWrapT(/* () */0), basicSourceTextureRecord[/* wrapTs */2]),
/* magFilters */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getMagFiltersSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultMagFilter(/* () */0), basicSourceTextureRecord[/* magFilters */3]),
/* minFilters */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getMinFiltersSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultMinFilter(/* () */0), basicSourceTextureRecord[/* minFilters */4]),
/* formats */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getFormatsSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultFormat(/* () */0), basicSourceTextureRecord[/* formats */5]),
/* types */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getTypesSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultType(/* () */0), basicSourceTextureRecord[/* types */6]),
/* isNeedUpdates */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getIsNeedUpdatesSize(/* () */0)), BufferTextureService$Wonderjs.getDefaultIsNeedUpdate(/* () */0), basicSourceTextureRecord[/* isNeedUpdates */7]),
/* flipYs */DisposeTypeArrayService$Wonderjs.deleteAndResetUint8(Caml_int32.imul(texture, BufferSizeTextureService$Wonderjs.getFlipYsSize(/* () */0)), BufferBasicSourceTextureService$Wonderjs.getDefaultFlipY(/* () */0), basicSourceTextureRecord[/* flipYs */8]),
/* sourceMap */DisposeComponentService$Wonderjs.disposeSparseMapData(texture, basicSourceTextureRecord[/* sourceMap */9]),
/* glTextureMap */basicSourceTextureRecord[/* glTextureMap */10],
/* disposedIndexArray */basicSourceTextureRecord[/* disposedIndexArray */11],
/* needAddedSourceArray */DisposeTextureMainService$Wonderjs.disposeNeedAddedSourceArray(texture, basicSourceTextureRecord[/* needAddedSourceArray */12]),
/* needInitedTextureIndexArray */DisposeTextureMainService$Wonderjs.disposeNeedInitedSourceArray(texture, basicSourceTextureRecord[/* needInitedTextureIndexArray */13]),
/* needDisposedTextureIndexArray */basicSourceTextureRecord[/* needDisposedTextureIndexArray */14],
/* nameMap */DisposeComponentService$Wonderjs.disposeSparseMapData(texture, basicSourceTextureRecord[/* nameMap */15]),
/* materialsMap */basicSourceTextureRecord[/* materialsMap */16]
];
return newrecord;
}
function handleDispose(isRemoveTexture, materialData, textureArr, state) {
Contract$WonderLog.requireCheck((function (param) {
return DisposeComponentService$Wonderjs.checkComponentShouldAliveWithBatchDispose(textureArr, isAlive, RecordBasicSourceTextureMainService$Wonderjs.getRecord(state));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
return ArrayService$WonderCommonlib.reduceOneParam((function (state, texture) {
var basicSourceTextureRecord = RecordBasicSourceTextureMainService$Wonderjs.getRecord(state);
var basicSourceTextureRecord$1 = GroupBasicSourceTextureService$Wonderjs.removeMaterial(materialData, texture, basicSourceTextureRecord);
if (isRemoveTexture) {
var newrecord = Caml_array.caml_array_dup(state);
newrecord[/* basicSourceTextureRecord */18] = basicSourceTextureRecord$1;
return newrecord;
} else {
var match = GroupBasicSourceTextureService$Wonderjs.isGroupBasicSourceTexture(texture, basicSourceTextureRecord$1);
if (match) {
var newrecord$1 = Caml_array.caml_array_dup(state);
newrecord$1[/* basicSourceTextureRecord */18] = basicSourceTextureRecord$1;
return newrecord$1;
} else {
var state$1 = _disposeData(texture, state);
var basicSourceTextureRecord$2 = RecordBasicSourceTextureMainService$Wonderjs.getRecord(state$1);
var newrecord$2 = Caml_array.caml_array_dup(state$1);
newrecord$2[/* basicSourceTextureRecord */18] = /* record */[
/* index */basicSourceTextureRecord$2[/* index */0],
/* wrapSs */basicSourceTextureRecord$2[/* wrapSs */1],
/* wrapTs */basicSourceTextureRecord$2[/* wrapTs */2],
/* magFilters */basicSourceTextureRecord$2[/* magFilters */3],
/* minFilters */basicSourceTextureRecord$2[/* minFilters */4],
/* formats */basicSourceTextureRecord$2[/* formats */5],
/* types */basicSourceTextureRecord$2[/* types */6],
/* isNeedUpdates */basicSourceTextureRecord$2[/* isNeedUpdates */7],
/* flipYs */basicSourceTextureRecord$2[/* flipYs */8],
/* sourceMap */basicSourceTextureRecord$2[/* sourceMap */9],
/* glTextureMap */basicSourceTextureRecord$2[/* glTextureMap */10],
/* disposedIndexArray */DisposeTextureService$Wonderjs.addDisposeIndex(texture, basicSourceTextureRecord$2[/* disposedIndexArray */11]),
/* needAddedSourceArray */basicSourceTextureRecord$2[/* needAddedSourceArray */12],
/* needInitedTextureIndexArray */basicSourceTextureRecord$2[/* needInitedTextureIndexArray */13],
/* needDisposedTextureIndexArray */basicSourceTextureRecord$2[/* needDisposedTextureIndexArray */14],
/* nameMap */basicSourceTextureRecord$2[/* nameMap */15],
/* materialsMap */basicSourceTextureRecord$2[/* materialsMap */16]
];
return newrecord$2;
}
}
}), state, textureArr);
}
function handleDisposeTexture(texture, isRemoveTexture, state) {
Contract$WonderLog.requireCheck((function (param) {
return DisposeComponentService$Wonderjs.checkComponentShouldAlive(texture, isAlive, RecordBasicSourceTextureMainService$Wonderjs.getRecord(state));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
var basicSourceTextureRecord = RecordBasicSourceTextureMainService$Wonderjs.getRecord(state);
var basicSourceTextureRecord$1 = GroupBasicSourceTextureService$Wonderjs.clearMaterial(texture, basicSourceTextureRecord);
if (isRemoveTexture) {
var newrecord = Caml_array.caml_array_dup(state);
newrecord[/* basicSourceTextureRecord */18] = basicSourceTextureRecord$1;
return newrecord;
} else {
var state$1 = _disposeData(texture, state);
var basicSourceTextureRecord$2 = RecordBasicSourceTextureMainService$Wonderjs.getRecord(state$1);
var newrecord$1 = Caml_array.caml_array_dup(state$1);
return Contract$WonderLog.ensureCheck((function (state) {
return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("texture:" + (String(texture) + " not to be group"), "is"), (function (param) {
return Contract$WonderLog.assertFalse(GroupBasicSourceTextureService$Wonderjs.isGroupBasicSourceTexture(texture, RecordBasicSourceTextureMainService$Wonderjs.getRecord(state)));
}));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData), (newrecord$1[/* basicSourceTextureRecord */18] = /* record */[
/* index */basicSourceTextureRecord$2[/* index */0],
/* wrapSs */basicSourceTextureRecord$2[/* wrapSs */1],
/* wrapTs */basicSourceTextureRecord$2[/* wrapTs */2],
/* magFilters */basicSourceTextureRecord$2[/* magFilters */3],
/* minFilters */basicSourceTextureRecord$2[/* minFilters */4],
/* formats */basicSourceTextureRecord$2[/* formats */5],
/* types */basicSourceTextureRecord$2[/* types */6],
/* isNeedUpdates */basicSourceTextureRecord$2[/* isNeedUpdates */7],
/* flipYs */basicSourceTextureRecord$2[/* flipYs */8],
/* sourceMap */basicSourceTextureRecord$2[/* sourceMap */9],
/* glTextureMap */basicSourceTextureRecord$2[/* glTextureMap */10],
/* disposedIndexArray */DisposeTextureService$Wonderjs.addDisposeIndex(texture, basicSourceTextureRecord$2[/* disposedIndexArray */11]),
/* needAddedSourceArray */basicSourceTextureRecord$2[/* needAddedSourceArray */12],
/* needInitedTextureIndexArray */basicSourceTextureRecord$2[/* needInitedTextureIndexArray */13],
/* needDisposedTextureIndexArray */basicSourceTextureRecord$2[/* needDisposedTextureIndexArray */14],
/* nameMap */basicSourceTextureRecord$2[/* nameMap */15],
/* materialsMap */basicSourceTextureRecord$2[/* materialsMap */16]
], newrecord$1));
}
}
exports.isAlive = isAlive;
exports._disposeData = _disposeData;
exports.handleDispose = handleDispose;
exports.handleDisposeTexture = handleDisposeTexture;
/* Log-WonderLog Not a pure module */