VTFParser
Simple and modern library for parsing the Valve Texture Format
Loading...
Searching...
No Matches
vtf.hpp
1#pragma once
2
3#include <cstdint>
4#include <memory>
5#include <span>
6#include "file-format-objects/header.hpp"
7
8namespace VtfParser {
12 class Vtf {
13 public:
21 uint8_t width;
25 uint8_t height;
26 };
27
35 uint16_t width;
39 uint16_t height;
43 uint16_t depth;
44 };
45
51 explicit Vtf(std::span<const std::byte> data);
52
57 [[nodiscard]] ImageFormat getHighResImageFormat() const;
58
64 [[nodiscard]] HighResImageExtent getHighResImageExtent(uint8_t mipLevel = 0) const;
65
70 [[nodiscard]] uint8_t getFaces() const;
71
76 [[nodiscard]] uint8_t getMipLevels() const;
77
82 [[nodiscard]] uint16_t getFrames() const;
87 [[nodiscard]] uint16_t getFirstFrame() const;
88
93 [[nodiscard]] TextureFlags getFlags() const;
94
99 [[nodiscard]] std::span<const std::byte> getHighResImageData() const;
100
111 [[nodiscard]] size_t getImageSliceOffset(
112 uint8_t mipLevel = 0,
113 uint16_t frame = 0,
114 uint8_t face = 0,
115 uint16_t depth = 0
116 ) const;
117
123 [[nodiscard]] ImageFormat getLowResImageFormat() const;
124
130 [[nodiscard]] LowResImageExtent getLowResImageExtent() const;
131
136 [[nodiscard]] std::span<const std::byte> getLowResImageData() const;
137
138 private:
139 Header header{};
140
141 std::span<const std::byte> highResImageData;
142 std::span<const std::byte> lowResImageData;
143 };
144}
Definition: vtf.hpp:12
LowResImageExtent getLowResImageExtent() const
Definition: vtf.cpp:267
ImageFormat getHighResImageFormat() const
Definition: vtf.cpp:188
uint16_t getFrames() const
Definition: vtf.cpp:212
TextureFlags getFlags() const
Definition: vtf.cpp:220
std::span< const std::byte > getHighResImageData() const
Definition: vtf.cpp:224
size_t getImageSliceOffset(uint8_t mipLevel=0, uint16_t frame=0, uint8_t face=0, uint16_t depth=0) const
Definition: vtf.cpp:228
uint8_t getMipLevels() const
Definition: vtf.cpp:208
std::span< const std::byte > getLowResImageData() const
Definition: vtf.cpp:274
HighResImageExtent getHighResImageExtent(uint8_t mipLevel=0) const
Definition: vtf.cpp:192
uint8_t getFaces() const
Definition: vtf.cpp:200
uint16_t getFirstFrame() const
Definition: vtf.cpp:216
ImageFormat getLowResImageFormat() const
Definition: vtf.cpp:263
Definition: VTFParser.hpp:6
TextureFlags
Definition: enums.hpp:44
ImageFormat
Definition: enums.hpp:10
Definition: header.hpp:125
uint16_t depth
Definition: vtf.hpp:43
uint16_t height
Definition: vtf.hpp:39
uint16_t width
Definition: vtf.hpp:35
Definition: vtf.hpp:17
uint8_t width
Definition: vtf.hpp:21
uint8_t height
Definition: vtf.hpp:25