@needle-tools/engine
Version:
Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in
38 lines • 1.38 kB
JavaScript
import { isDevEnvironment } from "../../engine/debug/index.js";
import { addComponent } from "../../engine/engine_components.js";
import { foreachComponentEnumerator } from "../../engine/engine_gameobject.js";
import { getParam } from "../../engine/engine_utils.js";
export const debug = getParam("debugpost");
let PostprocessingManagerType = null;
export function setPostprocessingManagerType(type) {
PostprocessingManagerType = type;
}
export function findPostProcessingManager(effect) {
let obj = effect.gameObject;
while (obj) {
for (const comp of foreachComponentEnumerator(obj)) {
if (comp.isPostProcessingManager === true) {
return comp;
}
}
obj = obj.parent;
}
return null;
}
export function getPostProcessingManager(effect) {
let manager = findPostProcessingManager(effect);
if (!manager) {
if (PostprocessingManagerType) {
if (debug)
console.warn("Adding postprocessing manager to the scene.");
const scene = effect.scene;
manager = addComponent(scene, PostprocessingManagerType);
}
else {
if (isDevEnvironment())
console.warn("No post processing manager found");
}
}
return manager;
}
//# sourceMappingURL=utils.js.map