154 lines
6.3 KiB
Plaintext
154 lines
6.3 KiB
Plaintext
|
<?xml version="1.0" encoding="utf-8"?>
|
||
|
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
||
|
<Type Name="entt::basic_registry<*>">
|
||
|
<Intrinsic Name="pools_size" Expression="pools.packed.first_base::value.size()"/>
|
||
|
<Intrinsic Name="vars_size" Expression="vars.ctx.packed.first_base::value.size()"/>
|
||
|
<Intrinsic Name="to_entity" Expression="*((entity_traits::entity_type *)&entity) & entity_traits::entity_mask">
|
||
|
<Parameter Name="entity" Type="entity_traits::value_type &"/>
|
||
|
</Intrinsic>
|
||
|
<DisplayString>{{ size={ epool.size() } }}</DisplayString>
|
||
|
<Expand>
|
||
|
<Item IncludeView="simple" Name="[epool]">epool,view(simple)nr</Item>
|
||
|
<Synthetic Name="[epool]" ExcludeView="simple">
|
||
|
<DisplayString>{ epool.size() }</DisplayString>
|
||
|
<Expand>
|
||
|
<CustomListItems>
|
||
|
<Variable Name="pos" InitialValue="0" />
|
||
|
<Variable Name="last" InitialValue="epool.size()"/>
|
||
|
<Loop>
|
||
|
<Break Condition="pos == last"/>
|
||
|
<If Condition="to_entity(epool[pos]) == pos">
|
||
|
<Item Name="[{ pos }]">epool[pos]</Item>
|
||
|
</If>
|
||
|
<Exec>++pos</Exec>
|
||
|
</Loop>
|
||
|
</CustomListItems>
|
||
|
</Expand>
|
||
|
</Synthetic>
|
||
|
<Synthetic Name="[destroyed]" ExcludeView="simple">
|
||
|
<DisplayString>{ to_entity(free_list) != entity_traits::entity_mask }</DisplayString>
|
||
|
<Expand>
|
||
|
<CustomListItems>
|
||
|
<Variable Name="it" InitialValue="to_entity(free_list)" />
|
||
|
<Loop>
|
||
|
<Break Condition="it == entity_traits::entity_mask"/>
|
||
|
<Item Name="[{ it }]">epool[it]</Item>
|
||
|
<Exec>it = to_entity(epool[it])</Exec>
|
||
|
</Loop>
|
||
|
</CustomListItems>
|
||
|
</Expand>
|
||
|
</Synthetic>
|
||
|
<Synthetic Name="[pools]">
|
||
|
<DisplayString>{ pools_size() }</DisplayString>
|
||
|
<Expand>
|
||
|
<IndexListItems ExcludeView="simple">
|
||
|
<Size>pools_size()</Size>
|
||
|
<ValueNode>*pools.packed.first_base::value[$i].element.second</ValueNode>
|
||
|
</IndexListItems>
|
||
|
<IndexListItems IncludeView="simple">
|
||
|
<Size>pools_size()</Size>
|
||
|
<ValueNode>*pools.packed.first_base::value[$i].element.second,view(simple)</ValueNode>
|
||
|
</IndexListItems>
|
||
|
</Expand>
|
||
|
</Synthetic>
|
||
|
<Item Name="[groups]" ExcludeView="simple">groups.size()</Item>
|
||
|
<Synthetic Name="[vars]">
|
||
|
<DisplayString>{ vars_size() }</DisplayString>
|
||
|
<Expand>
|
||
|
<IndexListItems>
|
||
|
<Size>vars_size()</Size>
|
||
|
<ValueNode>vars.ctx.packed.first_base::value[$i].element.second</ValueNode>
|
||
|
</IndexListItems>
|
||
|
</Expand>
|
||
|
</Synthetic>
|
||
|
</Expand>
|
||
|
</Type>
|
||
|
<Type Name="entt::basic_sparse_set<*>">
|
||
|
<DisplayString>{{ size={ packed.size() }, type={ info->alias,na } }}</DisplayString>
|
||
|
<Expand>
|
||
|
<Item Name="[capacity]" ExcludeView="simple">packed.capacity()</Item>
|
||
|
<Item Name="[policy]">mode,en</Item>
|
||
|
<Synthetic Name="[sparse]">
|
||
|
<DisplayString>{ sparse.size() * entity_traits::page_size }</DisplayString>
|
||
|
<Expand>
|
||
|
<ExpandedItem IncludeView="simple">sparse,view(simple)</ExpandedItem>
|
||
|
<CustomListItems ExcludeView="simple">
|
||
|
<Variable Name="pos" InitialValue="0"/>
|
||
|
<Variable Name="page" InitialValue="0"/>
|
||
|
<Variable Name="offset" InitialValue="0"/>
|
||
|
<Variable Name="last" InitialValue="sparse.size() * entity_traits::page_size"/>
|
||
|
<Loop>
|
||
|
<Break Condition="pos == last"/>
|
||
|
<Exec>page = pos / entity_traits::page_size</Exec>
|
||
|
<Exec>offset = pos & (entity_traits::page_size - 1)</Exec>
|
||
|
<If Condition="sparse[page] && (*((entity_traits::entity_type *)&sparse[page][offset]) < ~entity_traits::entity_mask)">
|
||
|
<Item Name="[{ pos }]">*((entity_traits::entity_type *)&sparse[page][offset]) & entity_traits::entity_mask</Item>
|
||
|
</If>
|
||
|
<Exec>++pos</Exec>
|
||
|
</Loop>
|
||
|
</CustomListItems>
|
||
|
</Expand>
|
||
|
</Synthetic>
|
||
|
<Synthetic Name="[packed]">
|
||
|
<DisplayString>{ packed.size() }</DisplayString>
|
||
|
<Expand>
|
||
|
<ExpandedItem IncludeView="simple">packed,view(simple)</ExpandedItem>
|
||
|
<CustomListItems ExcludeView="simple">
|
||
|
<Variable Name="pos" InitialValue="0"/>
|
||
|
<Variable Name="last" InitialValue="packed.size()"/>
|
||
|
<Loop>
|
||
|
<Break Condition="pos == last"/>
|
||
|
<If Condition="*((entity_traits::entity_type *)&packed[pos]) < ~entity_traits::entity_mask">
|
||
|
<Item Name="[{ pos }]">packed[pos]</Item>
|
||
|
</If>
|
||
|
<Exec>++pos</Exec>
|
||
|
</Loop>
|
||
|
</CustomListItems>
|
||
|
</Expand>
|
||
|
</Synthetic>
|
||
|
</Expand>
|
||
|
</Type>
|
||
|
<Type Name="entt::basic_storage<*>">
|
||
|
<DisplayString>{{ size={ base_type::packed.size() }, type={ base_type::info->alias,na } }}</DisplayString>
|
||
|
<Expand>
|
||
|
<Item Name="[capacity]" Optional="true" ExcludeView="simple">packed.first_base::value.capacity() * comp_traits::page_size</Item>
|
||
|
<Item Name="[page size]" Optional="true" ExcludeView="simple">comp_traits::page_size</Item>
|
||
|
<Item Name="[base]" ExcludeView="simple">(base_type*)this,nand</Item>
|
||
|
<Item Name="[base]" IncludeView="simple">(base_type*)this,view(simple)nand</Item>
|
||
|
<!-- having SFINAE-like techniques in natvis is priceless :) -->
|
||
|
<CustomListItems Condition="packed.first_base::value.size() != 0" Optional="true">
|
||
|
<Variable Name="pos" InitialValue="0" />
|
||
|
<Variable Name="last" InitialValue="base_type::packed.size()"/>
|
||
|
<Loop>
|
||
|
<Break Condition="pos == last"/>
|
||
|
<If Condition="*((base_type::entity_traits::entity_type *)&base_type::packed[pos]) < ~base_type::entity_traits::entity_mask">
|
||
|
<Item Name="[{ pos }:{ base_type::packed[pos] }]">packed.first_base::value[pos / comp_traits::page_size][pos & (comp_traits::page_size - 1)]</Item>
|
||
|
</If>
|
||
|
<Exec>++pos</Exec>
|
||
|
</Loop>
|
||
|
</CustomListItems>
|
||
|
</Expand>
|
||
|
</Type>
|
||
|
<Type Name="entt::basic_view<*>">
|
||
|
<DisplayString>{{ size_hint={ view->packed.size() } }}</DisplayString>
|
||
|
<Expand>
|
||
|
<Item Name="[pools]">pools,na</Item>
|
||
|
<Item Name="[filter]">filter,na</Item>
|
||
|
</Expand>
|
||
|
</Type>
|
||
|
<Type Name="entt::basic_runtime_view<*>">
|
||
|
<DisplayString Condition="pools.size() != 0u">{{ size_hint={ pools[0]->packed.size() } }}</DisplayString>
|
||
|
<DisplayString>{{ size_hint=0 }}</DisplayString>
|
||
|
<Expand>
|
||
|
<Item Name="[pools]">pools,na</Item>
|
||
|
<Item Name="[filter]">filter,na</Item>
|
||
|
</Expand>
|
||
|
</Type>
|
||
|
<Type Name="entt::null_t">
|
||
|
<DisplayString><null></DisplayString>
|
||
|
</Type>
|
||
|
<Type Name="entt::tombstone_t">
|
||
|
<DisplayString><tombstone></DisplayString>
|
||
|
</Type>
|
||
|
</AutoVisualizer>
|