Commit graph

12 commits

Author SHA1 Message Date
Jozufozu
76dcf3fed6 The botched batching plan
- Directly port over submitTasks to use Plan
- Could probably make better use of the plan primitives, but oh well
- Remove Engine#beginFrame
2023-04-09 14:37:12 -07:00
Jozufozu
1627874e33 Putting our plan to the test
- Implement plan simplification
- Add unit tests for plan execution and simplification
2023-04-09 14:15:29 -07:00
Jozufozu
fb11f29010 Parallel planning primitives
- Engines/InstanceManagers now provide Plans for frames/ticks
- TODO: batching is broken
- TODO: plan caching
- Add Plan interface which can be used to compose complex systems
  of parallel execution
- Add Synchronizer to facilitate barriering
- Remove WorkGroup
- Summary of different primitives below, names need work :ioa:
  - BarrierPlan: executes one plan then another
  - NestedPlan: executes many plans at once
  - OnMainThreadPlan: waits for a syncPoint to execute
  - RunOnAllPlan: dispatches work over a Supplier<List>
  - SimplePlan: executes many Runnables at once
  - UnitPlan: does nothing
2023-04-08 18:08:53 -07:00
PepperCode1
72b5968305 More clean up 2023-04-07 16:01:03 -07:00
Jozufozu
ab8ab8dbd4 How to handle InstancePart abstraction
- Pull InstancePart into an interface
- Add Handle interface to opaquely notify an instancer something has
  changed or was deleted.
- Remove notify* methods from Instancer
- Remove stealInstance TODO: find a better way to accomplish that
- Track removals/changes through bitsets
- Deprecate InstancePart#copy
- Move InstanceManager#canCreateInstance to Storage#willAccept
2023-04-06 14:48:51 -07:00
PepperCode1
391adfef1a Instance Refactor II 2023-04-05 18:03:25 -07:00
Jozufozu
227aef509b It's-a me
- Lots of plumbing
- Storages/InstanceManagers directly reference the Engine
- Construct Instances with InstanceContext record
  - Stores InstancerProvider as well as Vec3i renderOrigin
- AbstractInstance stores renderOrigin
- InstancerProvider#getOriginCoordinate -> RenderDispatcher#renderOrigin
- Update some styling/documentation
- Inline InstancingControllerHelper create functions
- Use explicit functional interface instead of BiFunction in Controllers
2023-04-04 21:29:36 -07:00
Jozufozu
7326bdd3c2 Stripping instances
- Remove #removeNow and #getWorldPosition from Instance
- Add #distanceSquared for use in update limiting
- Refactor DistanceUpdateLimiter to directly accept distance squared
- Remove proper name from backend
- Misc. cleanup
  - ifs without braces
  - some method names
2023-04-04 17:17:06 -07:00
PepperCode1
632240abf0 Instance Refactor I 2023-04-04 12:36:54 -07:00
PepperCode1
2c010ffa06 Registry refactors and namespaced backends 2023-04-02 23:58:28 -07:00
PepperCode1
59773125b2 Update light updates
- Remove NetworkLightUpdateMixin and associated code
- Do not defer level renderer reload when changing backend
- Remove RenderWork
- Reset DrawBuffer on free
- Move CoordinateConsumer inside ImmutableBox
- Rename GridAlignedBB -> MutableBox
- Rename LightListener#isListenerInvalid -> #isInvalid
- Move package light -> lib.light
- Move package util.box -> lib.box
2023-04-01 11:01:24 -07:00
PepperCode1
806e861edc Reorganization II 2023-03-30 16:52:51 -07:00