summaryrefslogtreecommitdiff
path: root/include/vis.h
diff options
context:
space:
mode:
authorfig02 <fig02srl@gmail.com>2025-06-04 14:38:33 -0400
committerGitHub <noreply@github.com>2025-06-04 14:38:33 -0400
commit28cc9d68cfe4a037eb232d5465b84a943539bca3 (patch)
tree4001d36dccb035576f3cbf17cf9a548cdc9c5b3f /include/vis.h
parente8b708a4480e568f409c8e53986c2e96595b9405 (diff)
Remove "z64" prefix from all headers (#2518)
* z64 - a * z64 - b * z64 - c * z64 - d * z64 - e * z64 - f * z64 - g * z64 - h * z64 - i * z64 - l * z64 - m * z64 - o * z64 - p * z64 - q * z64 - r * z64 - s * z64 - t * z64 - v * restore file * fix merge * fix merge --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
Diffstat (limited to 'include/vis.h')
-rw-r--r--include/vis.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/include/vis.h b/include/vis.h
new file mode 100644
index 000000000..52b1f0a69
--- /dev/null
+++ b/include/vis.h
@@ -0,0 +1,84 @@
+#ifndef VIS_H
+#define VIS_H
+
+#include "ultra64.h"
+#include "color.h"
+
+typedef enum FramebufferFilterType {
+ /* 0 */ FB_FILTER_NONE,
+ /* 1 */ FB_FILTER_CVG_RGB,
+ /* 2 */ FB_FILTER_CVG_RGB_UNIFORM,
+ /* 3 */ FB_FILTER_CVG_ONLY,
+ /* 4 */ FB_FILTER_CVG_RGB_FOG, // Not recommended, easily overflows blender
+ /* 5 */ FB_FILTER_ZBUF_IA,
+ /* 6 */ FB_FILTER_ZBUF_RGBA,
+ /* 7 */ FB_FILTER_MONO
+} FramebufferFilterType;
+
+typedef enum VisScissorType {
+ /* 0 */ VIS_NO_SETSCISSOR,
+ /* 1 */ VIS_SETSCISSOR
+} VisScissorType;
+
+typedef struct Vis {
+ /* 0x00 */ u32 type;
+ /* 0x04 */ u32 scissorType;
+ /* 0x08 */ Color_RGBA8_u32 primColor;
+ /* 0x0C */ Color_RGBA8_u32 envColor;
+} Vis; // size = 0x10
+
+
+/* Cvg: Coverage */
+
+#define FB_FILTER_TO_CVG_TYPE(filter) (filter)
+
+typedef enum VisCvgType {
+ /* 0 */ VIS_CVG_TYPE_NONE = FB_FILTER_TO_CVG_TYPE(FB_FILTER_NONE),
+ /* 1 */ VIS_CVG_TYPE_CVG_RGB = FB_FILTER_TO_CVG_TYPE(FB_FILTER_CVG_RGB),
+ /* 2 */ VIS_CVG_TYPE_CVG_RGB_UNIFORM = FB_FILTER_TO_CVG_TYPE(FB_FILTER_CVG_RGB_UNIFORM),
+ /* 3 */ VIS_CVG_TYPE_CVG_ONLY = FB_FILTER_TO_CVG_TYPE(FB_FILTER_CVG_ONLY),
+ /* 4 */ VIS_CVG_TYPE_CVG_RGB_FOG = FB_FILTER_TO_CVG_TYPE(FB_FILTER_CVG_RGB_FOG)
+} VisCvgType;
+
+typedef struct VisCvg {
+ /* 0x00 */ Vis vis;
+} VisCvg; // size = 0x10
+
+void VisCvg_Init(VisCvg* this);
+void VisCvg_Destroy(VisCvg* this);
+void VisCvg_Draw(VisCvg* this, Gfx** gfxP);
+
+
+/* Mono: Desaturation */
+
+// Only one type
+
+typedef struct VisMono {
+ /* 0x00 */ Vis vis;
+ /* 0x10 */ u16* tlut;
+ /* 0x14 */ Gfx* dList;
+} VisMono; // size = 0x18
+
+void VisMono_Init(VisMono* this);
+void VisMono_Destroy(VisMono* this);
+void VisMono_Draw(VisMono* this, Gfx** gfxP);
+
+
+/* ZBuf: Z-Buffer */
+
+#define FB_FILTER_TO_ZBUF_TYPE(filter) ((filter) - FB_FILTER_ZBUF_IA)
+
+typedef enum VisZBufType {
+ /* 0 */ VIS_ZBUF_TYPE_IA = FB_FILTER_TO_ZBUF_TYPE(FB_FILTER_ZBUF_IA),
+ /* 1 */ VIS_ZBUF_TYPE_RGBA = FB_FILTER_TO_ZBUF_TYPE(FB_FILTER_ZBUF_RGBA)
+} VisZBufType;
+
+typedef struct VisZBuf {
+ /* 0x00 */ Vis vis;
+} VisZBuf; // size = 0x10
+
+void VisZBuf_Init(VisZBuf* this);
+void VisZBuf_Destroy(VisZBuf* this);
+void VisZBuf_Draw(VisZBuf* this, Gfx** gfxP);
+
+#endif