docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Struct AllocatorManager.Block

    Represents an individual allocation within an allocator.

    Namespace: Unity.Collections
    Assembly: Unity.Collections.dll
    Syntax
    public struct AllocatorManager.Block
    Remarks

    A block consists of a Range plus metadata about the type of elements for which the block was allocated.

    Fields

    AllocatedItems

    Number of items allocated for.

    Declaration
    public int AllocatedItems
    Field Value
    Type Description
    int

    Number of items allocated for.

    BytesPerItem

    Number of bytes per item.

    Declaration
    public int BytesPerItem
    Field Value
    Type Description
    int

    Number of bytes per item.

    Log2Alignment

    Log2 of the byte alignment.

    Declaration
    public byte Log2Alignment
    Field Value
    Type Description
    byte

    Log2 of the byte alignment.

    Remarks

    The alignment must always be power of 2. Storing the alignment as its log2 helps enforces this.

    Padding0

    This field only exists to pad the Block struct. Ignore it.

    Declaration
    public byte Padding0
    Field Value
    Type Description
    byte

    This field only exists to pad the Block struct. Ignore it.

    Padding1

    This field only exists to pad the Block struct. Ignore it.

    Declaration
    public ushort Padding1
    Field Value
    Type Description
    ushort

    This field only exists to pad the Block struct. Ignore it.

    Padding2

    This field only exists to pad the Block struct. Ignore it.

    Declaration
    public uint Padding2
    Field Value
    Type Description
    uint

    This field only exists to pad the Block struct. Ignore it.

    Range

    The range of memory encompassed by this block.

    Declaration
    public AllocatorManager.Range Range
    Field Value
    Type Description
    AllocatorManager.Range

    The range of memory encompassed by this block.

    Properties

    Alignment

    The alignment.

    Declaration
    public int Alignment { get; set; }
    Property Value
    Type Description
    int

    The alignment.

    Remarks

    Must be power of 2 that's greater than or equal to 0.

     Set alignment *before* the allocation is made. Setting it after has no effect on the allocation.
    

    AllocatedBytes

    Number of bytes allocated for this block.

    Declaration
    public long AllocatedBytes { get; }
    Property Value
    Type Description
    long

    Number of bytes allocated for this block.

    Remarks

    The requested allocation size may be smaller. Any excess is due to alignment

    Bytes

    Number of bytes requested for this block.

    Declaration
    public long Bytes { get; }
    Property Value
    Type Description
    long

    Number of bytes requested for this block.

    Remarks

    The actual allocation size may be larger due to alignment.

    Methods

    Allocate()

    Allocates this block.

    Declaration
    public void Allocate()
    Exceptions
    Type Condition
    ArgumentException

    Thrown if safety checks are enabled and the allocation fails.

    Dispose()

    Deallocates this block.

    Declaration
    public void Dispose()
    Remarks

    Same as TryAllocate().

    Free()

    Frees the block.

    Declaration
    public void Free()
    Exceptions
    Type Condition
    ArgumentException

    Thrown if safety checks are enabled and the deallocation fails.

    TryAllocate()

    Attempts to allocate this block.

    Declaration
    public int TryAllocate()
    Returns
    Type Description
    int

    0 if successful. Otherwise, returns the error code from the allocator function.

    TryFree()

    Attempts to free this block.

    Declaration
    public int TryFree()
    Returns
    Type Description
    int

    0 if successful. Otherwise, returns the error code from the allocator function.

    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)