@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
46 lines (34 loc) • 1.09 kB
JavaScript
import { isImageBitmap } from "../../../engine/graphics/texture/isImageBitmap.js";
import { array_push_if_unique } from "../../collection/array/array_push_if_unique.js";
/**
*
* @param {*} value
* @param {Array} result
* @returns {number} number of elements added to result array
* @preserve
*/
export function extractTransferables(value, result) {
let count = 0;
if (typeof value !== "object") {
// not an object, skip
} else if (value instanceof ArrayBuffer) {
if (array_push_if_unique(result, value)) {
count++;
}
} else if (value.buffer instanceof ArrayBuffer) {
if (array_push_if_unique(result, value.buffer)) {
count++;
}
} else if (isImageBitmap(value)) {
if (array_push_if_unique(result, value)) {
count++;
}
} else {
for (let i in value) {
if (value.hasOwnProperty(i)) {
count += extractTransferables(value[i], result);
}
}
}
return count;
}