Class TransientBlockAllocator<T>

java.lang.Object
com.mojang.blaze3d.util.TransientBlockAllocator<T>
All Implemented Interfaces:
AutoCloseable

public class TransientBlockAllocator<T> extends Object implements AutoCloseable
  • Field Details

    • blockSize

      private final long blockSize
    • maxAlignment

      private final long maxAlignment
    • allocator

      private final TransientBlockAllocator.Allocator<T> allocator
    • onBlockUse

      private final Consumer<T> onBlockUse
    • specialBlocks

      private final it.unimi.dsi.fastutil.objects.ReferenceArrayList<T> specialBlocks
    • freeBlocks

      private final it.unimi.dsi.fastutil.objects.ReferenceArrayList<T> freeBlocks
    • usedBlocks

      private final it.unimi.dsi.fastutil.objects.ReferenceArrayList<T> usedBlocks
    • currentBlock

      private @Nullable T currentBlock
    • currentOffset

      private long currentOffset
  • Constructor Details

  • Method Details

    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • blockSize

      public long blockSize()
    • rotate

      public Runnable rotate()
    • canAllocateInBlock

      @Contract(pure=true) public boolean canAllocateInBlock(long size, long alignment)
    • canAllocateInCurrentBlock

      @Contract(pure=true) public boolean canAllocateInCurrentBlock(long size, long alignment)
    • allocateBlock

      private T allocateBlock()
    • allocate

      public TransientBlockAllocator.Allocation<T> allocate(long size, long alignment, long minimumAllocation, long elementSize)