/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererFoundation/RendererReflection.cpp
210 строк
12 KB
Sanakan8472
Render Graph (#1948)
03 июн 2026, 10:19
Не верифицирован
03 июн 2026, 10:19
60bb12c
Код
Авторство
О чём код?
#include <RendererFoundation/RendererFoundationPCH.h> #include <RendererFoundation/RendererFoundationDLL.h> // clang-format off EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALResourceFormat, 1) EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAFloat), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAUInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBFloat), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBUInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::B5G6R5UNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BGRAUByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BGRAUByteNormalizedsRGB), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAHalf), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAUShort), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAUShortNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAShort), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAShortNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGFloat), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGUInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGB10A2UInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGB10A2UIntNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RG11B10Float), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAUByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAUByteNormalizedsRGB), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAUByte), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGBAByte), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGHalf), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGUShort), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGUShortNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGShort), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGShortNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGUByte), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGUByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGByte), EZ_ENUM_CONSTANT(ezGALResourceFormat::RGByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::DFloat), EZ_ENUM_CONSTANT(ezGALResourceFormat::RFloat), EZ_ENUM_CONSTANT(ezGALResourceFormat::RUInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RInt), EZ_ENUM_CONSTANT(ezGALResourceFormat::RHalf), EZ_ENUM_CONSTANT(ezGALResourceFormat::RUShort), EZ_ENUM_CONSTANT(ezGALResourceFormat::RUShortNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RShort), EZ_ENUM_CONSTANT(ezGALResourceFormat::RShortNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RUByte), EZ_ENUM_CONSTANT(ezGALResourceFormat::RUByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::RByte), EZ_ENUM_CONSTANT(ezGALResourceFormat::RByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::AUByteNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::D16), EZ_ENUM_CONSTANT(ezGALResourceFormat::D24S8), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC1), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC1sRGB), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC2), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC2sRGB), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC3), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC3sRGB), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC4UNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC4Normalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC5UNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC5Normalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC6UFloat), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC6Float), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC7UNormalized), EZ_ENUM_CONSTANT(ezGALResourceFormat::BC7UNormalizedsRGB) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALMSAASampleCount, 1) EZ_ENUM_CONSTANTS(ezGALMSAASampleCount::None, ezGALMSAASampleCount::TwoSamples, ezGALMSAASampleCount::FourSamples, ezGALMSAASampleCount::EightSamples) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALTextureType, 1) EZ_ENUM_CONSTANTS(ezGALTextureType::Invalid, ezGALTextureType::Texture2D, ezGALTextureType::TextureCube, ezGALTextureType::Texture3D, ezGALTextureType::Texture2DProxy, ezGALTextureType::Texture2DShared, ezGALTextureType::Texture2DArray, ezGALTextureType::TextureCubeArray) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALShaderResourceType, 1) EZ_ENUM_CONSTANTS(ezGALShaderResourceType::Unknown, ezGALShaderResourceType::Sampler, ezGALShaderResourceType::ConstantBuffer, ezGALShaderResourceType::PushConstants, ezGALShaderResourceType::Texture, ezGALShaderResourceType::TextureAndSampler, ezGALShaderResourceType::TexelBuffer, ezGALShaderResourceType::StructuredBuffer, ezGALShaderResourceType::ByteAddressBuffer, ezGALShaderResourceType::TextureRW) EZ_ENUM_CONSTANTS(ezGALShaderResourceType::TexelBufferRW, ezGALShaderResourceType::StructuredBufferRW, ezGALShaderResourceType::ByteAddressBufferRW) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALShaderTextureType, 1) EZ_ENUM_CONSTANTS(ezGALShaderTextureType::Unknown, ezGALShaderTextureType::Texture1D, ezGALShaderTextureType::Texture1DArray, ezGALShaderTextureType::Texture2D, ezGALShaderTextureType::Texture2DArray, ezGALShaderTextureType::Texture2DMS, ezGALShaderTextureType::Texture2DMSArray, ezGALShaderTextureType::Texture3D, ezGALShaderTextureType::TextureCube, ezGALShaderTextureType::TextureCubeArray) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_TYPE(ezGALResourceAccess, ezNoBase, 1, ezRTTIDefaultAllocator<ezGALResourceAccess>) { EZ_BEGIN_PROPERTIES { EZ_MEMBER_PROPERTY("Immutable", m_bImmutable), } EZ_END_PROPERTIES; } EZ_END_STATIC_REFLECTED_TYPE; EZ_BEGIN_STATIC_REFLECTED_BITFLAGS(ezGALTextureUsageFlags, 1) EZ_BITFLAGS_CONSTANTS(ezGALTextureUsageFlags::ShaderResource, ezGALTextureUsageFlags::UnorderedAccess, ezGALTextureUsageFlags::RenderTarget, ezGALTextureUsageFlags::Presentable) EZ_END_STATIC_REFLECTED_BITFLAGS; EZ_BEGIN_STATIC_REFLECTED_TYPE(ezGALTextureCreationDescription, ezNoBase, 1, ezRTTIDefaultAllocator<ezGALTextureCreationDescription>) { EZ_BEGIN_PROPERTIES { EZ_MEMBER_PROPERTY("Width", m_uiWidth), EZ_MEMBER_PROPERTY("Height", m_uiHeight), EZ_MEMBER_PROPERTY("Depth", m_uiDepth), EZ_MEMBER_PROPERTY("MipLevelCount", m_uiMipLevelCount), EZ_MEMBER_PROPERTY("ArraySize", m_uiArraySize), EZ_ENUM_MEMBER_PROPERTY("Format", ezGALResourceFormat, m_Format), EZ_ENUM_MEMBER_PROPERTY("SampleCount", ezGALMSAASampleCount, m_SampleCount), EZ_ENUM_MEMBER_PROPERTY("Type", ezGALTextureType, m_Type), EZ_BITFLAGS_MEMBER_PROPERTY("TextureFlags", ezGALTextureUsageFlags, m_TextureFlags), EZ_MEMBER_PROPERTY("ResourceAccess", m_ResourceAccess), // m_pExisitingNativeObject deliberately not reflected as it can't be serialized in any meaningful way. } EZ_END_PROPERTIES; } EZ_END_STATIC_REFLECTED_TYPE; EZ_BEGIN_STATIC_REFLECTED_TYPE(ezGALPlatformSharedHandle, ezNoBase, 1, ezRTTIDefaultAllocator<ezGALPlatformSharedHandle>) { EZ_BEGIN_PROPERTIES { EZ_MEMBER_PROPERTY("SharedTexture", m_hSharedTexture), EZ_MEMBER_PROPERTY("Semaphore", m_hSemaphore), EZ_MEMBER_PROPERTY("ProcessId", m_uiProcessId), EZ_MEMBER_PROPERTY("MemoryTypeIndex", m_uiMemoryTypeIndex), EZ_MEMBER_PROPERTY("Size", m_uiSize), } EZ_END_PROPERTIES; } EZ_END_STATIC_REFLECTED_TYPE; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALShaderStage, 1) EZ_ENUM_CONSTANTS(ezGALShaderStage::VertexShader, ezGALShaderStage::HullShader, ezGALShaderStage::DomainShader, ezGALShaderStage::GeometryShader, ezGALShaderStage::PixelShader, ezGALShaderStage::ComputeShader) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_BITFLAGS(ezGALShaderStageFlags, 1) EZ_BITFLAGS_CONSTANTS(ezGALShaderStageFlags::VertexShader, ezGALShaderStageFlags::HullShader, ezGALShaderStageFlags::DomainShader, ezGALShaderStageFlags::GeometryShader, ezGALShaderStageFlags::PixelShader, ezGALShaderStageFlags::ComputeShader, ezGALShaderStageFlags::Auto) EZ_END_STATIC_REFLECTED_BITFLAGS; EZ_BEGIN_STATIC_REFLECTED_BITFLAGS(ezGALResourceState, 1) EZ_BITFLAGS_CONSTANTS(ezGALResourceState::ShaderResource, ezGALResourceState::ConstantBuffer, ezGALResourceState::VertexBuffer, ezGALResourceState::IndexBuffer, ezGALResourceState::DrawIndirect, ezGALResourceState::DepthStencilRead, ezGALResourceState::CopySource, ezGALResourceState::ResolveSource) EZ_BITFLAGS_CONSTANTS(ezGALResourceState::UnorderedAccess, ezGALResourceState::RenderTarget, ezGALResourceState::DepthStencilWrite, ezGALResourceState::CopyDestination, ezGALResourceState::ResolveDestination) EZ_BITFLAGS_CONSTANTS(ezGALResourceState::Discard, ezGALResourceState::Present, ezGALResourceState::CpuRead, ezGALResourceState::CpuWrite) EZ_END_STATIC_REFLECTED_BITFLAGS; EZ_BEGIN_STATIC_REFLECTED_BITFLAGS(ezGALShaderResourceCategory, 1) EZ_BITFLAGS_CONSTANTS(ezGALShaderResourceCategory::Sampler, ezGALShaderResourceCategory::ConstantBuffer, ezGALShaderResourceCategory::TextureSRV, ezGALShaderResourceCategory::BufferSRV, ezGALShaderResourceCategory::TextureUAV, ezGALShaderResourceCategory::BufferUAV) EZ_END_STATIC_REFLECTED_BITFLAGS; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALPresentMode, 1) EZ_ENUM_CONSTANTS(ezGALPresentMode::Immediate, ezGALPresentMode::VSync) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALVertexAttributeSemantic, 1) EZ_ENUM_CONSTANTS(ezGALVertexAttributeSemantic::Position, ezGALVertexAttributeSemantic::Normal, ezGALVertexAttributeSemantic::Tangent, ezGALVertexAttributeSemantic::Color0, ezGALVertexAttributeSemantic::Color1, ezGALVertexAttributeSemantic::Color2, ezGALVertexAttributeSemantic::Color3, ezGALVertexAttributeSemantic::Color4, ezGALVertexAttributeSemantic::Color5, ezGALVertexAttributeSemantic::Color6, ezGALVertexAttributeSemantic::Color7) EZ_ENUM_CONSTANTS(ezGALVertexAttributeSemantic::TexCoord0, ezGALVertexAttributeSemantic::TexCoord1, ezGALVertexAttributeSemantic::TexCoord2, ezGALVertexAttributeSemantic::TexCoord3, ezGALVertexAttributeSemantic::TexCoord4, ezGALVertexAttributeSemantic::TexCoord5, ezGALVertexAttributeSemantic::TexCoord6, ezGALVertexAttributeSemantic::TexCoord7, ezGALVertexAttributeSemantic::TexCoord8, ezGALVertexAttributeSemantic::TexCoord9) EZ_ENUM_CONSTANTS(ezGALVertexAttributeSemantic::BiTangent, ezGALVertexAttributeSemantic::BoneIndices0, ezGALVertexAttributeSemantic::BoneIndices1, ezGALVertexAttributeSemantic::BoneWeights0, ezGALVertexAttributeSemantic::BoneWeights1, ezGALVertexAttributeSemantic::DataOffsets) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_BITFLAGS(ezGALBufferUsageFlags, 1) EZ_BITFLAGS_CONSTANTS(ezGALBufferUsageFlags::VertexBuffer, ezGALBufferUsageFlags::IndexBuffer, ezGALBufferUsageFlags::ConstantBuffer, ezGALBufferUsageFlags::TexelBuffer, ezGALBufferUsageFlags::StructuredBuffer, ezGALBufferUsageFlags::ByteAddressBuffer) EZ_BITFLAGS_CONSTANTS(ezGALBufferUsageFlags::ShaderResource, ezGALBufferUsageFlags::UnorderedAccess, ezGALBufferUsageFlags::DrawIndirect, ezGALBufferUsageFlags::Transient) EZ_END_STATIC_REFLECTED_BITFLAGS; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALQueryType, 1) EZ_ENUM_CONSTANTS(ezGALQueryType::NumSamplesPassed, ezGALQueryType::AnySamplesPassed) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALSharedTextureType, 1) EZ_ENUM_CONSTANTS(ezGALSharedTextureType::None, ezGALSharedTextureType::Exported, ezGALSharedTextureType::Imported) EZ_END_STATIC_REFLECTED_ENUM; EZ_BEGIN_STATIC_REFLECTED_ENUM(ezGALQueueType, 1) EZ_ENUM_CONSTANTS(ezGALQueueType::Graphics, ezGALQueueType::Compute, ezGALQueueType::Transfer) EZ_END_STATIC_REFLECTED_ENUM; // clang-format on EZ_STATICLINK_FILE(RendererFoundation, RendererFoundation_RendererReflection);