/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Foundation/ezEngine.natvis
363 строки
17 KB
Sanakan8472
Visualizer Updates (#1614)
19 июл 2025, 21:44
Не верифицирован
19 июл 2025, 21:44
aa18d1e
Код
Авторство
О чём код?
<?xml version="1.0" encoding="utf-8"?> <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> <Type Name="vk::Flags<*>"> <DisplayString>[{($T1)m_mask}]</DisplayString> </Type> <!-- Strings--> <Type Name="ezHybridStringBase<*>"> <AlternativeType Name="ezStringBuilder" /> <DisplayString>{m_Data.m_pElements,s8}</DisplayString> <StringView>m_Data.m_pElements,s8</StringView> <Expand> <Item Name="String">m_Data.m_pElements,s8</Item> <Item Name="ElementCount">m_Data.m_uiCount-1</Item> </Expand> </Type> <Type Name="ezStringView"> <DisplayString Condition="m_pStart != 0">{m_pStart,[m_uiElementCount]}</DisplayString> <DisplayString Condition="m_pStart == 0"><Invalid String></DisplayString> <StringView>m_pStart,[m_uiElementCount]</StringView> <Expand> <Item Name="String" Condition="m_pStart != 0">m_pStart,[m_uiElementCount]</Item> <Item Name="ElementCount">m_uiElementCount</Item> <Item Name="Valid">m_pStart != 0</Item> <Item Name="ZeroTerminated" Condition="m_pStart != 0">m_pStart[m_uiElementCount] == 0</Item> </Expand> </Type> <Type Name="ezStringIterator"> <AlternativeType Name="ezStringReverseIterator" /> <DisplayString Condition="m_pCurPtr == 0"><Invalid Iterator></DisplayString> <DisplayString Condition="(m_pCurPtr[1] & 0xC0) != 0x80">{m_pCurPtr,[1]s8}</DisplayString> <DisplayString Condition="(m_pCurPtr[1] & 0xC0) == 0x80 && (m_pCurPtr[2] & 0xC0) != 0x80">{m_pCurPtr,[2]s8}</DisplayString> <DisplayString Condition="(m_pCurPtr[1] & 0xC0) == 0x80 && (m_pCurPtr[2] & 0xC0) == 0x80 && (m_pCurPtr[3] & 0xC0) != 0x80">{m_pCurPtr,[3]s8}</DisplayString> <DisplayString Condition="(m_pCurPtr[1] & 0xC0) == 0x80 && (m_pCurPtr[2] & 0xC0) == 0x80 && (m_pCurPtr[3] & 0xC0) == 0x80 && (m_pCurPtr[4] & 0xC0) != 0x80">{m_pCurPtr,[4]s8}</DisplayString> </Type> <Type Name="ezHashedString"> <DisplayString>{m_Data.m_pElement->m_Value.m_sString}</DisplayString> <StringView>m_Data.m_pElement->m_Value.m_sString</StringView> <Expand> <Item Name="hash">m_Data.m_pElement->m_Key,x</Item> </Expand> </Type> <!-- Container & Arrays--> <Type Name="ezDynamicArrayBase<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <Item Name="capacity">m_uiCapacity</Item> <ArrayItems> <Size>m_uiCount</Size> <ValuePointer>m_pElements</ValuePointer> </ArrayItems> </Expand> </Type> <Type Name="ezArrayBase<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <Item Name="capacity">m_uiCapacity</Item> <ArrayItems> <Size>m_uiCount</Size> <ValuePointer>m_pElements</ValuePointer> </ArrayItems> </Expand> </Type> <Type Name="ezSmallArrayBase<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <Item Name="capacity">m_uiCapacity</Item> <Item Name="userdata">m_uiUserData</Item> <ArrayItems> <Size>m_uiCount</Size> <ValuePointer>(m_uiCapacity <= $T2) ? ($T1*)((intptr_t)(m_StaticData)) : m_pElements</ValuePointer> </ArrayItems> </Expand> </Type> <Type Name="ezStaticArray<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <Item Name="capacity">m_uiCapacity</Item> <ArrayItems> <Size>m_uiCount</Size> <ValuePointer>($T1*)m_Data</ValuePointer> </ArrayItems> </Expand> </Type> <Type Name="ezHashTableBase<*>"> <AlternativeType Name="ezHashSetBase<*>" /> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <Item Name="capacity">m_uiCapacity</Item> <CustomListItems MaxItemsPerView="1000"> <Variable Name="index" InitialValue="0" /> <Variable Name="flags" InitialValue="0" /> <Variable Name="count" InitialValue="0" /> <Size>m_uiCount</Size> <Loop> <Exec>flags = (m_pEntryFlags[index / 16] >> ((index & 15) * 2)) & 3</Exec> <If Condition="(flags & 0x01) == 0x01"> <Item>m_pEntries[index]</Item> <Exec>count++</Exec> </If> <Exec>index++</Exec> <Break Condition="count == m_uiCount" /> </Loop> </CustomListItems> </Expand> </Type> <Type Name="ezListBase<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <LinkedListItems> <Size>m_uiCount</Size> <HeadPointer>m_First.m_pNext</HeadPointer> <NextPointer>m_pNext</NextPointer> <ValueNode>m_Data</ValueNode> </LinkedListItems> </Expand> </Type> <Type Name="ezDequeBase<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <IndexListItems> <Size>m_uiCount</Size> <ValueNode>m_pChunks[(m_uiFirstElement + $i) / m_uiChunkSize][(m_uiFirstElement + $i) % m_uiChunkSize]</ValueNode> </IndexListItems> </Expand> </Type> <Type Name="ezMapBase<*>"> <AlternativeType Name="ezSetBase<*>" /> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <TreeItems> <Size>m_uiCount</Size> <HeadPointer>m_pRoot</HeadPointer> <LeftPointer>m_pLink[0]</LeftPointer> <RightPointer>m_pLink[1]</RightPointer> <ValueNode Condition="m_uiLevel != 0">*this</ValueNode> </TreeItems> </Expand> </Type> <Type Name="ezStaticRingBuffer<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <CustomListItems MaxItemsPerView="1000"> <Variable Name="index" InitialValue="m_uiFirstElement" /> <Size>m_uiCount</Size> <Loop> <Item>m_pElements[index]</Item> <Exec>index = (index + 1) % $T2</Exec> </Loop> </CustomListItems> </Expand> </Type> <Type Name="ezArrayPtr<*>"> <DisplayString>{{ count={m_uiCount} }}</DisplayString> <Expand> <Item Name="count">m_uiCount</Item> <ArrayItems> <Size>m_uiCount</Size> <ValuePointer>m_pPtr</ValuePointer> </ArrayItems> </Expand> </Type> <!-- Basic Types --> <Type Name="ezVariant"> <DisplayString Condition="m_uiType == Type::TypedObject && m_bIsShared">({m_Data.shared->m_pType->m_sTypeName,sb}*) {reinterpret_cast<void*>(m_Data.shared->m_Ptr)}</DisplayString> <DisplayString Condition="m_uiType == Type::TypedObject && !m_bIsShared">({m_Data.inlined.m_pType->m_sTypeName,sb}*) {reinterpret_cast<void*>(&m_Data)}</DisplayString> <DisplayString Condition="m_uiType == Type::TypedPointer">({reinterpret_cast<ezTypedPointer*>(&m_Data)->m_pType->m_sTypeName,sb}*) {reinterpret_cast<ezTypedPointer*>(&m_Data)->m_pObject}</DisplayString> <Expand> <Item Name="Type">(Type::Enum) m_uiType</Item> <Item Name="Value" Condition="m_uiType == Type::Bool">*reinterpret_cast<bool*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Int8">*reinterpret_cast<ezInt8*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::UInt8">*reinterpret_cast<ezUInt8*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Int16">*reinterpret_cast<ezInt16*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::UInt16">*reinterpret_cast<ezUInt16*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Int32">*reinterpret_cast<ezInt32*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::UInt32">*reinterpret_cast<ezUInt32*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Int64">*reinterpret_cast<ezInt64*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::UInt64">*reinterpret_cast<ezUInt64*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Float">*reinterpret_cast<float*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Double">*reinterpret_cast<double*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Color">*reinterpret_cast<ezColor*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector2">*reinterpret_cast<ezVec2Template<float>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector3">*reinterpret_cast<ezVec3Template<float>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector4">*reinterpret_cast<ezVec4Template<float>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector2I">*reinterpret_cast<ezVec2Template<int>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector3I">*reinterpret_cast<ezVec3Template<int>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector4I">*reinterpret_cast<ezVec4Template<int>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector2U">*reinterpret_cast<ezVec2Template<unsigned int>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector3U">*reinterpret_cast<ezVec3Template<unsigned int>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Vector4U">*reinterpret_cast<ezVec4Template<unsigned int>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Quaternion">*reinterpret_cast<ezQuatTemplate<float>*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Matrix3">*reinterpret_cast<ezMat3Template<float>*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::Matrix4">*reinterpret_cast<ezMat4Template<float>*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::Transform">*reinterpret_cast<ezTransformTemplate<float>*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::String">*reinterpret_cast<ezHybridStringBase<32>*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::StringView">*reinterpret_cast<ezStringView*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::DataBuffer">*reinterpret_cast<ezDynamicArray<unsigned char,ezDefaultAllocatorWrapper>*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::Time">*reinterpret_cast<ezTime*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Uuid">*reinterpret_cast<ezUuid*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::Angle">*reinterpret_cast<ezAngle*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::ColorGamma">*reinterpret_cast<ezColorGammaUB*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::HashedString">*reinterpret_cast<ezHashedString*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::TempHashedString">*reinterpret_cast<ezTempHashedString*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::TypedPointer">*reinterpret_cast<ezTypedPointer*>(&m_Data)</Item> <Item Name="Value" Condition="m_uiType == Type::TypedObject && m_bIsShared">reinterpret_cast<void*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::TypedObject && !m_bIsShared">reinterpret_cast<void*>(&m_Data)</Item> <Item Name="ReflectedType" Condition="m_uiType == Type::TypedObject && !m_bIsShared">m_Data.inlined.m_pType</Item> <Item Name="ReflectedType" Condition="m_uiType == Type::TypedObject && m_bIsShared">m_Data.shared->m_pType</Item> <Item Name="Value" Condition="m_uiType == Type::VariantArray">*reinterpret_cast<ezDynamicArray<ezVariant,ezDefaultAllocatorWrapper>*>(m_Data.shared->m_Ptr)</Item> <Item Name="Value" Condition="m_uiType == Type::VariantDictionary">*reinterpret_cast<ezHashTable<ezHybridString<32,ezDefaultAllocatorWrapper>,ezVariant,ezHashHelper<ezHybridString<32,ezDefaultAllocatorWrapper> >,ezDefaultAllocatorWrapper>*>(m_Data.shared->m_Ptr)</Item> <Item Name="IsShared">m_bIsShared != 0</Item> </Expand> </Type> <Type Name="ezEnum<*>"> <DisplayString>{($T1::Enum)m_Value}</DisplayString> </Type> <Type Name="ezBitflags<*>"> <DisplayString>{($T1::Enum)m_Value}</DisplayString> </Type> <Type Name="ezVec2Template<*>"> <DisplayString>{{ x={x}, y={y} }}</DisplayString> </Type> <Type Name="ezVec3Template<*>"> <DisplayString>{{ x={x}, y={y}, z={z} }}</DisplayString> </Type> <Type Name="ezVec4Template<*>"> <DisplayString>{{ x={x}, y={y}, z={z}, w={w} }}</DisplayString> </Type> <Type Name="ezQuatTemplate<*>"> <DisplayString>{{ x={x}, y={y}, z={z}, w={w} }}</DisplayString> </Type> <Type Name="ezPlaneTemplate<*>"> <DisplayString>{{ nx={m_vNormal.x}, ny={m_vNormal.y}, nz={m_vNormal.z}, negDist={m_fNegDistance} }}</DisplayString> </Type> <Type Name="ezColor"> <DisplayString>{{ r={r}, g={g}, b={b}, a={a} }}</DisplayString> </Type> <Type Name="ezColorBaseUB"> <DisplayString>{{ r={r}, g={g}, b={b}, a={a} }}</DisplayString> </Type> <Type Name="ezColorLinearUB"> <DisplayString>{{ r={r}, g={g}, b={b}, a={a} }}</DisplayString> </Type> <Type Name="ezTime"> <DisplayString>{{seconds = {m_fTime} }}</DisplayString> <Expand> <Item Name="seconds">m_fTime</Item> <Item Name="milliseconds">m_fTime * 1000.0</Item> <Item Name="microseconds">m_fTime * 1000000.0</Item> <Item Name="nanoseconds">m_fTime * 1000000000.0</Item> </Expand> </Type> <Type Name="ezMat3Template<*>"> <Expand> <Item Name="Column0">&m_fElementsCM[0],3</Item> <Item Name="Column1">&m_fElementsCM[3],3</Item> <Item Name="Column2">&m_fElementsCM[6],3</Item> </Expand> </Type> <Type Name="ezMat4Template<*>"> <Expand> <Item Name="Column0">&m_fElementsCM[0],4</Item> <Item Name="Column1">&m_fElementsCM[4],4</Item> <Item Name="Column2">&m_fElementsCM[8],4</Item> <Item Name="Column3">&m_fElementsCM[12],4</Item> </Expand> </Type> <Type Name="ezUuid"> <DisplayString>{{ {*reinterpret_cast<ezUInt32*>(this),nvoXb}-{*(reinterpret_cast<ezUInt16*>(this) + 2),nvoXb}-{*(reinterpret_cast<ezUInt16*>(this) + 3),nvoXb}-{*(reinterpret_cast<ezUInt8*>(this) + 8),nvoXb}{*(reinterpret_cast<ezUInt8*>(this) + 9),nvoXb}-{*(reinterpret_cast<ezUInt8*>(this) + 10),nvoXb}{*(reinterpret_cast<ezUInt8*>(this) + 11),nvoXb}{*(reinterpret_cast<ezUInt8*>(this) + 12),nvoXb}{*(reinterpret_cast<ezUInt8*>(this) + 13),nvoXb}{*(reinterpret_cast<ezUInt8*>(this) + 14),nvoXb}{*(reinterpret_cast<ezUInt8*>(this) + 15),nvoXb} }}</DisplayString> </Type> <Type Name="ezResource"> <DisplayString>{{ID = {m_sUniqueID} }}</DisplayString> <Expand> <Item Name="ID">m_sUniqueID</Item> <Item Name="Desc">m_sResourceDescription</Item> <Item Name="State">m_LoadingState</Item> <Item Name="RefCount">m_iReferenceCount</Item> </Expand> </Type> <Type Name="ezUniquePtr<*>"> <DisplayString>ezUniquePtr {*m_pInstance}</DisplayString> <Expand> <ExpandedItem>m_pInstance</ExpandedItem> </Expand> </Type> <Type Name="ezSharedPtr<*>"> <DisplayString>ezSharedPtr {*m_pInstance}</DisplayString> <Expand> <ExpandedItem>m_pInstance</ExpandedItem> </Expand> </Type> <Type Name="ezScopedRefPointer<*>"> <DisplayString>ezScopedRefPointer {*m_pReferencedObject}</DisplayString> <Expand> <ExpandedItem>m_pReferencedObject</ExpandedItem> </Expand> </Type> <Type Name="ezRefCounted"> <DisplayString>RefCount = {m_iRefCount}</DisplayString> </Type> <Type Name="ezMutex"> <DisplayString Condition="m_iLockCount > 0">locked</DisplayString> <DisplayString Condition="m_iLockCount == 0">unlocked</DisplayString> <Expand> <Item Name="[locking_thread_id]" Condition="m_iLockCount > 0">(DWORD)((RTL_CRITICAL_SECTION*)m_hHandle.data)->OwningThread</Item> <Item Name="critical_section">*((RTL_CRITICAL_SECTION*)m_hHandle.data)</Item> </Expand> </Type> <Type Name="ezAngle"> <DisplayString>{{Degree = {m_fRadian*57.295}}}</DisplayString> <Expand> <Item Name="Radians">m_fRadian</Item> </Expand> </Type> </AutoVisualizer>