aboutsummaryrefslogtreecommitdiff
path: root/externals/bc_decoder/bc_decoder.h
diff options
context:
space:
mode:
authorGPUCode <geoster3d@gmail.com>2023-06-06 23:10:06 +0300
committerbunnei <bunneidev@gmail.com>2023-06-27 18:00:09 -0700
commit5196f05cecc693a9c88ec3f08997f03857926ee4 (patch)
tree761e98947d8e26a6409e24befa99cd127f67458d /externals/bc_decoder/bc_decoder.h
parent8a829a12b6098d63c06ae06155b56b2ebea6a7ba (diff)
video_core: Add BCn decoding support
Diffstat (limited to 'externals/bc_decoder/bc_decoder.h')
-rw-r--r--externals/bc_decoder/bc_decoder.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/externals/bc_decoder/bc_decoder.h b/externals/bc_decoder/bc_decoder.h
new file mode 100644
index 0000000000..4f0ead7d38
--- /dev/null
+++ b/externals/bc_decoder/bc_decoder.h
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: MPL-2.0
+// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
+
+#pragma once
+
+#include <cstdint>
+
+namespace bcn {
+ /**
+ * @brief Decodes a BC1 encoded image to R8G8B8A8
+ */
+ void DecodeBc1(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+
+ /**
+ * @brief Decodes a BC2 encoded image to R8G8B8A8
+ */
+ void DecodeBc2(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+
+ /**
+ * @brief Decodes a BC3 encoded image to R8G8B8A8
+ */
+ void DecodeBc3(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+
+ /**
+ * @brief Decodes a BC4 encoded image to R8
+ */
+ void DecodeBc4(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned);
+
+ /**
+ * @brief Decodes a BC5 encoded image to R8G8
+ */
+ void DecodeBc5(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned);
+
+ /**
+ * @brief Decodes a BC6 encoded image to R16G16B16A16
+ */
+ void DecodeBc6(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned);
+
+ /**
+ * @brief Decodes a BC7 encoded image to R8G8B8A8
+ */
+ void DecodeBc7(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+}