Class DrawManager<N extends AbstractInstancer<?>>
java.lang.Object
dev.engine_room.flywheel.backend.engine.DrawManager<N>
- Direct Known Subclasses:
IndirectDrawManager,InstancedDrawManager
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static interfaceDrawManager.State2Instancer<I extends AbstractInstancer<?>>protected static final recordDrawManager.UninitializedInstancer<N,I extends Instance> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Function<InstancerKey<?>, N> Function object to pass into computeIfAbsent.protected final Queue<DrawManager.UninitializedInstancer<N, ?>> A list of instancers that have not yet been initialized.protected final Map<InstancerKey<?>, N> A map of instancer keys to instancers. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreate(InstancerKey<I> type) voiddelete()protected static <I extends AbstractInstancer<?>>
Map<GroupKey<?>, it.unimi.dsi.fastutil.ints.Int2ObjectMap<List<com.mojang.datafixers.util.Pair<I, InstanceHandleImpl<?>>>>> doCrumblingSort(List<Engine.CrumblingBlock> crumblingBlocks, DrawManager.State2Instancer<I> cast) <I extends Instance>
AbstractInstancer<I> getInstancer(Environment environment, InstanceType<I> type, Model model, int bias) <I extends Instance>
AbstractInstancer<I> getInstancer(InstancerKey<I> key) protected abstract <I extends Instance>
voidinitialize(InstancerKey<I> key, N instancer) Map<InstancerKey<?>, N> abstract MeshPoolmeshPool()voidvoidrender(LightStorage lightStorage, EnvironmentStorage environmentStorage) abstract voidrenderCrumbling(List<Engine.CrumblingBlock> crumblingBlocks) abstract void
-
Field Details
-
instancers
A map of instancer keys to instancers.This map is populated as instancers are requested and contains both initialized and uninitialized instancers.
-
initializationQueue
protected final Queue<DrawManager.UninitializedInstancer<N extends AbstractInstancer<?>,?>> initializationQueueA list of instancers that have not yet been initialized.All new instancers land here before having resources allocated in
render(dev.engine_room.flywheel.backend.engine.LightStorage, dev.engine_room.flywheel.backend.engine.embed.EnvironmentStorage). -
createAndDeferInit
Function object to pass into computeIfAbsent.Create once and cache to avoid allocating every time.
-
-
Constructor Details
-
DrawManager
public DrawManager()
-
-
Method Details
-
getInstancer
public <I extends Instance> AbstractInstancer<I> getInstancer(Environment environment, InstanceType<I> type, Model model, int bias) -
getInstancer
-
createFramePlan
-
render
-
onRenderOriginChanged
public void onRenderOriginChanged() -
renderCrumbling
-
create
-
initialize
-
doCrumblingSort
protected static <I extends AbstractInstancer<?>> Map<GroupKey<?>,it.unimi.dsi.fastutil.ints.Int2ObjectMap<List<com.mojang.datafixers.util.Pair<I, doCrumblingSortInstanceHandleImpl<?>>>>> (List<Engine.CrumblingBlock> crumblingBlocks, DrawManager.State2Instancer<I> cast) -
delete
public void delete() -
triggerFallback
public abstract void triggerFallback() -
meshPool
-
instancers
-