/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EditorPlugins/Assets/EditorPluginAssets/TextureAsset/TextureAssetObjects.h
136 строк
3 KB
Jan Krassnigg
Added texture channel mappings for alpha masks (#1994)
21 июл 2026, 11:11
Не верифицирован
21 июл 2026, 11:11
f6a0776
Код
Авторство
О чём код?
#pragma once #include <EditorFramework/Assets/SimpleAssetDocument.h> #include <RendererCore/RenderContext/Implementation/RenderContextStructs.h> #include <Texture/TexConv/TexConvEnums.h> #include <ToolsFoundation/Object/DocumentObjectBase.h> struct ezPropertyMetaStateEvent; struct ezTexture2DChannelMappingEnum { using StorageType = ezInt8; enum Enum { R1, R1_ALPHA, RG1, R1_G2, RGB1, R1_G2_B3, RGBA1, RGB1_A2, RGB1_ABLACK, R1_G2_B3_A4, // 'mask' textures: RGB is a constant white, the mask itself ends up in the alpha channel. // Ideally this would be a single channel texture combined with a GPU side texture swizzle, // but D3D11 has no support for component swizzles, so for now the white is baked in. RGBWHITE_A1, RGBWHITE_R1, Default = RGB1, }; }; EZ_DECLARE_REFLECTABLE_TYPE(EZ_NO_LINKAGE, ezTexture2DChannelMappingEnum); struct ezTexture2DResolution { using StorageType = ezInt8; enum Enum { Fixed64x64, Fixed128x128, Fixed256x256, Fixed512x512, Fixed1024x1024, Fixed2048x2048, CVarRtResolution1, CVarRtResolution2, Default = Fixed256x256 }; }; EZ_DECLARE_REFLECTABLE_TYPE(EZ_NO_LINKAGE, ezTexture2DResolution); struct ezRenderTargetFormat { using StorageType = ezInt8; enum Enum { RGBA8sRgb, RGBA8, RGB10, RGBA16, R8, R16, R32, RG8, RG16, RG32, Default = RGBA8sRgb }; }; EZ_DECLARE_REFLECTABLE_TYPE(EZ_NO_LINKAGE, ezRenderTargetFormat); class ezTextureAssetProperties : public ezReflectedClass { EZ_ADD_DYNAMIC_REFLECTION(ezTextureAssetProperties, ezReflectedClass); public: static void PropertyMetaStateEventHandler(ezPropertyMetaStateEvent& e); const char* GetInputFile(ezInt32 iInput) const { return m_Input[iInput]; } void SetInputFile0(const char* szFile) { m_Input[0] = szFile; } const char* GetInputFile0() const { return m_Input[0]; } void SetInputFile1(const char* szFile) { m_Input[1] = szFile; } const char* GetInputFile1() const { return m_Input[1]; } void SetInputFile2(const char* szFile) { m_Input[2] = szFile; } const char* GetInputFile2() const { return m_Input[2]; } void SetInputFile3(const char* szFile) { m_Input[3] = szFile; } const char* GetInputFile3() const { return m_Input[3]; } ezString GetAbsoluteInputFilePath(ezInt32 iInput) const; ezTexture2DChannelMappingEnum::Enum GetChannelMapping() const { return m_ChannelMapping; } ezInt32 GetNumInputFiles() const; bool m_bIsRenderTarget = false; bool m_bIsArrayTexture = false; bool m_bPremultipliedAlpha = false; bool m_bFlipHorizontal = false; bool m_bDilateColor = false; bool m_bPreserveAlphaCoverage = false; float m_fCVarResolutionScale = 1.0f; float m_fHdrExposureBias = 0; float m_fAlphaThreshold = 0.5f; ezEnum<ezTextureFilterSetting> m_TextureFilter; ezEnum<ezImageAddressMode> m_AddressModeU; ezEnum<ezImageAddressMode> m_AddressModeV; ezEnum<ezImageAddressMode> m_AddressModeW; ezEnum<ezTexture2DResolution> m_Resolution; ezEnum<ezTexConvUsage> m_TextureUsage; ezEnum<ezRenderTargetFormat> m_RtFormat; ezEnum<ezTexConvCompressionMode> m_CompressionMode; ezEnum<ezTexConvMipmapMode> m_MipmapMode; ezDynamicArray<ezString> m_ArraySlices; private: ezEnum<ezTexture2DChannelMappingEnum> m_ChannelMapping; ezString m_Input[4]; };