/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Tools/TexConv/TexConv.h
103 строки
3 KB
Jan Krassnigg
Reduce texture size mode for TexConv (#1857)
09 мар 2026, 23:04
Не верифицирован
09 мар 2026, 23:04
be279c5
Код
Авторство
О чём код?
#pragma once #include <Foundation/Application/Application.h> #include <Texture/TexConv/TexComparer.h> class ezStreamWriter; struct ezTexConvMode { using StorageType = ezUInt8; enum Enum { Convert, Compare, Reduce, ///< Loads a single DDS or TGA file and saves it as JPG (no alpha) or PNG (has alpha), without any processing. Default = Convert }; }; class ezTexConv : public ezApplication { public: using SUPER = ezApplication; struct KeyEnumValuePair { KeyEnumValuePair(ezStringView sKey, ezInt32 iVal) : m_sKey(sKey) , m_iEnumValue(iVal) { } ezStringView m_sKey; ezInt32 m_iEnumValue = -1; }; ezTexConv(); public: virtual void Run() override; virtual ezResult BeforeCoreSystemsStartup() override; virtual void AfterCoreSystemsStartup() override; virtual void BeforeCoreSystemsShutdown() override; ezResult ParseCommandLine(); ezResult ParseMode(); ezResult ParseCompareMode(); ezResult ParseReduceMode(); ezResult ParseOutputType(); ezResult DetectOutputFormat(); ezResult ParseInputFiles(); ezResult ParseOutputFiles(); ezResult ParseChannelMappings(); ezResult ParseChannelSliceMapping(ezInt32 iSlice); ezResult ParseChannelMappingConfig(ezTexConvChannelMapping& out_mapping, ezStringView sCfg, ezInt32 iChannelIndex, bool bSingleChannel); ezResult ParseUsage(); ezResult ParseMipmapMode(); ezResult ParseTargetPlatform(); ezResult ParseCompressionMode(); ezResult ParseWrapModes(); ezResult ParseFilterModes(); ezResult ParseResolutionModifiers(); ezResult ParseMiscOptions(); ezResult ParseAssetHeader(); ezResult ParseBumpMapFilter(); ezResult ParseUIntOption(ezStringView sOption, ezInt32 iMinValue, ezInt32 iMaxValue, ezUInt32& ref_uiResult) const; ezResult ParseStringOption(ezStringView sOption, const ezDynamicArray<KeyEnumValuePair>& allowed, ezInt32& ref_iResult) const; void PrintOptionValues(ezStringView sOption, const ezDynamicArray<KeyEnumValuePair>& allowed) const; void PrintOptionValuesHelp(ezStringView sOption, const ezDynamicArray<KeyEnumValuePair>& allowed) const; bool ParseFile(ezStringView sOption, ezString& ref_sResult) const; bool IsTexFormat() const; ezResult WriteTexFile(ezStreamWriter& inout_stream, const ezImage& image); ezResult WriteOutputFile(ezStringView sFile, const ezImage& image); ezResult RunReduce(); ezResult ReduceSingleFile(ezStringView sInputFile, ezStringView sOutputDir, ezStringView sExplicitOutputFile = {}); private: ezString m_sOutputFile; ezString m_sOutputThumbnailFile; ezString m_sOutputLowResFile; ezString m_sReduceInputFile; bool m_bDeleteSource = false; bool m_bOutputSupports2D = false; bool m_bOutputSupports3D = false; bool m_bOutputSupportsCube = false; bool m_bOutputSupportsAtlas = false; bool m_bOutputSupportsMipmaps = false; bool m_bOutputSupportsFiltering = false; bool m_bOutputSupportsCompression = false; ezEnum<ezTexConvMode> m_Mode; ezTexConvProcessor m_Processor; // Comparer specific ezTexComparer m_Comparer; ezString m_sHtmlTitle; };