UNPKG

@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
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