<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="D3D12MA::Vector&lt;*&gt;">
    <DisplayString>{{ Count={m_Count} }}</DisplayString>
    <Expand>
      <Item Name="[Count]">m_Count</Item>
      <Item Name="[Capacity]">m_Capacity</Item>
      <ArrayItems>
        <Size>m_Count</Size>
        <ValuePointer>m_pArray</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>

  <Type Name="D3D12MA::List&lt;*&gt;">
    <DisplayString>{{ Count={m_Count} }}</DisplayString>
    <Expand>
      <Item Name="[Count]">m_Count</Item>
      <LinkedListItems>
        <Size>m_Count</Size>
        <HeadPointer>m_pFront</HeadPointer>
        <NextPointer>pNext</NextPointer>
        <ValueNode>Value</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
  
  <!--
    Due to custom way of accesing next items in
    D3D12MA::IntrusiveLinkedList via methods in provided type traits,
    every specialization must be manually added with
    custom <NextPointer> field describing proper way of iterating the list.
  -->
  <Type Name="D3D12MA::IntrusiveLinkedList&lt;D3D12MA::CommittedAllocationListItemTraits&gt;">
    <DisplayString>{{ Count={m_Count} }}</DisplayString>
    <Expand>
      <Item Name="[Count]">m_Count</Item>
      <LinkedListItems>
        <Size>m_Count</Size>
        <HeadPointer>m_Front</HeadPointer>
        <NextPointer>m_Committed.next</NextPointer>
        <ValueNode>*this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
  <Type Name="D3D12MA::IntrusiveLinkedList&lt;D3D12MA::PoolListItemTraits&gt;">
    <DisplayString>{{ Count={m_Count} }}</DisplayString>
    <Expand>
      <Item Name="[Count]">m_Count</Item>
      <LinkedListItems>
        <Size>m_Count</Size>
        <HeadPointer>m_Front</HeadPointer>
        <NextPointer>m_NextPool</NextPointer>
        <ValueNode>*this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
</AutoVisualizer>