/// <summary>Given free suballocation, it removes it from sorted list of <see cref="m_FreeSuballocationsBySize"/> if it's suitable.</summary> public void UnregisterFreeSuballocation(D3D12MA_List <D3D12MA_Suballocation> .iterator item) { D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (item.Get()->type == D3D12MA_SUBALLOCATION_TYPE_FREE)); D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (item.Get()->size > 0)); // You may want to enable this validation at the beginning or at the end of // this function, depending on what do you want to check. D3D12MA_HEAVY_ASSERT((D3D12MA_DEBUG_LEVEL > 1) && ValidateFreeSuballocationList()); if (item.Get()->size >= MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER) { D3D12MA_List <D3D12MA_Suballocation> .iterator *it = BinaryFindFirstNotLess( m_FreeSuballocationsBySize.data(), m_FreeSuballocationsBySize.data() + m_FreeSuballocationsBySize.size(), in item, new D3D12MA_SuballocationItemSizeLess() ); for (nuint index = (nuint)(it - m_FreeSuballocationsBySize.data()); index < m_FreeSuballocationsBySize.size(); ++index) { if (*m_FreeSuballocationsBySize[index] == item) { m_FreeSuballocationsBySize.remove(index); return; } D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (m_FreeSuballocationsBySize[index]->Get()->size == item.Get()->size)); // "Not found!" } D3D12MA_ASSERT(false); // "Not found!" } // D3D12MA_HEAVY_ASSERT((D3D12MA_DEBUG_LEVEL > 1) && ValidateFreeSuballocationList()); }
public readonly ushort *GetData() => m_Data.data();