SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
TTX.h
Go to the documentation of this file.
1#pragma once
2
3#include "VTF.h"
4
5namespace vtfpp {
6
8
9class TTX {
10public:
11 explicit TTX(VTF&& vtf_);
12
13 explicit TTX(std::span<const std::byte> tthData, std::span<const std::byte> ttzData = {});
14
15 explicit TTX(const std::filesystem::path& tthPath, const std::filesystem::path& ttzPath = {});
16
17 [[nodiscard]] explicit operator bool() const;
18
19 [[nodiscard]] uint8_t getMajorVersion() const;
20
21 [[nodiscard]] uint8_t getMinorVersion() const;
22
23 void setVersion(uint8_t newMajorVersion, uint8_t newMinorVersion);
24
25 void setMajorVersion(uint8_t newMajorVersion);
26
27 void setMinorVersion(uint8_t newMinorVersion);
28
29 [[nodiscard]] uint8_t getAspectRatioType() const;
30
31 void setAspectRatioType(uint8_t newAspectRatioType);
32
33 [[nodiscard]] const std::vector<uint64_t>& getMipFlags() const;
34
35 [[nodiscard]] std::vector<uint64_t>& getMipFlags();
36
37 [[nodiscard]] const VTF& getVTF() const;
38
39 [[nodiscard]] VTF& getVTF();
40
41 [[nodiscard]] int16_t getCompressionLevel() const;
42
43 void setCompressionLevel(int16_t newCompressionLevel);
44
45 [[nodiscard]] std::pair<std::vector<std::byte>, std::vector<std::byte>> bake() const;
46
47 bool bake(const std::filesystem::path& tthPath, const std::filesystem::path& ttzPath) const; // NOLINT(*-use-nodiscard)
48
49protected:
50 bool opened = false;
51 int16_t compressionLevel = -1;
52
54
55 uint8_t majorVersion = 1;
56 uint8_t minorVersion = 0;
57 uint8_t aspectRatioType{};
58 std::vector<uint64_t> mipFlags;
59};
60
61} // namespace vtfpp
const VTF & getVTF() const
Definition TTX.cpp:105
const std::vector< uint64_t > & getMipFlags() const
Definition TTX.cpp:97
uint8_t getMinorVersion() const
Definition TTX.cpp:72
std::vector< uint64_t > mipFlags
Definition TTX.h:58
uint8_t aspectRatioType
Definition TTX.h:57
VTF vtf
Definition TTX.h:53
bool opened
Definition TTX.h:50
uint8_t minorVersion
Definition TTX.h:56
uint8_t getMajorVersion() const
Definition TTX.cpp:68
uint8_t getAspectRatioType() const
Definition TTX.cpp:89
void setVersion(uint8_t newMajorVersion, uint8_t newMinorVersion)
Definition TTX.cpp:76
void setMinorVersion(uint8_t newMinorVersion)
Definition TTX.cpp:85
int16_t getCompressionLevel() const
Definition TTX.cpp:113
void setAspectRatioType(uint8_t newAspectRatioType)
Definition TTX.cpp:93
std::pair< std::vector< std::byte >, std::vector< std::byte > > bake() const
Definition TTX.cpp:121
void setCompressionLevel(int16_t newCompressionLevel)
Definition TTX.cpp:117
TTX(VTF &&vtf_)
Definition TTX.cpp:10
int16_t compressionLevel
Definition TTX.h:51
void setMajorVersion(uint8_t newMajorVersion)
Definition TTX.cpp:81
uint8_t majorVersion
Definition TTX.h:55
consteval uint32_t makeFourCC(const char fourCC[4])
Creates a FourCC identifier from a string of 4 characters.
Definition Binary.h:20
Definition HOT.h:11
constexpr uint32_t TTH_SIGNATURE
Definition TTX.h:7