docs.unity3d.com
    目次を表示する/隠す

    Struct RewindableAllocator

    An allocator that is fast like a linear allocator, is threadsafe, and automatically invalidates all allocations made from it, when "rewound" by the user.

    Namespace: Unity.Collections
    Syntax
    [BurstCompile]
    public struct RewindableAllocator : AllocatorManager.IAllocator, IDisposable

    Properties

    BlocksAllocated

    Retrieves the number of memory blocks that the allocator has requested from the system.

    Declaration
    public readonly int BlocksAllocated { get; }
    Property Value
    Type Description
    Int32

    EnableBlockFree

    Property to get and set enable block free flag, a flag indicating whether the allocator should enable individual block to be freed.

    Declaration
    public bool EnableBlockFree { get; set; }
    Property Value
    Type Description
    Boolean

    Function

    All allocators must implement this property, in order to be installed in the custom allocator table.

    Declaration
    [ExcludeFromBurstCompatTesting("Uses managed delegate")]
    public readonly AllocatorManager.TryFunction Function { get; }
    Property Value
    Type Description
    AllocatorManager.TryFunction
    Implements
    AllocatorManager.IAllocator.Function

    Handle

    Retrieve the AllocatorHandle associated with this allocator. The handle is used as an index into a global table, for times when a reference to the allocator object isn't available.

    Declaration
    public AllocatorManager.AllocatorHandle Handle { get; set; }
    Property Value
    Type Description
    AllocatorManager.AllocatorHandle

    The AllocatorHandle retrieved.

    Implements
    AllocatorManager.IAllocator.Handle

    InitialSizeInBytes

    Retrieves the size of the initial memory block, as requested in the Initialize function.

    Declaration
    public readonly int InitialSizeInBytes { get; }
    Property Value
    Type Description
    Int32

    IsCustomAllocator

    Check whether this AllocatorHandle is a custom allocator.

    Declaration
    public readonly bool IsCustomAllocator { get; }
    Property Value
    Type Description
    Boolean

    True if this AllocatorHandle is a custom allocator.

    Implements
    AllocatorManager.IAllocator.IsCustomAllocator

    ToAllocator

    Retrieve the Allocator associated with this allocator.

    Declaration
    public readonly Allocator ToAllocator { get; }
    Property Value
    Type Description
    Allocator

    The Allocator retrieved.

    Implements
    AllocatorManager.IAllocator.ToAllocator

    Methods

    AllocateNativeArray<T>(Int32)

    Allocate a NativeArray of type T from memory that is guaranteed to remain valid until the end of the next Update of this World. There is no need to Dispose the NativeArray so allocated. It is not possible to free the memory by Disposing it - it is automatically freed after the end of the next Update for this World.

    Declaration
    public NativeArray<T> AllocateNativeArray<T>(int length)
        where T : struct
    Parameters
    Type Name Description
    Int32 length

    The length of the NativeArray to allocate, measured in elements.

    Returns
    Type Description
    NativeArray<T>

    The NativeArray allocated by this function.

    Type Parameters
    Name Description
    T

    The element type of the NativeArray to allocate.

    AllocateNativeList<T>(Int32)

    Allocate a NativeList of type T from memory that is guaranteed to remain valid until the end of the next Update of this World. There is no need to Dispose the NativeList so allocated. It is not possible to free the memory by Disposing it - it is automatically freed after the end of the next Update for this World. The NativeList must be initialized with its maximum capacity; if it were to dynamically resize, up to 1/2 of the total final capacity would be wasted, because the memory can't be dynamically freed.

    Declaration
    public NativeList<T> AllocateNativeList<T>(int capacity)
        where T : struct
    Parameters
    Type Name Description
    Int32 capacity

    The capacity of the NativeList to allocate, measured in elements.

    Returns
    Type Description
    NativeList<T>

    The NativeList allocated by this function.

    Type Parameters
    Name Description
    T

    The element type of the NativeList to allocate.

    Dispose()

    Dispose the allocator. This must be called to free the memory blocks that were allocated from the system.

    Declaration
    public void Dispose()

    Initialize(Int32, Boolean)

    Initializes the allocator. Must be called before first use.

    Declaration
    public void Initialize(int initialSizeInBytes, bool enableBlockFree = false)
    Parameters
    Type Name Description
    Int32 initialSizeInBytes

    The initial capacity of the allocator, in bytes

    Boolean enableBlockFree

    A flag indicating if allocator enables individual block free

    Rewind()

    Rewind the allocator; invalidate all allocations made from it, and potentially also free memory blocks it has allocated from the system.

    Declaration
    public void Rewind()

    Try(ref AllocatorManager.Block)

    Try to allocate, free, or reallocate a block of memory. This is an internal function, and is not generally called by the user.

    Declaration
    public int Try(ref AllocatorManager.Block block)
    Parameters
    Type Name Description
    AllocatorManager.Block block

    The memory block to allocate, free, or reallocate

    Returns
    Type Description
    Int32

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

    Implements
    AllocatorManager.IAllocator.Try(ref AllocatorManager.Block)

    Extension Methods

    AllocatorManager.Register<T>(ref T, Boolean, Int32)
    AllocatorManager.UnmanagedUnregister<T>(ref T)
    AllocatorManager.Unregister<T>(ref T)
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)