1 line
9.2 KiB
Plaintext
1 line
9.2 KiB
Plaintext
{"version":3,"file":"buildInstructions.mjs","sources":["../../../../src/scene/container/utils/buildInstructions.ts"],"sourcesContent":["import type { InstructionSet } from '../../../rendering/renderers/shared/instructions/InstructionSet';\nimport type { InstructionPipe, RenderPipe } from '../../../rendering/renderers/shared/instructions/RenderPipe';\nimport type { Renderable } from '../../../rendering/renderers/shared/Renderable';\nimport type { Renderer, RenderPipes } from '../../../rendering/renderers/types';\nimport type { Container } from '../Container';\nimport type { RenderGroup } from '../RenderGroup';\n\n/**\n * @param renderGroup\n * @param renderPipes\n * @deprecated since 8.3.0\n */\nexport function buildInstructions(renderGroup: RenderGroup, renderPipes: RenderPipes): void;\nexport function buildInstructions(renderGroup: RenderGroup, renderer: Renderer): void;\nexport function buildInstructions(renderGroup: RenderGroup, rendererOrPipes: RenderPipes | Renderer): void\n{\n const root = renderGroup.root;\n const instructionSet = renderGroup.instructionSet;\n\n instructionSet.reset();\n\n // deprecate the use of renderPipes by finding the renderer attached to the batch pipe as this is always there\n const renderer = (rendererOrPipes as Renderer).renderPipes\n ? (rendererOrPipes as Renderer)\n : (rendererOrPipes as RenderPipes).batch.renderer;\n const renderPipes = renderer.renderPipes;\n\n // TODO add some events / runners for build start\n renderPipes.batch.buildStart(instructionSet);\n renderPipes.blendMode.buildStart();\n renderPipes.colorMask.buildStart();\n\n if (root.sortableChildren)\n {\n root.sortChildren();\n }\n\n collectAllRenderablesAdvanced(root, instructionSet, renderer, true);\n\n // TODO add some events / runners for build end\n renderPipes.batch.buildEnd(instructionSet);\n renderPipes.blendMode.buildEnd(instructionSet);\n}\n\n/**\n * @param container\n * @param instructionSet\n * @param renderer\n * @deprecated since 8.3.0\n */\nexport function collectAllRenderables(container: Container, instructionSet: InstructionSet, renderer: RenderPipes): void;\nexport function collectAllRenderables(container: Container, instructionSet: InstructionSet, renderer: Renderer): void;\nexport function collectAllRenderables(\n container: Container, instructionSet: InstructionSet, rendererOrPipes: Renderer | RenderPipes\n): void\n{\n // deprecate the use of renderPipes by finding the renderer attached to the batch pipe as this is always there\n const renderer = (rendererOrPipes as Renderer).renderPipes\n ? (rendererOrPipes as Renderer)\n : (rendererOrPipes as RenderPipes).batch.renderer;\n\n // if there is 0b01 or 0b10 the return value\n if (container.globalDisplayStatus < 0b111 || !container.includeInBuild) return;\n\n if (container.sortableChildren)\n {\n container.sortChildren();\n }\n\n if (container.isSimple)\n {\n collectAllRenderablesSimple(container, instructionSet, renderer);\n }\n else\n {\n collectAllRenderablesAdvanced(container, instructionSet, renderer, false);\n }\n}\n\nfunction collectAllRenderablesSimple(\n container: Container,\n instructionSet: InstructionSet,\n renderer: Renderer,\n): void\n{\n if (container.renderPipeId)\n {\n const { renderPipes, renderableGC } = renderer;\n\n // TODO add blends in\n renderPipes.blendMode.setBlendMode(container as Renderable, container.groupBlendMode, instructionSet);\n\n container.didViewUpdate = false;\n\n const rp = renderPipes as unknown as Record<string, RenderPipe>;\n\n rp[container.renderPipeId].addRenderable(container as Renderable, instructionSet);\n\n renderableGC.addRenderable(container as Renderable, instructionSet);\n }\n\n if (!container.renderGroup)\n {\n const children = container.children;\n const length = children.length;\n\n for (let i = 0; i < length; i++)\n {\n collectAllRenderables(children[i], instructionSet, renderer);\n }\n }\n}\n\nfunction collectAllRenderablesAdvanced(\n container: Container,\n instructionSet: InstructionSet,\n renderer: Renderer,\n isRoot: boolean\n): void\n{\n const { renderPipes, renderableGC } = renderer;\n\n if (!isRoot && container.renderGroup)\n {\n renderPipes.renderGroup.addRenderGroup(container.renderGroup, instructionSet);\n }\n else\n {\n for (let i = 0; i < container.effects.length; i++)\n {\n const effect = container.effects[i];\n const pipe = renderPipes[effect.pipe as keyof RenderPipes]as InstructionPipe<any>;\n\n pipe.push(effect, container, instructionSet);\n }\n\n const renderPipeId = container.renderPipeId;\n\n if (renderPipeId)\n {\n // TODO add blends in\n renderPipes.blendMode.setBlendMode(container as Renderable, container.groupBlendMode, instructionSet);\n container.didViewUpdate = false;\n\n const pipe = renderPipes[renderPipeId as keyof RenderPipes]as RenderPipe<any>;\n\n pipe.addRenderable(container, instructionSet);\n\n renderableGC.addRenderable(container as Renderable, instructionSet);\n }\n\n const children = container.children;\n\n if (children.length)\n {\n for (let i = 0; i < children.length; i++)\n {\n collectAllRenderables(children[i], instructionSet, renderer);\n }\n }\n\n // loop backwards through effects\n for (let i = container.effects.length - 1; i >= 0; i--)\n {\n const effect = container.effects[i];\n const pipe = renderPipes[effect.pipe as keyof RenderPipes]as InstructionPipe<any>;\n\n pipe.pop(effect, container, instructionSet);\n }\n }\n}\n\n"],"names":[],"mappings":"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"} |