![]() |
SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
|
Concepts | |
| concept | PixelType |
Functions | |
| VTFPP_FORMAT (RGBA8888, VTFPP_FORMAT_BE(uint8_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (ABGR8888, VTFPP_FORMAT_BE(uint8_t r, g, b, a), VTFPP_A VTFPP_B VTFPP_G VTFPP_R) | |
| VTFPP_FORMAT (RGB888, VTFPP_FORMAT_BE(uint8_t b, g, r), VTFPP_R VTFPP_G VTFPP_B) | |
| VTFPP_FORMAT (BGR888, VTFPP_FORMAT_BE(uint8_t r, g, b), VTFPP_B VTFPP_G VTFPP_R) | |
| VTFPP_FORMAT (RGB565, VTFPP_FORMAT_BE(uint16_t data), VTFPP_R_BSWAP(RGB565) VTFPP_G_BSWAP(RGB565) VTFPP_B_BSWAP(RGB565)) | |
| VTFPP_FORMAT (I8, VTFPP_FORMAT_BE(uint8_t i), VTFPP_I) | |
| VTFPP_FORMAT (IA88, VTFPP_FORMAT_BE(uint8_t a, i), VTFPP_I VTFPP_A) | |
| VTFPP_FORMAT (P8, VTFPP_FORMAT_BE(uint8_t p), VTFPP_P) | |
| VTFPP_FORMAT (A8, VTFPP_FORMAT_BE(uint8_t a), VTFPP_A) | |
| VTFPP_FORMAT (RGB888_BLUESCREEN, VTFPP_FORMAT_BE(uint8_t b, g, r), VTFPP_R VTFPP_G VTFPP_B) | |
| VTFPP_FORMAT (BGR888_BLUESCREEN, VTFPP_FORMAT_BE(uint8_t r, g, b), VTFPP_B VTFPP_G VTFPP_R) | |
| VTFPP_FORMAT (ARGB8888, VTFPP_FORMAT_BE(uint8_t b, g, r, a), VTFPP_A VTFPP_R VTFPP_G VTFPP_B) | |
| VTFPP_FORMAT (BGRA8888, VTFPP_FORMAT_BE(uint8_t a, r, g, b), VTFPP_B VTFPP_G VTFPP_R VTFPP_A) | |
| VTFPP_FORMAT (BGRX8888, VTFPP_FORMAT_BE(uint8_t x, r, g, b), VTFPP_B VTFPP_G VTFPP_R VTFPP_X) | |
| VTFPP_FORMAT (BGR565, VTFPP_FORMAT_BE(uint16_t data), VTFPP_B_BSWAP(BGR565) VTFPP_G_BSWAP(BGR565) VTFPP_R_BSWAP(BGR565)) | |
| VTFPP_FORMAT (BGRX5551, VTFPP_FORMAT_BE(uint16_t data), VTFPP_B_BSWAP(BGRX5551) VTFPP_G_BSWAP(BGRX5551) VTFPP_R_BSWAP(BGRX5551) VTFPP_X_BSWAP(BGRX5551)) | |
| VTFPP_FORMAT (BGRA4444, VTFPP_FORMAT_BE(uint16_t data), VTFPP_B_BSWAP(BGRA4444) VTFPP_G_BSWAP(BGRA4444) VTFPP_R_BSWAP(BGRA4444) VTFPP_A_BSWAP(BGRA4444)) | |
| VTFPP_FORMAT (BGRA5551, VTFPP_FORMAT_BE(uint16_t data), VTFPP_B_BSWAP(BGRA5551) VTFPP_G_BSWAP(BGRA5551) VTFPP_R_BSWAP(BGRA5551) VTFPP_A_BSWAP(BGRA5551)) | |
| VTFPP_FORMAT (UV88, VTFPP_FORMAT_BE(uint8_t v, u), VTFPP_U VTFPP_V) | |
| VTFPP_FORMAT (UVWQ8888, VTFPP_FORMAT_BE(uint8_t q, w, v, u), VTFPP_U VTFPP_V VTFPP_W VTFPP_Q) | |
| VTFPP_FORMAT (RGBA16161616F, VTFPP_FORMAT_BE(half a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (RGBA16161616, VTFPP_FORMAT_BE(uint16_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (UVLX8888, VTFPP_FORMAT_BE(uint8_t x, l, v, u), VTFPP_U VTFPP_V VTFPP_L VTFPP_X) | |
| VTFPP_FORMAT (R32F, VTFPP_FORMAT_BE(float r), VTFPP_R) | |
| VTFPP_FORMAT (RGB323232F, VTFPP_FORMAT_BE(float b, g, r), VTFPP_R VTFPP_G VTFPP_B) | |
| VTFPP_FORMAT (RGBA32323232F, VTFPP_FORMAT_BE(float a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (RG1616F, VTFPP_FORMAT_BE(half g, r), VTFPP_R VTFPP_G) | |
| VTFPP_FORMAT (RG3232F, VTFPP_FORMAT_BE(float g, r), VTFPP_R VTFPP_G) | |
| VTFPP_FORMAT (RGBX8888, VTFPP_FORMAT_BE(uint8_t x, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_X) | |
| VTFPP_FORMAT (RGBA1010102, VTFPP_FORMAT_BE(uint32_t data), VTFPP_R_BSWAP(RGBA1010102) VTFPP_G_BSWAP(RGBA1010102) VTFPP_B_BSWAP(RGBA1010102) VTFPP_A_BSWAP(RGBA1010102)) | |
| VTFPP_FORMAT (BGRA1010102, VTFPP_FORMAT_BE(uint32_t data), VTFPP_B_BSWAP(RGBA1010102) VTFPP_G_BSWAP(RGBA1010102) VTFPP_R_BSWAP(RGBA1010102) VTFPP_A_BSWAP(RGBA1010102)) | |
| VTFPP_FORMAT (R16F, VTFPP_FORMAT_BE(half r), VTFPP_R) | |
| VTFPP_FORMAT (CONSOLE_BGRX8888_LINEAR, VTFPP_FORMAT_BE(uint8_t x, r, g, b), VTFPP_B VTFPP_G VTFPP_R VTFPP_X) | |
| VTFPP_FORMAT (CONSOLE_RGBA8888_LINEAR, VTFPP_FORMAT_BE(uint8_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (CONSOLE_ABGR8888_LINEAR, VTFPP_FORMAT_BE(uint8_t r, g, b, a), VTFPP_A VTFPP_B VTFPP_G VTFPP_R) | |
| VTFPP_FORMAT (CONSOLE_ARGB8888_LINEAR, VTFPP_FORMAT_BE(uint8_t b, g, r, a), VTFPP_A VTFPP_R VTFPP_G VTFPP_B) | |
| VTFPP_FORMAT (CONSOLE_BGRA8888_LINEAR, VTFPP_FORMAT_BE(uint8_t a, r, g, b), VTFPP_B VTFPP_G VTFPP_R VTFPP_A) | |
| VTFPP_FORMAT (CONSOLE_RGB888_LINEAR, VTFPP_FORMAT_BE(uint8_t b, g, r), VTFPP_R VTFPP_G VTFPP_B) | |
| VTFPP_FORMAT (CONSOLE_BGR888_LINEAR, VTFPP_FORMAT_BE(uint8_t r, g, b), VTFPP_B VTFPP_G VTFPP_R) | |
| VTFPP_FORMAT (CONSOLE_BGRX5551_LINEAR, VTFPP_FORMAT_BE(uint16_t data), VTFPP_B_BSWAP(CONSOLE_BGRX5551_LINEAR) VTFPP_G_BSWAP(CONSOLE_BGRX5551_LINEAR) VTFPP_R_BSWAP(CONSOLE_BGRX5551_LINEAR) VTFPP_X_BSWAP(CONSOLE_BGRX5551_LINEAR)) | |
| VTFPP_FORMAT (CONSOLE_I8_LINEAR, VTFPP_FORMAT_BE(uint8_t i), VTFPP_I) | |
| VTFPP_FORMAT (CONSOLE_RGBA16161616_LINEAR, VTFPP_FORMAT_BE(uint16_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (CONSOLE_BGRX8888_LE, VTFPP_FORMAT_BE(uint8_t x, r, g, b), VTFPP_B VTFPP_G VTFPP_R VTFPP_X) | |
| VTFPP_FORMAT (CONSOLE_BGRA8888_LE, VTFPP_FORMAT_BE(uint8_t a, r, g, b), VTFPP_B VTFPP_G VTFPP_R VTFPP_A) | |
| VTFPP_FORMAT (STRATA_R8, VTFPP_FORMAT_BE(uint8_t r), VTFPP_R) | |
| VTFPP_FORMAT (SOURCEPP_BGRA8888_HDR, VTFPP_FORMAT_BE(uint8_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (SOURCEPP_RGBA16161616_HDR, VTFPP_FORMAT_BE(uint16_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| VTFPP_FORMAT (SOURCEPP_CONSOLE_RGBA16161616_HDR, VTFPP_FORMAT_BE(uint16_t a, b, g, r), VTFPP_R VTFPP_G VTFPP_B VTFPP_A) | |
| template<PixelType P, typename C> | |
| std::vector< std::byte > | extractChannelFromImageData (std::span< const std::byte > imageData, C(P::*channel)() const) |
| Extracts a single channel from the given image data. | |
| template<PixelType InputPixel, typename Func> | |
| void | transformInPlace (std::span< std::byte > imageData, Func callback) |
| Run a parallelizable/vectorizable operation on the given image data. | |
| template<PixelType InputPixel, PixelType OutputPixel, typename Func> | |
| std::vector< std::byte > | transform (std::span< const std::byte > imageData, Func callback) |
| Run a parallelizable/vectorizable operation on the given image data, and return new image data. | |
|
nodiscard |
Extracts a single channel from the given image data.
May have unexpected behavior if called on formats that use bitfields like BGRA5551! Data is packed according to pixel channel C++ type size (e.g. in the case of BGRA5551's green channel, it'll be 2 bytes per green value despite only 5 bits being used in the original data)
Definition at line 522 of file ImagePixel.h.
|
nodiscard |
Run a parallelizable/vectorizable operation on the given image data, and return new image data.
Definition at line 567 of file ImagePixel.h.
| void vtfpp::ImagePixel::transformInPlace | ( | std::span< std::byte > | imageData, |
| Func | callback ) |
Run a parallelizable/vectorizable operation on the given image data.
Definition at line 548 of file ImagePixel.h.
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | A8 | , |
| VTFPP_FORMAT_BE(uint8_t a) | , | ||
| VTFPP_A | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | ABGR8888 | , |
| VTFPP_FORMAT_BE(uint8_t r, g, b, a) | , | ||
| VTFPP_A VTFPP_B VTFPP_G | VTFPP_R ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | ARGB8888 | , |
| VTFPP_FORMAT_BE(uint8_t b, g, r, a) | , | ||
| VTFPP_A VTFPP_R VTFPP_G | VTFPP_B ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGR565 | , |
| VTFPP_FORMAT_BE(uint16_t data) | , | ||
| VTFPP_B_BSWAP(BGR565) VTFPP_G_BSWAP(BGR565) VTFPP_R_BSWAP(BGR565) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGR888 | , |
| VTFPP_FORMAT_BE(uint8_t r, g, b) | , | ||
| VTFPP_B VTFPP_G | VTFPP_R ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGR888_BLUESCREEN | , |
| VTFPP_FORMAT_BE(uint8_t r, g, b) | , | ||
| VTFPP_B VTFPP_G | VTFPP_R ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGRA1010102 | , |
| VTFPP_FORMAT_BE(uint32_t data) | , | ||
| VTFPP_B_BSWAP(RGBA1010102) VTFPP_G_BSWAP(RGBA1010102) VTFPP_R_BSWAP(RGBA1010102) VTFPP_A_BSWAP(RGBA1010102) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGRA4444 | , |
| VTFPP_FORMAT_BE(uint16_t data) | , | ||
| VTFPP_B_BSWAP(BGRA4444) VTFPP_G_BSWAP(BGRA4444) VTFPP_R_BSWAP(BGRA4444) VTFPP_A_BSWAP(BGRA4444) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGRA5551 | , |
| VTFPP_FORMAT_BE(uint16_t data) | , | ||
| VTFPP_B_BSWAP(BGRA5551) VTFPP_G_BSWAP(BGRA5551) VTFPP_R_BSWAP(BGRA5551) VTFPP_A_BSWAP(BGRA5551) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGRA8888 | , |
| VTFPP_FORMAT_BE(uint8_t a, r, g, b) | , | ||
| VTFPP_B VTFPP_G VTFPP_R | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGRX5551 | , |
| VTFPP_FORMAT_BE(uint16_t data) | , | ||
| VTFPP_B_BSWAP(BGRX5551) VTFPP_G_BSWAP(BGRX5551) VTFPP_R_BSWAP(BGRX5551) VTFPP_X_BSWAP(BGRX5551) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | BGRX8888 | , |
| VTFPP_FORMAT_BE(uint8_t x, r, g, b) | , | ||
| VTFPP_B VTFPP_G VTFPP_R | VTFPP_X ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_ABGR8888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t r, g, b, a) | , | ||
| VTFPP_A VTFPP_B VTFPP_G | VTFPP_R ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_ARGB8888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t b, g, r, a) | , | ||
| VTFPP_A VTFPP_R VTFPP_G | VTFPP_B ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_BGR888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t r, g, b) | , | ||
| VTFPP_B VTFPP_G | VTFPP_R ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_BGRA8888_LE | , |
| VTFPP_FORMAT_BE(uint8_t a, r, g, b) | , | ||
| VTFPP_B VTFPP_G VTFPP_R | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_BGRA8888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t a, r, g, b) | , | ||
| VTFPP_B VTFPP_G VTFPP_R | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_BGRX5551_LINEAR | , |
| VTFPP_FORMAT_BE(uint16_t data) | , | ||
| VTFPP_B_BSWAP(CONSOLE_BGRX5551_LINEAR) VTFPP_G_BSWAP(CONSOLE_BGRX5551_LINEAR) VTFPP_R_BSWAP(CONSOLE_BGRX5551_LINEAR) VTFPP_X_BSWAP(CONSOLE_BGRX5551_LINEAR) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_BGRX8888_LE | , |
| VTFPP_FORMAT_BE(uint8_t x, r, g, b) | , | ||
| VTFPP_B VTFPP_G VTFPP_R | VTFPP_X ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_BGRX8888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t x, r, g, b) | , | ||
| VTFPP_B VTFPP_G VTFPP_R | VTFPP_X ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_I8_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t i) | , | ||
| VTFPP_I | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_RGB888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t b, g, r) | , | ||
| VTFPP_R VTFPP_G | VTFPP_B ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_RGBA16161616_LINEAR | , |
| VTFPP_FORMAT_BE(uint16_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | CONSOLE_RGBA8888_LINEAR | , |
| VTFPP_FORMAT_BE(uint8_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | I8 | , |
| VTFPP_FORMAT_BE(uint8_t i) | , | ||
| VTFPP_I | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | IA88 | , |
| VTFPP_FORMAT_BE(uint8_t a, i) | , | ||
| VTFPP_I | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | P8 | , |
| VTFPP_FORMAT_BE(uint8_t p) | , | ||
| VTFPP_P | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | R16F | , |
| VTFPP_FORMAT_BE(half r) | , | ||
| VTFPP_R | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | R32F | , |
| VTFPP_FORMAT_BE(float r) | , | ||
| VTFPP_R | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RG1616F | , |
| VTFPP_FORMAT_BE(half g, r) | , | ||
| VTFPP_R | VTFPP_G ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RG3232F | , |
| VTFPP_FORMAT_BE(float g, r) | , | ||
| VTFPP_R | VTFPP_G ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGB323232F | , |
| VTFPP_FORMAT_BE(float b, g, r) | , | ||
| VTFPP_R VTFPP_G | VTFPP_B ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGB565 | , |
| VTFPP_FORMAT_BE(uint16_t data) | , | ||
| VTFPP_R_BSWAP(RGB565) VTFPP_G_BSWAP(RGB565) VTFPP_B_BSWAP(RGB565) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGB888 | , |
| VTFPP_FORMAT_BE(uint8_t b, g, r) | , | ||
| VTFPP_R VTFPP_G | VTFPP_B ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGB888_BLUESCREEN | , |
| VTFPP_FORMAT_BE(uint8_t b, g, r) | , | ||
| VTFPP_R VTFPP_G | VTFPP_B ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGBA1010102 | , |
| VTFPP_FORMAT_BE(uint32_t data) | , | ||
| VTFPP_R_BSWAP(RGBA1010102) VTFPP_G_BSWAP(RGBA1010102) VTFPP_B_BSWAP(RGBA1010102) VTFPP_A_BSWAP(RGBA1010102) | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGBA16161616 | , |
| VTFPP_FORMAT_BE(uint16_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGBA16161616F | , |
| VTFPP_FORMAT_BE(half a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGBA32323232F | , |
| VTFPP_FORMAT_BE(float a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGBA8888 | , |
| VTFPP_FORMAT_BE(uint8_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | RGBX8888 | , |
| VTFPP_FORMAT_BE(uint8_t x, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_X ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | SOURCEPP_BGRA8888_HDR | , |
| VTFPP_FORMAT_BE(uint8_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | SOURCEPP_CONSOLE_RGBA16161616_HDR | , |
| VTFPP_FORMAT_BE(uint16_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | SOURCEPP_RGBA16161616_HDR | , |
| VTFPP_FORMAT_BE(uint16_t a, b, g, r) | , | ||
| VTFPP_R VTFPP_G VTFPP_B | VTFPP_A ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | STRATA_R8 | , |
| VTFPP_FORMAT_BE(uint8_t r) | , | ||
| VTFPP_R | ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | UV88 | , |
| VTFPP_FORMAT_BE(uint8_t v, u) | , | ||
| VTFPP_U | VTFPP_V ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | UVLX8888 | , |
| VTFPP_FORMAT_BE(uint8_t x, l, v, u) | , | ||
| VTFPP_U VTFPP_V VTFPP_L | VTFPP_X ) |
| vtfpp::ImagePixel::VTFPP_FORMAT | ( | UVWQ8888 | , |
| VTFPP_FORMAT_BE(uint8_t q, w, v, u) | , | ||
| VTFPP_U VTFPP_V VTFPP_W | VTFPP_Q ) |