Plasma Engine  2.0
Loading...
Searching...
No Matches
TexConv.h
1#pragma once
2
3#include <Foundation/Application/Application.h>
4#include <Texture/TexConv/TexComparer.h>
5
7
9{
10 using StorageType = plUInt8;
11
12 enum Enum
13 {
14 Convert,
15 Compare,
16
17 Default = Convert
18 };
19};
20
22{
23public:
24 using SUPER = plApplication;
25
27 {
28 KeyEnumValuePair(plStringView sKey, plInt32 iVal)
29 : m_sKey(sKey)
30 , m_iEnumValue(iVal)
31 {
32 }
33
34 plStringView m_sKey;
35 plInt32 m_iEnumValue = -1;
36 };
37
38 plTexConv();
39
40public:
41 virtual Execution Run() override;
42 virtual plResult BeforeCoreSystemsStartup() override;
43 virtual void AfterCoreSystemsStartup() override;
44 virtual void BeforeCoreSystemsShutdown() override;
45
46 plResult ParseCommandLine();
47 plResult ParseMode();
48 plResult ParseCompareMode();
49 plResult ParseOutputType();
50 plResult DetectOutputFormat();
51 plResult ParseInputFiles();
52 plResult ParseOutputFiles();
53 plResult ParseChannelMappings();
54 plResult ParseChannelSliceMapping(plInt32 iSlice);
55 plResult ParseChannelMappingConfig(plTexConvChannelMapping& out_mapping, plStringView sCfg, plInt32 iChannelIndex, bool bSingleChannel);
56 plResult ParseUsage();
57 plResult ParseMipmapMode();
58 plResult ParseTargetPlatform();
59 plResult ParseCompressionMode();
60 plResult ParseWrapModes();
61 plResult ParseFilterModes();
62 plResult ParseResolutionModifiers();
63 plResult ParseMiscOptions();
64 plResult ParseAssetHeader();
65 plResult ParseBumpMapFilter();
66
67 plResult ParseUIntOption(plStringView sOption, plInt32 iMinValue, plInt32 iMaxValue, plUInt32& ref_uiResult) const;
68 plResult ParseStringOption(plStringView sOption, const plDynamicArray<KeyEnumValuePair>& allowed, plInt32& ref_iResult) const;
69 void PrintOptionValues(plStringView sOption, const plDynamicArray<KeyEnumValuePair>& allowed) const;
70 void PrintOptionValuesHelp(plStringView sOption, const plDynamicArray<KeyEnumValuePair>& allowed) const;
71 bool ParseFile(plStringView sOption, plString& ref_sResult) const;
72
73 bool IsTexFormat() const;
74 plResult WriteTexFile(plStreamWriter& inout_stream, const plImage& image);
75 plResult WriteOutputFile(plStringView sFile, const plImage& image);
76
77private:
78 plString m_sOutputFile;
79 plString m_sOutputThumbnailFile;
80 plString m_sOutputLowResFile;
81
82 bool m_bOutputSupports2D = false;
83 bool m_bOutputSupports3D = false;
84 bool m_bOutputSupportsCube = false;
85 bool m_bOutputSupportsAtlas = false;
86 bool m_bOutputSupportsMipmaps = false;
87 bool m_bOutputSupportsFiltering = false;
88 bool m_bOutputSupportsCompression = false;
89
91 plTexConvProcessor m_Processor;
92
93 // Comparer specific
94
95 plTexComparer m_Comparer;
96 plString m_sHtmlTitle;
97};
Base class to be used by applications based on plEngine.
Definition Application.h:66
Execution
Defines the possible return values for the plApplication::Run() function.
Definition Application.h:72
plApplication(plStringView sAppName)
Constructor.
Definition Application.cpp:11
Definition DynamicArray.h:81
A class containing image data and associated meta data.
Definition Image.h:103
Interface for binary out (write) streams.
Definition Stream.h:107
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Compares two images and generates various outputs.
Definition TexComparer.h:33
Definition TexConv.h:22
virtual Execution Run() override
Main run function which is called periodically. This function must be overridden.
Definition TexConv.cpp:212
virtual void AfterCoreSystemsStartup() override
This function is called after basic engine initialization has been done.
Definition TexConv.cpp:24
virtual plResult BeforeCoreSystemsStartup() override
This function is called before any kind of engine initialization is done.
Definition TexConv.cpp:16
virtual void BeforeCoreSystemsShutdown() override
This function is called after the application main loop has run for the last time,...
Definition TexConv.cpp:32
Definition TexConvProcessor.h:10
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
Definition TexConv.h:27
Definition TexConvDesc.h:13
Definition TexConv.h:9