UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

42 lines 1.99 kB
import { castShadowChanged } from "../memo/castShadowChanged"; import { positionChanged } from "../memo/positionChanged"; import { quaternionChanged } from "../memo/quaternionChanged"; import { shadowModePtr } from "../pointers/shadowModePtr"; import updateShadow from "../display/utils/updateShadow"; import { shadowResolutionPtr } from "../pointers/shadowResolutionPtr"; import deferredRenderSystemWithData from "./utils/deferredRenderSystemWithData"; const maxResolution = 1024; export const [addUpdateShadowSystem, deleteUpdateShadowSystem] = deferredRenderSystemWithData((self, data) => { if (!shadowModePtr[0]) { data.shadowMode && updateShadow(self.object3d.shadow); data.shadowMode = shadowModePtr[0]; return shadowResolutionPtr[0] >= maxResolution; } data.shadowMode = shadowModePtr[0]; if (!self.object3d.intensity || !self.shadows) return shadowResolutionPtr[0] >= maxResolution; if (shadowModePtr[0] === "physics") { if (positionChanged(self.object3d) || quaternionChanged(self.object3d)) { updateShadow(self.object3d.shadow); return shadowResolutionPtr[0] >= maxResolution; } const nearby = self.queryNearby(self.distance); if (data.count !== nearby.length) { data.count = nearby.length; updateShadow(self.object3d.shadow); return shadowResolutionPtr[0] >= maxResolution; } for (const manager of nearby) if (positionChanged(manager.object3d) || quaternionChanged(manager.object3d) || castShadowChanged(manager.object3d)) { updateShadow(self.object3d.shadow); return shadowResolutionPtr[0] >= maxResolution; } return shadowResolutionPtr[0] >= maxResolution; } updateShadow(self.object3d.shadow); return shadowResolutionPtr[0] >= maxResolution; }); //# sourceMappingURL=updateShadowSystem.js.map