@woosh/meep-engine 3.16.0 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/editor/particles/effect/ParticleEffectDocument.d.ts +21 -6
- package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -1
- package/editor/particles/effect/ParticleEffectDocument.js +38 -17
- package/editor/view/node-graph/NodeGraphClipboard.d.ts +186 -0
- package/editor/view/node-graph/NodeGraphClipboard.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphClipboard.js +231 -0
- package/editor/view/node-graph/NodeGraphEditorView.d.ts +59 -1
- package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphEditorView.js +248 -5
- package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphView.js +84 -8
- package/editor/view/node-graph/actions/connection_bind_actions.d.ts +23 -0
- package/editor/view/node-graph/actions/connection_bind_actions.d.ts.map +1 -0
- package/editor/view/node-graph/actions/connection_bind_actions.js +39 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleCodeEditorView.js +4 -3
- package/editor/view/particles/effect/ParticleCurveEditorView.d.ts +20 -0
- package/editor/view/particles/effect/ParticleCurveEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleCurveEditorView.js +574 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleEmitterInspectorView.js +27 -1
- package/editor/view/particles/effect/ParticleGradientEditorView.d.ts +24 -0
- package/editor/view/particles/effect/ParticleGradientEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleGradientEditorView.js +472 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts +5 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleGraphEditorView.js +61 -31
- package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -1
- package/editor/view/particles/effect/ParticleNodeParametersView.js +33 -0
- package/editor/view/particles/effect/particle-editor.css +123 -35
- package/package.json +1 -1
- package/src/core/binary/allocator/OffsetAllocator.d.ts +25 -16
- package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
- package/src/core/binary/allocator/OffsetAllocator.js +10 -1
- package/src/core/collection/array/typed/float32_array_hash.d.ts +21 -0
- package/src/core/collection/array/typed/float32_array_hash.d.ts.map +1 -0
- package/src/core/collection/array/typed/float32_array_hash.js +38 -0
- package/src/core/graph/csr/CSRGraph.d.ts +8 -1
- package/src/core/graph/csr/CSRGraph.d.ts.map +1 -1
- package/src/core/graph/csr/CSRGraph.js +14 -6
- package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts +24 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/LayoutProblem.js +27 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts +26 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.js +28 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts +92 -3
- package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/RouteGrid.js +405 -242
- package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts +50 -5
- package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/RouteSearch.js +160 -24
- package/src/core/model/node-graph/visual/layout/RouteSet.d.ts +7 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/RouteSet.js +8 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.js +9 -3
- package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_build_problem.js +7 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts +9 -3
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.js +17 -3
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts +9 -6
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_node_graph.js +49 -7
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts +11 -1
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/layout_order_layers.js +135 -16
- package/src/core/model/node-graph/visual/layout/route_connections.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/route_connections.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/route_connections.js +716 -309
- package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts +3 -2
- package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/route_grid_build.js +7 -15
- package/src/core/model/node-graph/visual/layout/route_nudge.d.ts +6 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/layout/route_nudge.js +42 -13
- package/src/engine/animation/AnimationUtils.js +246 -246
- package/src/engine/animation/Animations.js +74 -74
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +2078 -2078
- package/src/engine/ecs/EventType.d.ts +0 -1
- package/src/engine/ecs/EventType.js +1 -26
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts +1 -1
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_write_local_rotation.js +3 -7
- package/src/engine/ecs/parent/EntityNode.d.ts.map +1 -1
- package/src/engine/ecs/parent/EntityNode.js +4 -9
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +360 -364
- package/src/engine/ecs/transform/TRANSFORM64_EVENT_CHANGE.d.ts +41 -0
- package/src/engine/ecs/transform/TRANSFORM64_EVENT_CHANGE.d.ts.map +1 -0
- package/src/engine/ecs/transform/TRANSFORM64_EVENT_CHANGE.js +40 -0
- package/src/engine/ecs/transform/TRANSFORM64_MIGRATION_PLAN_2026_09_04.md +8 -0
- package/src/engine/ecs/transform/t64_announce_change.d.ts +10 -7
- package/src/engine/ecs/transform/t64_announce_change.d.ts.map +1 -1
- package/src/engine/ecs/transform/t64_announce_change.js +12 -12
- package/src/engine/ecs/transform-attachment/TRANSFORM_ATTACHMENT_EVENT_CHANGE.d.ts +30 -0
- package/src/engine/ecs/transform-attachment/TRANSFORM_ATTACHMENT_EVENT_CHANGE.d.ts.map +1 -0
- package/src/engine/ecs/transform-attachment/TRANSFORM_ATTACHMENT_EVENT_CHANGE.js +29 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +13 -21
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +4 -8
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +4 -8
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem.js +9 -19
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticleEmitterSystem.js +4 -8
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem.js +4 -10
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts +1 -1
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts.map +1 -1
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +4 -8
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.js +218 -218
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +2 -5
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListenerSystem.js +6 -8
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +0 -4
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.js +5 -11
- package/src/shade/playground/particle_editor/README.md +43 -2
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_prototype.js +4 -5
- package/src/shade/playground/particle_system/particle_scene.js +4 -4
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +13 -1
- package/src/shade/renderer/particles/DESIGN.md +104 -19
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +64 -50
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +176 -78
- package/src/shade/renderer/particles/ParticleConstants.d.ts +59 -23
- package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
- package/src/shade/renderer/particles/ParticleConstants.js +66 -23
- package/src/shade/renderer/particles/ParticleRenderMode.d.ts +19 -0
- package/src/shade/renderer/particles/ParticleRenderMode.d.ts.map +1 -0
- package/src/shade/renderer/particles/ParticleRenderMode.js +33 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +167 -166
- package/src/shade/renderer/particles/data/particle_emitter_record.d.ts +37 -0
- package/src/shade/renderer/particles/data/particle_emitter_record.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/particle_emitter_record.js +109 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +3 -3
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +303 -303
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts +18 -0
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.js +152 -133
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts +0 -11
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +720 -621
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/compile_particle_graph.js +8 -3
- package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/flatten_particle_graph.js +244 -213
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +6 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +294 -319
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.js +524 -517
- package/src/shade/renderer/particles/graph/groups/particle_groups_psrdnoise.d.ts +22 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_psrdnoise.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_psrdnoise.js +517 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/groups/simplex_reference.js +185 -159
- package/src/shade/renderer/particles/graph/make_particle_group.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/make_particle_group.js +2 -20
- package/src/shade/renderer/particles/graph/particle_compare_ops.d.ts +17 -0
- package/src/shade/renderer/particles/graph/particle_compare_ops.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_compare_ops.js +22 -0
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts +28 -8
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.js +49 -25
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +40 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_node_parameters.js +312 -234
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_node_presentation.js +59 -3
- package/src/shade/renderer/particles/graph/particle_ramp.d.ts +230 -0
- package/src/shade/renderer/particles/graph/particle_ramp.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_ramp.js +403 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts +7 -1
- package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/validate_particle_graph.js +66 -10
- package/src/shade/renderer/particles/graph_particles.d.ts +23 -69
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +105 -262
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles_avboit.js +3 -2
- package/src/shade/renderer/particles/graph_particles_billboard.d.ts +37 -0
- package/src/shade/renderer/particles/graph_particles_billboard.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph_particles_billboard.js +93 -0
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts +51 -22
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/InstructionStream.js +98 -38
- package/src/shade/renderer/particles/isa/ParticleProgram.d.ts +49 -8
- package/src/shade/renderer/particles/isa/ParticleProgram.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleProgram.js +95 -150
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +306 -64
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleVMISA.js +505 -136
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts +36 -12
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/particle_assembly.js +354 -139
- package/src/shade/renderer/particles/isa/validate_particle_program.d.ts +9 -0
- package/src/shade/renderer/particles/isa/validate_particle_program.d.ts.map +1 -0
- package/src/shade/renderer/particles/isa/validate_particle_program.js +128 -0
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts +23 -0
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts.map +1 -1
- package/src/shade/renderer/particles/layout/ParticleLayout.js +68 -0
- package/src/shade/renderer/particles/optimizer/dag/optimize_particle_program_vector.d.ts +77 -0
- package/src/shade/renderer/particles/optimizer/dag/optimize_particle_program_vector.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/optimize_particle_program_vector.js +219 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.d.ts +83 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.js +283 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.d.ts +133 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.js +334 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_groups.d.ts +117 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_groups.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_groups.js +70 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.d.ts +97 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.js +462 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lower.d.ts +116 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lower.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_lower.js +687 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.d.ts +57 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.js +860 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_rules.d.ts +115 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_rules.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/dag/particle_vector_rules.js +264 -0
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts +81 -42
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.js +477 -478
- package/src/shade/renderer/particles/optimizer/particle_integer_bounds.d.ts +100 -0
- package/src/shade/renderer/particles/optimizer/particle_integer_bounds.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_integer_bounds.js +236 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts +139 -59
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +764 -647
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +40 -7
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +376 -213
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts +30 -3
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +337 -223
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +24 -38
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +166 -206
- package/src/shade/renderer/particles/optimizer/pass_allocate_registers.d.ts +99 -0
- package/src/shade/renderer/particles/optimizer/pass_allocate_registers.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_allocate_registers.js +313 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts +3 -2
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.js +198 -197
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts +19 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +678 -561
- package/src/shade/renderer/particles/optimizer/pass_inline_constants.d.ts +22 -0
- package/src/shade/renderer/particles/optimizer/pass_inline_constants.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_inline_constants.js +221 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.js +63 -72
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.js +87 -86
- package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_peephole.js +392 -271
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.js +361 -268
- package/src/shade/renderer/particles/optimizer/pass_schedule.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_schedule.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_schedule.js +244 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts.map +1 -1
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.js +154 -151
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts +20 -0
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts.map +1 -1
- package/src/shade/renderer/particles/particle_test_fixtures.js +229 -203
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +99 -25
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +438 -286
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts +109 -0
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/GPUParticleEmitterContext.js +127 -0
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +87 -102
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +184 -163
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +26 -0
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ProgramHeap.d.ts +130 -0
- package/src/shade/renderer/particles/runtime/ProgramHeap.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/ProgramHeap.js +595 -0
- package/src/shade/renderer/particles/runtime/ProgramPlacement.d.ts +91 -0
- package/src/shade/renderer/particles/runtime/ProgramPlacement.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/ProgramPlacement.js +106 -0
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts +5 -2
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/create_particle_effect.js +22 -19
- package/src/shade/renderer/particles/shaders/chunk_particle_emit_step.d.ts +28 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emit_step.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emit_step.js +136 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_simulate_step.d.ts +35 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_simulate_step.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_simulate_step.js +133 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts +18 -9
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +20 -80
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts +33 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.js +114 -0
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts +8 -0
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +33 -101
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts +45 -0
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.js +123 -0
- package/src/shade/renderer/particles/sort/graph_particle_sort.d.ts +51 -0
- package/src/shade/renderer/particles/sort/graph_particle_sort.d.ts.map +1 -0
- package/src/shade/renderer/particles/sort/graph_particle_sort.js +120 -0
- package/src/shade/renderer/particles/vm/PARTICLE_VM_CONTEXT_STRUCT.d.ts +6 -0
- package/src/shade/renderer/particles/vm/PARTICLE_VM_CONTEXT_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/particles/vm/PARTICLE_VM_CONTEXT_STRUCT.js +16 -0
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +4 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.js +261 -140
- package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/chunk_particle_vm.js +217 -255
- package/src/shade/renderer/particles/vm/chunk_particle_vm_registers_fast.d.ts +43 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_registers_fast.d.ts.map +1 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_registers_fast.js +55 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_registers_wide.d.ts +62 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_registers_wide.d.ts.map +1 -0
- package/src/shade/renderer/particles/vm/chunk_particle_vm_registers_wide.js +86 -0
- package/src/shade/renderer/shader/chunk/math/chunk_mod_v3f.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/math/chunk_mod_v3f.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/math/chunk_mod_v3f.js +32 -0
- package/src/shade/renderer/shader/chunk/math/chunk_mod_v4f.d.ts +9 -0
- package/src/shade/renderer/shader/chunk/math/chunk_mod_v4f.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/math/chunk_mod_v4f.js +19 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/README.md +65 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2.d.ts +24 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2.js +83 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2_hash.d.ts +25 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2_hash.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2_hash.js +42 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2_kernel.d.ts +31 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2_kernel.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise2_kernel.js +80 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3.d.ts +26 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3.js +109 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_kernel.d.ts +38 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_kernel.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_kernel.js +129 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_permute.d.ts +21 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_permute.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_permute.js +35 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_skew.d.ts +19 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_skew.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_skew.js +28 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_unskew.d.ts +13 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_unskew.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_psrdnoise3_unskew.js +22 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise2.d.ts +22 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise2.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise2.js +59 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise3.d.ts +23 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise3.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise3.js +74 -0
- package/src/shade/wgsl/emulator/ComputeShaderEmulator.d.ts +34 -1
- package/src/shade/wgsl/emulator/ComputeShaderEmulator.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/ComputeShaderEmulator.js +41 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts +3 -2
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +49 -10
- package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
- package/src/view/minimap/dom/MinimapCameraView.js +4 -9
- package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.d.ts +0 -15
- package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.d.ts +0 -45
- package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.d.ts +0 -24
- package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.d.ts.map +0 -1
- package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.d.ts +0 -19
- package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.d.ts.map +0 -1
- package/src/engine/ecs/transform/__probe.d.ts +0 -4
- package/src/engine/ecs/transform/__probe.d.ts.map +0 -1
- package/src/engine/ecs/util/hideEntityGracefully.d.ts +0 -9
- package/src/engine/ecs/util/hideEntityGracefully.d.ts.map +0 -1
- package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts +0 -27
- package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts.map +0 -1
- package/src/shade/renderer/particles/cull/chunk_particle_cull.d.ts +0 -14
- package/src/shade/renderer/particles/cull/chunk_particle_cull.d.ts.map +0 -1
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.d.ts +0 -156
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.d.ts.map +0 -1
- package/src/shade/renderer/particles/runtime/Emitter.d.ts +0 -219
- package/src/shade/renderer/particles/runtime/Emitter.d.ts.map +0 -1
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts +0 -77
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts.map +0 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.js +0 -155
- package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts +0 -15
- package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts.map +0 -1
- package/src/shade/renderer/particles/runtime/spawn_request_encoding.d.ts +0 -34
- package/src/shade/renderer/particles/runtime/spawn_request_encoding.d.ts.map +0 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts +0 -32
- package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 3-D simplex noise with rotating gradients and an analytic derivative — `psrdnoise` without the
|
|
3
|
+
* `p`, for fields that never need to tile.
|
|
4
|
+
*
|
|
5
|
+
* Returns `vec4(noise, gradient.xyz)`: the noise value is in `.x`, in `[-1, 1]`, and `.yzw` is its
|
|
6
|
+
* exact gradient. Ask for only `.x` and the compiler drops the derivative.
|
|
7
|
+
*
|
|
8
|
+
* `alpha` turns every gradient in the field by that many radians about a per-corner pseudo-random
|
|
9
|
+
* axis. Animating it swirls the field in place, which with the gradient is what curl noise wants —
|
|
10
|
+
* see {@link chunk_psrdnoise3_kernel}.
|
|
11
|
+
*
|
|
12
|
+
* This is {@link chunk_psrdnoise3} with the wrap deleted, not a call into it with a zero period: it
|
|
13
|
+
* exists so a caller whose period is a runtime value it never sets does not pay for the branch and
|
|
14
|
+
* the modulo. It still repeats every 289 cells — that is the hash's modulus, not a choice — so it
|
|
15
|
+
* is "non-periodic" only in the sense that it does not tile to a period you name.
|
|
16
|
+
*
|
|
17
|
+
* psrdnoise (c) 2021 Stefan Gustavson and Ian McEwan. Published under the MIT license.
|
|
18
|
+
* @see https://github.com/stegu/psrdnoise/
|
|
19
|
+
* @type {CodeChunk}
|
|
20
|
+
*/
|
|
21
|
+
export const chunk_srdnoise3: CodeChunk;
|
|
22
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
23
|
+
//# sourceMappingURL=chunk_srdnoise3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk_srdnoise3.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shade/renderer/shader/chunk/noise/psrdnoise/chunk_srdnoise3.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAFU,SAAS,CAkDjB;0BAzEwB,gCAAgC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { CodeChunk } from "../../../compiler/CodeChunk.js";
|
|
2
|
+
import { chunk_psrdnoise3_kernel } from "./chunk_psrdnoise3_kernel.js";
|
|
3
|
+
import { chunk_psrdnoise3_skew } from "./chunk_psrdnoise3_skew.js";
|
|
4
|
+
import { chunk_psrdnoise3_unskew } from "./chunk_psrdnoise3_unskew.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 3-D simplex noise with rotating gradients and an analytic derivative — `psrdnoise` without the
|
|
8
|
+
* `p`, for fields that never need to tile.
|
|
9
|
+
*
|
|
10
|
+
* Returns `vec4(noise, gradient.xyz)`: the noise value is in `.x`, in `[-1, 1]`, and `.yzw` is its
|
|
11
|
+
* exact gradient. Ask for only `.x` and the compiler drops the derivative.
|
|
12
|
+
*
|
|
13
|
+
* `alpha` turns every gradient in the field by that many radians about a per-corner pseudo-random
|
|
14
|
+
* axis. Animating it swirls the field in place, which with the gradient is what curl noise wants —
|
|
15
|
+
* see {@link chunk_psrdnoise3_kernel}.
|
|
16
|
+
*
|
|
17
|
+
* This is {@link chunk_psrdnoise3} with the wrap deleted, not a call into it with a zero period: it
|
|
18
|
+
* exists so a caller whose period is a runtime value it never sets does not pay for the branch and
|
|
19
|
+
* the modulo. It still repeats every 289 cells — that is the hash's modulus, not a choice — so it
|
|
20
|
+
* is "non-periodic" only in the sense that it does not tile to a period you name.
|
|
21
|
+
*
|
|
22
|
+
* psrdnoise (c) 2021 Stefan Gustavson and Ian McEwan. Published under the MIT license.
|
|
23
|
+
* @see https://github.com/stegu/psrdnoise/
|
|
24
|
+
* @type {CodeChunk}
|
|
25
|
+
*/
|
|
26
|
+
export const chunk_srdnoise3 = CodeChunk.from(
|
|
27
|
+
//language=WGSL
|
|
28
|
+
`
|
|
29
|
+
fn srdnoise3(
|
|
30
|
+
x: vec3<f32>,
|
|
31
|
+
alpha: f32
|
|
32
|
+
) -> vec4<f32> {
|
|
33
|
+
let uvw = psrdnoise3_skew(x);
|
|
34
|
+
|
|
35
|
+
// which simplex we are in. i0 is the base corner of the skewed cube; o1 and o2 step to the
|
|
36
|
+
// second and third corners, found by rank-ordering u, v, w — the descending order of the
|
|
37
|
+
// fractional coordinates is exactly the order the tetrahedron's corners are traversed in
|
|
38
|
+
let i0 = floor(uvw);
|
|
39
|
+
let f0 = uvw - i0;
|
|
40
|
+
|
|
41
|
+
let gt_ = step(f0.xyx, f0.yzz);
|
|
42
|
+
let lt_ = 1.0 - gt_;
|
|
43
|
+
let gt = vec3<f32>(lt_.z, gt_.xy);
|
|
44
|
+
let lt = vec3<f32>(lt_.xy, gt_.z);
|
|
45
|
+
let o1 = min(gt, lt);
|
|
46
|
+
let o2 = max(gt, lt);
|
|
47
|
+
|
|
48
|
+
let i1 = i0 + o1;
|
|
49
|
+
let i2 = i0 + o2;
|
|
50
|
+
let i3 = i0 + vec3<f32>(1.0);
|
|
51
|
+
|
|
52
|
+
// the four corners back in texture space
|
|
53
|
+
let v0 = psrdnoise3_unskew(i0);
|
|
54
|
+
let v1 = psrdnoise3_unskew(i1);
|
|
55
|
+
let v2 = psrdnoise3_unskew(i2);
|
|
56
|
+
let v3 = psrdnoise3_unskew(i3);
|
|
57
|
+
|
|
58
|
+
return psrdnoise3_kernel(
|
|
59
|
+
vec4<f32>(i0.x, i1.x, i2.x, i3.x),
|
|
60
|
+
vec4<f32>(i0.y, i1.y, i2.y, i3.y),
|
|
61
|
+
vec4<f32>(i0.z, i1.z, i2.z, i3.z),
|
|
62
|
+
x - v0,
|
|
63
|
+
x - v1,
|
|
64
|
+
x - v2,
|
|
65
|
+
x - v3,
|
|
66
|
+
alpha
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
`, [
|
|
70
|
+
chunk_psrdnoise3_kernel,
|
|
71
|
+
chunk_psrdnoise3_skew,
|
|
72
|
+
chunk_psrdnoise3_unskew,
|
|
73
|
+
]
|
|
74
|
+
);
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
* emu.dispatch([0, 0, 0]); // global_invocation_id = (0,0,0)
|
|
17
17
|
* emu.dispatch([1, 0, 0]); // global_invocation_id = (1,0,0)
|
|
18
18
|
* // ... bindings now contain results
|
|
19
|
+
*
|
|
20
|
+
* Each dispatch is a fresh invocation: `var<private>` variables go back to their declared
|
|
21
|
+
* initializers first, as they do on the GPU. `var<workgroup>` variables do not — they belong to
|
|
22
|
+
* the workgroup, so lanes dispatched in sequence share them until {@link
|
|
23
|
+
* ComputeShaderEmulator#resetWorkgroup} is called.
|
|
19
24
|
*/
|
|
20
25
|
export class ComputeShaderEmulator {
|
|
21
26
|
/**
|
|
@@ -74,7 +79,9 @@ export class ComputeShaderEmulator {
|
|
|
74
79
|
/**
|
|
75
80
|
* Compile a {@link CodeChunk} (or a raw WGSL string) into a "library" object — every
|
|
76
81
|
* top-level WGSL function becomes a method, every `var<private>` becomes a getter/setter
|
|
77
|
-
* property, and every module-scope `const` becomes a read-only getter.
|
|
82
|
+
* property, and every module-scope `const` becomes a read-only getter. `reset_private()`
|
|
83
|
+
* puts the private variables back to their initial values; there is no dispatch here to do
|
|
84
|
+
* it for you, so call it between cases that must not see each other's state.
|
|
78
85
|
*
|
|
79
86
|
* No `@compute` entry is required. This is the one-line escape hatch for unit-testing pure
|
|
80
87
|
* helper code (RNGs, hashes, packing, math) without wrapping each chunk in a shader skeleton.
|
|
@@ -116,6 +123,17 @@ export class ComputeShaderEmulator {
|
|
|
116
123
|
* @type {object}
|
|
117
124
|
*/
|
|
118
125
|
bindings: object;
|
|
126
|
+
/**
|
|
127
|
+
* Whether {@link dispatch} starts each thread with the module's `var<private>` variables
|
|
128
|
+
* back at their start-of-invocation values. On by default, because that is what a GPU
|
|
129
|
+
* invocation gets — see {@link resetPrivate}.
|
|
130
|
+
*
|
|
131
|
+
* Turn it off to simulate something the hardware cannot, such as watching a private RNG
|
|
132
|
+
* advance across a run of dispatches.
|
|
133
|
+
*
|
|
134
|
+
* @type {boolean}
|
|
135
|
+
*/
|
|
136
|
+
resetPrivateOnDispatch: boolean;
|
|
119
137
|
/**
|
|
120
138
|
* @returns {string} the WGSL source.
|
|
121
139
|
*/
|
|
@@ -153,6 +171,21 @@ export class ComputeShaderEmulator {
|
|
|
153
171
|
* variables start fresh. No-op for fragment-stage entries.
|
|
154
172
|
*/
|
|
155
173
|
resetWorkgroup(): void;
|
|
174
|
+
/**
|
|
175
|
+
* Return every module-scope `var<private>` to the value it has at the start of a WGSL
|
|
176
|
+
* invocation — its declared initializer, or zero when it was declared without one.
|
|
177
|
+
*
|
|
178
|
+
* {@link dispatch} calls this for you, because that is what the GPU does: private variables
|
|
179
|
+
* are per-invocation, and one invocation never sees what another left in them. Set
|
|
180
|
+
* {@link resetPrivateOnDispatch} to `false` for the rare simulation that wants a run of
|
|
181
|
+
* dispatches to share private state, then call this by hand.
|
|
182
|
+
*
|
|
183
|
+
* The private-address-space counterpart of {@link resetWorkgroup} — but note the asymmetry:
|
|
184
|
+
* `var<workgroup>` state is shared by the lanes of a workgroup, so it is reset per workgroup
|
|
185
|
+
* and by the caller; `var<private>` state is not shared at all, so it is reset per dispatch
|
|
186
|
+
* and by default.
|
|
187
|
+
*/
|
|
188
|
+
resetPrivate(): void;
|
|
156
189
|
/**
|
|
157
190
|
* Dispatch a single thread (point-wise simulation). The arguments are the entry function's
|
|
158
191
|
* parameters, in declaration order — for example a `@builtin(global_invocation_id)` param of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComputeShaderEmulator.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/ComputeShaderEmulator.js"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"ComputeShaderEmulator.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/ComputeShaderEmulator.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IAqKI;;;;;;;;;;OAUG;IACH,0BANW,MAAM;QAEe,MAAM,GAA3B,UAAU;QACO,YAAY,GAA7B,MAAM;QACJ,QAAQ,qBAAqB,CAAC,CAa1C;IAED;;;;;;;;OAQG;IACH,iCANW,OAAO,wCAAwC,EAAE,aAAa;QAEzC,MAAM,GAA3B,UAAU;QACO,YAAY,GAA7B,MAAM;QACJ,QAAQ,qBAAqB,CAAC,CAM1C;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,+BANW,OAAO,sCAAsC,EAAE,WAAW;QAErC,MAAM,GAA3B,UAAU;QACO,YAAY,GAA7B,MAAM;QACJ,QAAQ,qBAAqB,CAAC,CAM1C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sCANW,OAAO,6CAA6C,EAAE,SAAS,GAAG,MAAM;QAEnD,MAAM,GAA3B,UAAU;QACO,YAAY,GAA7B,MAAM;QACJ,QAAQ,MAAM,CAAC,CAS3B;IA9ND;;;;;;;;;;OAUG;IACH;QAL2B,MAAM,EAAtB,MAAM;QACU,MAAM,EAAtB,MAAM;QACU,QAAQ,EAAxB,MAAM;QACU,YAAY,EAA5B,MAAM;OAYhB;IAxCD;;;;OAIG;IACH,UAFU,MAAM,CAEF;IAEd;;;;;;;;;OASG;IACH,wBAFU,OAAO,CAEa;IAyB9B;;OAEG;IACH,qBAEC;IAED;;OAEG;IACH,uBAEC;IAED;;OAEG;IACH,wBAEC;IAED;;OAEG;IACH,wBAEC;IAED;;OAEG;IACH,oCAEC;IAED;;OAEG;IACH,+BAEC;IAED;;OAEG;IACH,gCAEC;IAED;;OAEG;IACH,qBAEC;IAED;;;OAGG;IACH,uBAIC;IAED;;;;;;;;;;;;;OAaG;IACH,qBAEC;IAED;;;;;;;;;;;OAWG;IACH,kCAQC;;CAgGJ;2BA/R0B,kBAAkB"}
|
|
@@ -21,6 +21,11 @@ import { WGSLLanguageCore } from "./WGSLLanguageCore.js";
|
|
|
21
21
|
* emu.dispatch([0, 0, 0]); // global_invocation_id = (0,0,0)
|
|
22
22
|
* emu.dispatch([1, 0, 0]); // global_invocation_id = (1,0,0)
|
|
23
23
|
* // ... bindings now contain results
|
|
24
|
+
*
|
|
25
|
+
* Each dispatch is a fresh invocation: `var<private>` variables go back to their declared
|
|
26
|
+
* initializers first, as they do on the GPU. `var<workgroup>` variables do not — they belong to
|
|
27
|
+
* the workgroup, so lanes dispatched in sequence share them until {@link
|
|
28
|
+
* ComputeShaderEmulator#resetWorkgroup} is called.
|
|
24
29
|
*/
|
|
25
30
|
export class ComputeShaderEmulator {
|
|
26
31
|
|
|
@@ -46,6 +51,18 @@ export class ComputeShaderEmulator {
|
|
|
46
51
|
*/
|
|
47
52
|
bindings = {};
|
|
48
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Whether {@link dispatch} starts each thread with the module's `var<private>` variables
|
|
56
|
+
* back at their start-of-invocation values. On by default, because that is what a GPU
|
|
57
|
+
* invocation gets — see {@link resetPrivate}.
|
|
58
|
+
*
|
|
59
|
+
* Turn it off to simulate something the hardware cannot, such as watching a private RNG
|
|
60
|
+
* advance across a run of dispatches.
|
|
61
|
+
*
|
|
62
|
+
* @type {boolean}
|
|
63
|
+
*/
|
|
64
|
+
resetPrivateOnDispatch = true;
|
|
65
|
+
|
|
49
66
|
/**
|
|
50
67
|
* Construct directly when you already have the WGSL source string.
|
|
51
68
|
*
|
|
@@ -135,6 +152,24 @@ export class ComputeShaderEmulator {
|
|
|
135
152
|
}
|
|
136
153
|
}
|
|
137
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Return every module-scope `var<private>` to the value it has at the start of a WGSL
|
|
157
|
+
* invocation — its declared initializer, or zero when it was declared without one.
|
|
158
|
+
*
|
|
159
|
+
* {@link dispatch} calls this for you, because that is what the GPU does: private variables
|
|
160
|
+
* are per-invocation, and one invocation never sees what another left in them. Set
|
|
161
|
+
* {@link resetPrivateOnDispatch} to `false` for the rare simulation that wants a run of
|
|
162
|
+
* dispatches to share private state, then call this by hand.
|
|
163
|
+
*
|
|
164
|
+
* The private-address-space counterpart of {@link resetWorkgroup} — but note the asymmetry:
|
|
165
|
+
* `var<workgroup>` state is shared by the lanes of a workgroup, so it is reset per workgroup
|
|
166
|
+
* and by the caller; `var<private>` state is not shared at all, so it is reset per dispatch
|
|
167
|
+
* and by default.
|
|
168
|
+
*/
|
|
169
|
+
resetPrivate() {
|
|
170
|
+
this.#module.reset_private();
|
|
171
|
+
}
|
|
172
|
+
|
|
138
173
|
/**
|
|
139
174
|
* Dispatch a single thread (point-wise simulation). The arguments are the entry function's
|
|
140
175
|
* parameters, in declaration order — for example a `@builtin(global_invocation_id)` param of
|
|
@@ -148,6 +183,9 @@ export class ComputeShaderEmulator {
|
|
|
148
183
|
* @returns {*}
|
|
149
184
|
*/
|
|
150
185
|
dispatch(...mainArgs) {
|
|
186
|
+
if (this.resetPrivateOnDispatch) {
|
|
187
|
+
this.resetPrivate();
|
|
188
|
+
}
|
|
151
189
|
if (this.#module.stage === 'fragment') {
|
|
152
190
|
return this.#module.entry(this.bindings, ...mainArgs);
|
|
153
191
|
}
|
|
@@ -223,7 +261,9 @@ export class ComputeShaderEmulator {
|
|
|
223
261
|
/**
|
|
224
262
|
* Compile a {@link CodeChunk} (or a raw WGSL string) into a "library" object — every
|
|
225
263
|
* top-level WGSL function becomes a method, every `var<private>` becomes a getter/setter
|
|
226
|
-
* property, and every module-scope `const` becomes a read-only getter.
|
|
264
|
+
* property, and every module-scope `const` becomes a read-only getter. `reset_private()`
|
|
265
|
+
* puts the private variables back to their initial values; there is no dispatch here to do
|
|
266
|
+
* it for you, so call it between cases that must not see each other's state.
|
|
227
267
|
*
|
|
228
268
|
* No `@compute` entry is required. This is the one-line escape hatch for unit-testing pure
|
|
229
269
|
* helper code (RNGs, hashes, packing, math) without wrapping each chunk in a shader skeleton.
|
|
@@ -6,8 +6,9 @@ export class WGSLJavaScriptCompiler {
|
|
|
6
6
|
* a shader module object. The shape depends on what the WGSL declared:
|
|
7
7
|
*
|
|
8
8
|
* - **Always present:** every top-level user function (e.g. `module.random()`),
|
|
9
|
-
* every struct class (e.g. `module.Foo`),
|
|
10
|
-
* `var<private>` and getter for each module-scope `const
|
|
9
|
+
* every struct class (e.g. `module.Foo`), a getter/setter property for each
|
|
10
|
+
* `var<private>` and getter for each module-scope `const`, and `reset_private()`,
|
|
11
|
+
* which returns every `var<private>` to its start-of-invocation value.
|
|
11
12
|
* - **Compute-shader fields (only when a `@compute` entry is present):**
|
|
12
13
|
* ```
|
|
13
14
|
* {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WGSLJavaScriptCompiler.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WGSLJavaScriptCompiler.d.ts","sourceRoot":"","sources":["../../../../../src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js"],"names":[],"mappings":"AA2cA;IAEI;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,oBAFa,MAAM,CAMlB;CACJ;;UApea,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS;WAClG,MAAM;WACN,MAAM;WACN,MAAM;WACN,MAAM;aACN,MAAM;cACN,QAAQ;YACR,MAAM"}
|
|
@@ -419,10 +419,12 @@ class Compiler {
|
|
|
419
419
|
|
|
420
420
|
/**
|
|
421
421
|
* Module-scope `var<private>` and `const` declarations, in declaration order.
|
|
422
|
-
* Each entry is `{ name, kind: 'let' | 'const', code }` — `code` is the JS line
|
|
423
|
-
* verbatim; `name` and `kind` are also tracked so the returned module object can
|
|
424
|
-
* them as getter/setter (or read-only) properties for testing
|
|
425
|
-
*
|
|
422
|
+
* Each entry is `{ name, kind: 'let' | 'const', code, init }` — `code` is the JS line
|
|
423
|
+
* emitted verbatim; `name` and `kind` are also tracked so the returned module object can
|
|
424
|
+
* expose them as getter/setter (or read-only) properties for testing, and `init` is the
|
|
425
|
+
* initializer expression on its own, which the private-state reset re-emits for the `let`
|
|
426
|
+
* ones (a `const` cannot be reassigned, and no invocation can disturb it).
|
|
427
|
+
* @type {Array<{ name: string, kind: 'let' | 'const', code: string, init: string }>}
|
|
426
428
|
*/
|
|
427
429
|
this.privateGlobals = [];
|
|
428
430
|
|
|
@@ -464,8 +466,9 @@ export class WGSLJavaScriptCompiler {
|
|
|
464
466
|
* a shader module object. The shape depends on what the WGSL declared:
|
|
465
467
|
*
|
|
466
468
|
* - **Always present:** every top-level user function (e.g. `module.random()`),
|
|
467
|
-
* every struct class (e.g. `module.Foo`),
|
|
468
|
-
* `var<private>` and getter for each module-scope `const
|
|
469
|
+
* every struct class (e.g. `module.Foo`), a getter/setter property for each
|
|
470
|
+
* `var<private>` and getter for each module-scope `const`, and `reset_private()`,
|
|
471
|
+
* which returns every `var<private>` to its start-of-invocation value.
|
|
469
472
|
* - **Compute-shader fields (only when a `@compute` entry is present):**
|
|
470
473
|
* ```
|
|
471
474
|
* {
|
|
@@ -549,7 +552,12 @@ function compileTranslationUnit(c, root) {
|
|
|
549
552
|
if (node.type === 'function_decl') emitFunction(c, node);
|
|
550
553
|
}
|
|
551
554
|
|
|
552
|
-
// 5)
|
|
555
|
+
// 5) The private-state reset. Emitted for every module, library ones included: a
|
|
556
|
+
// `var<private>` is per-invocation state on the GPU, and the JS `let` above outlives the
|
|
557
|
+
// dispatch that wrote it, so something has to put the initial values back.
|
|
558
|
+
emitPrivateStateReset(c);
|
|
559
|
+
|
|
560
|
+
// 6) Entry-stage support code: the dispatch wrapper for any entry, plus a workgroup-state
|
|
553
561
|
// factory for @compute entries (fragment shaders have no var<workgroup>). Skipped entirely
|
|
554
562
|
// in library mode (no entry attribute) so the resulting module is just a bag of pure
|
|
555
563
|
// functions and globals.
|
|
@@ -560,7 +568,7 @@ function compileTranslationUnit(c, root) {
|
|
|
560
568
|
emitEntryWrapper(c);
|
|
561
569
|
}
|
|
562
570
|
|
|
563
|
-
//
|
|
571
|
+
// 7) Build and return the module object.
|
|
564
572
|
emitModuleReturn(c);
|
|
565
573
|
|
|
566
574
|
c.out.dedent();
|
|
@@ -571,8 +579,9 @@ function compileTranslationUnit(c, root) {
|
|
|
571
579
|
* Emit the `return { ... }` block of the factory. Every top-level user function and struct
|
|
572
580
|
* class is exposed by name; module-scope `var<private>` slots become getter/setter properties
|
|
573
581
|
* (so tests can inspect or seed RNG state etc.), and module-scope `const`s become read-only
|
|
574
|
-
* getters. When the WGSL had a `@compute` entry, the dispatch
|
|
575
|
-
* `workgroup_size`, `param_names`, `entry`, `create_workgroup_state`) is
|
|
582
|
+
* getters. `reset_private` is always included. When the WGSL had a `@compute` entry, the dispatch
|
|
583
|
+
* trio (`entry_name`, `workgroup_size`, `param_names`, `entry`, `create_workgroup_state`) is
|
|
584
|
+
* included too.
|
|
576
585
|
*/
|
|
577
586
|
function emitModuleReturn(c) {
|
|
578
587
|
c.out.add('const __module__ = {};');
|
|
@@ -592,6 +601,8 @@ function emitModuleReturn(c) {
|
|
|
592
601
|
}
|
|
593
602
|
}
|
|
594
603
|
|
|
604
|
+
c.out.add('__module__.reset_private = __reset_private__;');
|
|
605
|
+
|
|
595
606
|
if (c.entry !== null) {
|
|
596
607
|
c.out.add(`__module__.entry_name = ${JSON.stringify(c.entry.name)};`);
|
|
597
608
|
c.out.add(`__module__.stage = ${JSON.stringify(c.entry.stage)};`);
|
|
@@ -900,6 +911,7 @@ function collectGlobalVariable(c, node) {
|
|
|
900
911
|
name,
|
|
901
912
|
kind: 'let',
|
|
902
913
|
code: `let ${name} = ${init_code};`,
|
|
914
|
+
init: init_code,
|
|
903
915
|
});
|
|
904
916
|
}
|
|
905
917
|
|
|
@@ -938,6 +950,7 @@ function collectGlobalValue(c, node) {
|
|
|
938
950
|
name,
|
|
939
951
|
kind: 'const',
|
|
940
952
|
code: `const ${name} = ${expr.code};`,
|
|
953
|
+
init: expr.code,
|
|
941
954
|
});
|
|
942
955
|
}
|
|
943
956
|
|
|
@@ -945,6 +958,32 @@ function collectGlobalValue(c, node) {
|
|
|
945
958
|
// Workgroup state factory + entry wrapper
|
|
946
959
|
// =========================================================================
|
|
947
960
|
|
|
961
|
+
/**
|
|
962
|
+
* Emit `__reset_private__()`, which restores every module-scope `var<private>` to the value it
|
|
963
|
+
* would have at the start of a WGSL invocation — its declared initializer, or the type's zero
|
|
964
|
+
* value when it was declared without one.
|
|
965
|
+
*
|
|
966
|
+
* This is the private-address-space counterpart of {@link emitWorkgroupStateFactory}. The
|
|
967
|
+
* generated module keeps its private slots in `let` bindings that live as long as the module, so
|
|
968
|
+
* without this a second dispatch would start from whatever the first one left behind — state the
|
|
969
|
+
* GPU never carries.
|
|
970
|
+
*
|
|
971
|
+
* Module-scope `const`s are skipped: they are immutable in the generated JS and no invocation can
|
|
972
|
+
* disturb them.
|
|
973
|
+
*
|
|
974
|
+
* @param {Compiler} c
|
|
975
|
+
*/
|
|
976
|
+
function emitPrivateStateReset(c) {
|
|
977
|
+
c.out.add('function __reset_private__() {');
|
|
978
|
+
c.out.indent();
|
|
979
|
+
for (const g of c.privateGlobals) {
|
|
980
|
+
if (g.kind !== 'let') continue;
|
|
981
|
+
c.out.add(`${g.name} = ${g.init};`);
|
|
982
|
+
}
|
|
983
|
+
c.out.dedent();
|
|
984
|
+
c.out.add('}');
|
|
985
|
+
}
|
|
986
|
+
|
|
948
987
|
function emitWorkgroupStateFactory(c) {
|
|
949
988
|
c.out.add('function __create_workgroup_state__() {');
|
|
950
989
|
c.out.indent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinimapCameraView.d.ts","sourceRoot":"","sources":["../../../../../src/view/minimap/dom/MinimapCameraView.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MinimapCameraView.d.ts","sourceRoot":"","sources":["../../../../../src/view/minimap/dom/MinimapCameraView.js"],"names":[],"mappings":"AAWA;IACI;;;;;;;;OAQG;IACH,yFAoFC;IAjFG,YAAkC;IAIlC;;;;OAIG;IACH,qBAAgD;IAIhD;;;OAGG;IACH,eAAoB;IAEpB;;;;;;;;;;;OAWG;IACH,UAFU,+BAA6B,CAEf;IACxB;;;OAGG;IACH,qBAA0B;IAE1B,eAAoB;IAEpB;;;;OAIG;IACH,gBAAoB;IAEpB;;;;OAIG;IACH,sBAA+B;IAE/B;;;OAGG;IACH,aAAsC;IAyB1C;;;;;;;;;OASG;IACH,uBARW,OAAO,WACP,MAAM,WACN,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,QAsChB;IAED;;;;;OAKG;IACH,YAJW,MAAM,KACN,MAAM,GACJ,OAAO,CA+BnB;IAED,iBAQC;CAgBJ;iBAxNgB,eAAe;oBACZ,+BAA+B"}
|
|
@@ -4,8 +4,7 @@ import ObservedValue from "../../../core/model/ObservedValue.js";
|
|
|
4
4
|
import { SurfacePoint3 } from "../../../core/geom/3d/SurfacePoint3.js";
|
|
5
5
|
import SVG from "../../SVG.js";
|
|
6
6
|
import { plane3_compute_ray_intersection } from "../../../core/geom/3d/plane/plane3_compute_ray_intersection.js";
|
|
7
|
-
import {
|
|
8
|
-
import { EventType } from "../../../engine/ecs/EventType.js";
|
|
7
|
+
import { TRANSFORM64_EVENT_CHANGE } from "../../../engine/ecs/transform/TRANSFORM64_EVENT_CHANGE.js";
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|
const rayContact = new SurfacePoint3();
|
|
@@ -93,18 +92,14 @@ export class MinimapCameraView extends View {
|
|
|
93
92
|
// none, so it arrives from the dataset instead - one listener for the whole transform,
|
|
94
93
|
// which is coarser and exactly as useful here: the view redraws from the pose either way.
|
|
95
94
|
if (dataset !== null) {
|
|
96
|
-
const on_transform_changed =
|
|
97
|
-
if (event.klass === Transform64) {
|
|
98
|
-
this.__update();
|
|
99
|
-
}
|
|
100
|
-
};
|
|
95
|
+
const on_transform_changed = () => this.__update();
|
|
101
96
|
|
|
102
97
|
this.on.linked.add(() => dataset.addEntityEventListener(
|
|
103
|
-
entity,
|
|
98
|
+
entity, TRANSFORM64_EVENT_CHANGE, on_transform_changed
|
|
104
99
|
));
|
|
105
100
|
|
|
106
101
|
this.on.unlinked.add(() => dataset.removeEntityEventListener(
|
|
107
|
-
entity,
|
|
102
|
+
entity, TRANSFORM64_EVENT_CHANGE, on_transform_changed
|
|
108
103
|
));
|
|
109
104
|
}
|
|
110
105
|
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export class BoxLayoutSpec {
|
|
2
|
-
bounds: AABB2;
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @type {ConnectionLayoutSpec[]}
|
|
6
|
-
*/
|
|
7
|
-
connections: ConnectionLayoutSpec[];
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @type {boolean}
|
|
11
|
-
*/
|
|
12
|
-
locked: boolean;
|
|
13
|
-
}
|
|
14
|
-
import AABB2 from "../../../../geom/2d/aabb/AABB2.js";
|
|
15
|
-
//# sourceMappingURL=BoxLayoutSpec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BoxLayoutSpec.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/BoxLayoutSpec.js"],"names":[],"mappings":"AAGA;IACI,cAAqB;IAErB;;;OAGG;IACH,aAFU,sBAAsB,CAEf;IAEjB;;;OAGG;IACH,QAFU,OAAO,CAEF;CAElB;kBAlBiB,mCAAmC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export class ConnectedBoxLayouter {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @type {BoxLayoutSpec[]}
|
|
5
|
-
*/
|
|
6
|
-
boxes: BoxLayoutSpec[];
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @type {ConnectionLayoutSpec[]}
|
|
10
|
-
*/
|
|
11
|
-
connections: ConnectionLayoutSpec[];
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @type {QuadTreeNode<>}
|
|
15
|
-
* @private
|
|
16
|
-
*/
|
|
17
|
-
private __spatial_index_connections;
|
|
18
|
-
/**
|
|
19
|
-
* @param {BoxLayoutSpec[]} boxes
|
|
20
|
-
* @param {ConnectionLayoutSpec[]} connections
|
|
21
|
-
*/
|
|
22
|
-
initialize(boxes: BoxLayoutSpec[], connections: ConnectionLayoutSpec[]): void;
|
|
23
|
-
__resolve_box_overlap(max_steps?: number): void;
|
|
24
|
-
/**
|
|
25
|
-
*
|
|
26
|
-
* @param {BoxLayoutSpec} box
|
|
27
|
-
* @returns {number}
|
|
28
|
-
* @private
|
|
29
|
-
*/
|
|
30
|
-
private __compute_box_cost;
|
|
31
|
-
__execute_swaps(): number;
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* @param {ConnectionLayoutSpec} spec
|
|
35
|
-
* @param {number} strength
|
|
36
|
-
* @private
|
|
37
|
-
*/
|
|
38
|
-
private __pull_connection;
|
|
39
|
-
__pull_connections(strength: any): void;
|
|
40
|
-
__execute_many_swaps(limit: any): void;
|
|
41
|
-
__execute_initial_placement(): void;
|
|
42
|
-
step(): void;
|
|
43
|
-
layout(): void;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=ConnectedBoxLayouter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedBoxLayouter.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.js"],"names":[],"mappings":"AAMA;IAGI;;;OAGG;IACH,OAFU,eAAe,CAEd;IACX;;;OAGG;IACH,aAFU,sBAAsB,CAEf;IAGjB;;;;OAIG;IACH,oCAAiD;IAGjD;;;OAGG;IACH,kBAHW,eAAe,eACf,sBAAsB,QAahC;IAED,gDAYC;IAED;;;;;OAKG;IACH,2BA6BC;IAED,0BAkDC;IAED;;;;;OAKG;IACH,0BAqBC;IAED,wCAQC;IAED,uCAQC;IAED,oCAkBC;IAED,aAOC;IAED,eAYC;CACJ"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export class ConnectionEndpointLayoutSpec {
|
|
2
|
-
/**
|
|
3
|
-
* @param {AABB2} box
|
|
4
|
-
* @param {Vector2} point
|
|
5
|
-
* @returns {ConnectionEndpointLayoutSpec}
|
|
6
|
-
*/
|
|
7
|
-
static from(box: AABB2, point: Vector2): ConnectionEndpointLayoutSpec;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @type {BoxLayoutSpec}
|
|
11
|
-
*/
|
|
12
|
-
box: BoxLayoutSpec;
|
|
13
|
-
/**
|
|
14
|
-
* Local offset inside the box where connection is attached
|
|
15
|
-
* @type {Vector2}
|
|
16
|
-
*/
|
|
17
|
-
point: Vector2;
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
* @param {Vector2} result
|
|
21
|
-
*/
|
|
22
|
-
computePosition(result: Vector2): void;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=ConnectionEndpointLayoutSpec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionEndpointLayoutSpec.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.js"],"names":[],"mappings":"AAAA;IA0BI;;;;OAIG;IACH,yCAFa,4BAA4B,CASxC;IApCD;;;OAGG;IACH,mBAAW;IAEX;;;OAGG;IACH,eAAa;IAGb;;;OAGG;IACH,uCAKC;CAeJ"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export class ConnectionLayoutSpec {
|
|
2
|
-
/**
|
|
3
|
-
* @param {ConnectionEndpointLayoutSpec} source
|
|
4
|
-
* @param {ConnectionEndpointLayoutSpec} target
|
|
5
|
-
* @returns {ConnectionLayoutSpec}
|
|
6
|
-
*/
|
|
7
|
-
static from(source: ConnectionEndpointLayoutSpec, target: ConnectionEndpointLayoutSpec): ConnectionLayoutSpec;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @type {ConnectionEndpointLayoutSpec}
|
|
11
|
-
*/
|
|
12
|
-
source: ConnectionEndpointLayoutSpec;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @type {ConnectionEndpointLayoutSpec}
|
|
16
|
-
*/
|
|
17
|
-
target: ConnectionEndpointLayoutSpec;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=ConnectionLayoutSpec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionLayoutSpec.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.js"],"names":[],"mappings":"AAAA;IAcI;;;;OAIG;IACH,yFAFa,oBAAoB,CAShC;IAxBD;;;OAGG;IACH,qCAAc;IACd;;;OAGG;IACH,qCAAc;CAgBjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__probe.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/transform/__probe.js"],"names":[],"mappings":"AAEA,6BAA6B;AAC7B,yBADY,WAAW,SAMtB;4BAP2B,kBAAkB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {Entity} builder
|
|
4
|
-
* @param {function():Entity} createEntity
|
|
5
|
-
* @param {*} [createEntityThisArg]
|
|
6
|
-
* @return {number} duration in seconds until the entity is completely hidden
|
|
7
|
-
*/
|
|
8
|
-
export function hideEntityGracefully(builder: Entity, createEntity: () => Entity, createEntityThisArg?: any): number;
|
|
9
|
-
//# sourceMappingURL=hideEntityGracefully.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hideEntityGracefully.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/util/hideEntityGracefully.js"],"names":[],"mappings":"AA2JA;;;;;;GAMG;AACH,8GAFY,MAAM,CAmCjB"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build the `array<u32>` image of a {@link GPUDatabase} — the exact bytes the generated marshalling
|
|
3
|
-
* functions ({@link GPUTypedTableDescriptor#chunk_read} and friends) index: the page address table,
|
|
4
|
-
* then pages at the addresses it names, each page's records past its
|
|
5
|
-
* `[u32 live_count][u32 occupancy_bitmap...]` header.
|
|
6
|
-
*
|
|
7
|
-
* This exists for the WGSL emulator. The production route to those bytes is a compute dispatch
|
|
8
|
-
* ({@link ./gpu_table_element_upload_shader.js}) against a live device, and the software device
|
|
9
|
-
* records dispatches without running them — so a spec that wants to run a database-reading shader
|
|
10
|
-
* on the CPU has no way to obtain a filled buffer. Everything here is derived from the descriptor's
|
|
11
|
-
* own published geometry (`page_lookup_address`, `elements_per_page`, `page_header_words`,
|
|
12
|
-
* `packed_element_size_bytes`), which is the same geometry the upload shader receives as its
|
|
13
|
-
* settings, so the two cannot drift apart silently.
|
|
14
|
-
*
|
|
15
|
-
* Pages are allocated in ascending (table index, page index) order — the addresses therefore differ
|
|
16
|
-
* from what a live database's slot allocator would hand out for the same writes. Nothing reads a
|
|
17
|
-
* page address except through the table, so the layout is equivalent, not identical.
|
|
18
|
-
*
|
|
19
|
-
* @param {GPUDatabaseDefinition} definition
|
|
20
|
-
* @param {Object<string, Iterable<[number, *]>>} contents records per table name, as
|
|
21
|
-
* `[element_index, value]` pairs (a `Map`, or an array of pairs)
|
|
22
|
-
* @returns {Uint32Array}
|
|
23
|
-
*/
|
|
24
|
-
export function gpu_database_emulator_image(definition: GPUDatabaseDefinition, contents: {
|
|
25
|
-
[x: string]: Iterable<[number, any]>;
|
|
26
|
-
}): Uint32Array;
|
|
27
|
-
//# sourceMappingURL=gpu_database_emulator_image.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gpu_database_emulator_image.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/buffer/table/gpu_database_emulator_image.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;QAJkB,MAAM,GAAE,SAAS,CAAC,MAAM,MAAI,CAAC;IAElC,WAAW,CAwFvB"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Frustum culling math for emitter simulation culling (the optional, flagged "sleep when culled"
|
|
3
|
-
* feature). A bounding sphere is visible unless it lies fully outside any frustum plane. Planes
|
|
4
|
-
* follow the engine's Gribb-Hartmann convention (world space, `dot(n, p) + d >= 0` inside).
|
|
5
|
-
*
|
|
6
|
-
* The occlusion half of the test reuses the engine's HiZ query
|
|
7
|
-
* (`src/webgpu/renderer/shader/chunk/depth/chunk_query_depth_from_screen_space_bb.js`) in the cull pass;
|
|
8
|
-
* this chunk holds the emulator-testable frustum math.
|
|
9
|
-
*
|
|
10
|
-
* @type {CodeChunk}
|
|
11
|
-
*/
|
|
12
|
-
export const chunk_particle_cull: CodeChunk;
|
|
13
|
-
import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
|
|
14
|
-
//# sourceMappingURL=chunk_particle_cull.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk_particle_cull.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/cull/chunk_particle_cull.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,kCAFU,SAAS,CA0BhB;0BArCuB,oCAAoC"}
|