SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
PSFrames.h
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4#include <span>
5#include <vector>
6
8
9namespace vtfpp {
10
12class PSFrames {
13public:
14 explicit PSFrames(std::vector<std::byte>&& psFramesData);
15
16 explicit PSFrames(std::span<const std::byte> psFramesData);
17
18 explicit PSFrames(const std::filesystem::path& psFramesPath);
19
20 [[nodiscard]] uint32_t getFrameCount() const;
21
22 [[nodiscard]] uint32_t getFPS() const;
23
24 [[nodiscard]] uint16_t getWidth() const;
25
26 [[nodiscard]] uint16_t getHeight() const;
27
28 [[nodiscard]] std::vector<std::byte> getImageDataAs(ImageFormat newFormat, uint32_t frame) const;
29
30 [[nodiscard]] std::vector<std::byte> getImageDataAsBGR888(uint32_t frame) const;
31
32protected:
33 [[nodiscard]] uint32_t getFrameOffset(uint32_t frame) const;
34
35 [[nodiscard]] uint32_t getFramePaletteAndImageSize() const;
36
37 uint32_t frameCount = 0;
38 uint32_t fps = 0;
39 uint16_t width = 0;
40 uint16_t height = 0;
41
42 std::vector<std::byte> data;
43};
44
45} // namespace vtfpp
uint32_t getFPS() const
Definition PSFrames.cpp:35
uint32_t getFrameCount() const
Definition PSFrames.cpp:31
uint32_t getFrameOffset(uint32_t frame) const
Definition PSFrames.cpp:65
std::vector< std::byte > data
Definition PSFrames.h:42
uint32_t fps
Definition PSFrames.h:38
std::vector< std::byte > getImageDataAsBGR888(uint32_t frame) const
Definition PSFrames.cpp:51
uint16_t width
Definition PSFrames.h:39
uint16_t getHeight() const
Definition PSFrames.cpp:43
uint16_t getWidth() const
Definition PSFrames.cpp:39
std::vector< std::byte > getImageDataAs(ImageFormat newFormat, uint32_t frame) const
Definition PSFrames.cpp:47
uint16_t height
Definition PSFrames.h:40
PSFrames(std::vector< std::byte > &&psFramesData)
Definition PSFrames.cpp:12
uint32_t frameCount
Definition PSFrames.h:37
uint32_t getFramePaletteAndImageSize() const
Definition PSFrames.cpp:71
Definition HOT.h:11