🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
6.0 KiB

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  3. <Type Name="entt::basic_registry&lt;*&gt;">
  4. <Intrinsic Name="pools_size" Expression="pools.packed.first_base::value.size()"/>
  5. <Intrinsic Name="vars_size" Expression="vars.data.packed.first_base::value.size()"/>
  6. <Intrinsic Name="to_entity" Expression="*((entity_traits::entity_type *)&amp;entity) &amp; entity_traits::entity_mask">
  7. <Parameter Name="entity" Type="entity_traits::value_type &amp;"/>
  8. </Intrinsic>
  9. <DisplayString>{{ size={ entities.size() } }}</DisplayString>
  10. <Expand>
  11. <Item IncludeView="simple" Name="[entities]">entities,view(simple)nr</Item>
  12. <Synthetic Name="[entities]" ExcludeView="simple">
  13. <DisplayString>{ entities.size() }</DisplayString>
  14. <Expand>
  15. <CustomListItems>
  16. <Variable Name="pos" InitialValue="0" />
  17. <Variable Name="last" InitialValue="entities.size()"/>
  18. <Loop>
  19. <Break Condition="pos == last"/>
  20. <If Condition="to_entity(entities[pos]) == pos">
  21. <Item Name="[{ pos }]">entities[pos]</Item>
  22. </If>
  23. <Exec>++pos</Exec>
  24. </Loop>
  25. </CustomListItems>
  26. </Expand>
  27. </Synthetic>
  28. <Synthetic Name="[destroyed]" ExcludeView="simple">
  29. <DisplayString>{ to_entity(free_list) != entity_traits::entity_mask }</DisplayString>
  30. <Expand>
  31. <CustomListItems>
  32. <Variable Name="it" InitialValue="to_entity(free_list)" />
  33. <Loop>
  34. <Break Condition="it == entity_traits::entity_mask"/>
  35. <Item Name="[{ it }]">entities[it]</Item>
  36. <Exec>it = to_entity(entities[it])</Exec>
  37. </Loop>
  38. </CustomListItems>
  39. </Expand>
  40. </Synthetic>
  41. <Synthetic Name="[pools]">
  42. <DisplayString>{ pools_size() }</DisplayString>
  43. <Expand>
  44. <IndexListItems ExcludeView="simple">
  45. <Size>pools_size()</Size>
  46. <ValueNode>*pools.packed.first_base::value[$i].element.second</ValueNode>
  47. </IndexListItems>
  48. <IndexListItems IncludeView="simple">
  49. <Size>pools_size()</Size>
  50. <ValueNode>*pools.packed.first_base::value[$i].element.second,view(simple)</ValueNode>
  51. </IndexListItems>
  52. </Expand>
  53. </Synthetic>
  54. <Item Name="[groups]" ExcludeView="simple">groups.size()</Item>
  55. <Synthetic Name="[vars]">
  56. <DisplayString>{ vars_size() }</DisplayString>
  57. <Expand>
  58. <IndexListItems>
  59. <Size>vars_size()</Size>
  60. <ValueNode>vars.data.packed.first_base::value[$i].element.second</ValueNode>
  61. </IndexListItems>
  62. </Expand>
  63. </Synthetic>
  64. </Expand>
  65. </Type>
  66. <Type Name="entt::basic_sparse_set&lt;*&gt;">
  67. <DisplayString>{{ size={ packed.size() }, type={ info->alias,na } }}</DisplayString>
  68. <Expand>
  69. <Item Name="[capacity]" ExcludeView="simple">packed.capacity()</Item>
  70. <Item Name="[policy]">mode,en</Item>
  71. <Synthetic Name="[sparse]">
  72. <DisplayString>{ sparse.size() * entity_traits::page_size }</DisplayString>
  73. <Expand>
  74. <ExpandedItem IncludeView="simple">sparse,view(simple)</ExpandedItem>
  75. <CustomListItems ExcludeView="simple">
  76. <Variable Name="pos" InitialValue="0"/>
  77. <Variable Name="page" InitialValue="0"/>
  78. <Variable Name="offset" InitialValue="0"/>
  79. <Variable Name="last" InitialValue="sparse.size() * entity_traits::page_size"/>
  80. <Loop>
  81. <Break Condition="pos == last"/>
  82. <Exec>page = pos / entity_traits::page_size</Exec>
  83. <Exec>offset = pos &amp; (entity_traits::page_size - 1)</Exec>
  84. <If Condition="sparse[page] &amp;&amp; (*((entity_traits::entity_type *)&amp;sparse[page][offset]) &lt; ~entity_traits::entity_mask)">
  85. <Item Name="[{ pos }]">*((entity_traits::entity_type *)&amp;sparse[page][offset]) &amp; entity_traits::entity_mask</Item>
  86. </If>
  87. <Exec>++pos</Exec>
  88. </Loop>
  89. </CustomListItems>
  90. </Expand>
  91. </Synthetic>
  92. <Synthetic Name="[packed]">
  93. <DisplayString>{ packed.size() }</DisplayString>
  94. <Expand>
  95. <ExpandedItem IncludeView="simple">packed,view(simple)</ExpandedItem>
  96. <CustomListItems ExcludeView="simple">
  97. <Variable Name="pos" InitialValue="0"/>
  98. <Variable Name="last" InitialValue="packed.size()"/>
  99. <Loop>
  100. <Break Condition="pos == last"/>
  101. <If Condition="*((entity_traits::entity_type *)&amp;packed[pos]) &lt; ~entity_traits::entity_mask">
  102. <Item Name="[{ pos }]">packed[pos]</Item>
  103. </If>
  104. <Exec>++pos</Exec>
  105. </Loop>
  106. </CustomListItems>
  107. </Expand>
  108. </Synthetic>
  109. </Expand>
  110. </Type>
  111. <Type Name="entt::basic_storage&lt;*&gt;">
  112. <DisplayString>{{ size={ base_type::packed.size() }, type={ base_type::info->alias,na } }}</DisplayString>
  113. <Expand>
  114. <Item Name="[capacity]" Optional="true" ExcludeView="simple">packed.first_base::value.capacity() * comp_traits::page_size</Item>
  115. <Item Name="[page size]" Optional="true" ExcludeView="simple">comp_traits::page_size</Item>
  116. <Item Name="[base]" ExcludeView="simple">(base_type*)this,nand</Item>
  117. <Item Name="[base]" IncludeView="simple">(base_type*)this,view(simple)nand</Item>
  118. <!-- having SFINAE-like techniques in natvis is priceless :) -->
  119. <CustomListItems Condition="packed.first_base::value.size() != 0" Optional="true">
  120. <Variable Name="pos" InitialValue="0" />
  121. <Variable Name="last" InitialValue="base_type::packed.size()"/>
  122. <Loop>
  123. <Break Condition="pos == last"/>
  124. <If Condition="*((base_type::entity_traits::entity_type *)&amp;base_type::packed[pos]) &lt; ~base_type::entity_traits::entity_mask">
  125. <Item Name="[{ pos }]">packed.first_base::value[pos / comp_traits::page_size][pos &amp; (comp_traits::page_size - 1)]</Item>
  126. </If>
  127. <Exec>++pos</Exec>
  128. </Loop>
  129. </CustomListItems>
  130. </Expand>
  131. </Type>
  132. <Type Name="entt::basic_view&lt;*&gt;">
  133. <DisplayString>{{ size_hint={ view->packed.size() } }}</DisplayString>
  134. <Expand>
  135. <Item Name="[pools]">pools,na</Item>
  136. <Item Name="[filter]">filter,na</Item>
  137. </Expand>
  138. </Type>
  139. <Type Name="entt::null_t">
  140. <DisplayString>&lt;null&gt;</DisplayString>
  141. </Type>
  142. <Type Name="entt::tombstone_t">
  143. <DisplayString>&lt;tombstone&gt;</DisplayString>
  144. </Type>
  145. </AutoVisualizer>