SSBM Decomp
Loading...
Searching...
No Matches
video.h
Go to the documentation of this file.
1#ifndef _video_h_
2#define _video_h_
3
4#include <platform.h>
5
6#include <dolphin/gx.h>
7#include <dolphin/gx/GXEnum.h>
8
9#define HSD_VI_XFB_MAX 3
10#define HSD_ANTIALIAS_OVERLAP 4
11#define VI_DISPLAY_PIX_SZ 2
12#define HSD_ANTIALIAS_GARBAGE_SIZE \
13 (640 * HSD_ANTIALIAS_OVERLAP * VI_DISPLAY_PIX_SZ)
14
15typedef void (*HSD_VIGXDrawDoneCallback)(int);
16typedef void (*HSD_VIRetraceCallback)(u32);
17
30
36
44
45typedef struct _HSD_VIStatus {
46 GXRenderModeObj rmode;
47 s32 black;
48 u8 vf;
49 GXGamma gamma;
50 GXColor clear_clr;
56
57typedef struct _current {
58 struct _HSD_VIStatus vi;
60} Current;
61
62typedef struct _XFB {
63 void* buffer;
66} XFB;
67
95
97
98void HSD_VIInit(struct _HSD_VIStatus* vi_status, void* xfb0, void* xfb1,
99 void* xfb2);
100void HSD_VISetConfigure(GXRenderModeObj* rmode);
101void HSD_VISetBlack(bool);
102
109
110int HSD_VIGetXFBDrawEnable(void);
113 HSD_RenderPass rpass);
114
115void HSD_VIGXDrawDone(int arg);
116void HSD_VIGXSetDrawDone(int arg);
117void HSD_VISetXFBWaitDone(int idx);
119void HSD_VIDrawDoneXFB(int idx);
120void HSD_VIWaitXFBFlush(void);
123
124static inline int HSD_VIGetNbXFB(void)
125{
126 return HSD_VIData.nb_xfb;
127}
128
129static inline void* HSD_VIGetXFBPtr(int idx)
130{
131 return HSD_VIData.xfb[idx].buffer;
132}
133
134static inline HSD_VIStatus* HSD_VIGetVIStatus(void)
135{
136 return &HSD_VIData.current.vi;
137}
138
139static inline GXRenderModeObj* HSD_VIGetRenderMode(void)
140{
141 return &HSD_VIData.current.vi.rmode;
142}
143
144#endif
char buffer[1500]
Definition dbbonus.c:24
static GXRenderModeObj * rmode
Definition initialize.c:39
Definition video.h:57
u8 chg_flag
Definition video.h:59
struct _HSD_VIStatus vi
Definition video.h:58
Definition video.h:73
HSD_VIEFBDrawDispStatus status
Definition video.h:74
Current vi_all
Definition video.h:75
Definition video.h:83
HSD_VIGXDrawDoneCallback cb
Definition video.h:86
s32 waiting
Definition video.h:84
s32 arg
Definition video.h:85
Definition video.h:89
s32 frame_renew
Definition video.h:91
s32 frame_period
Definition video.h:90
Definition video.h:68
XFB xfb[HSD_VI_XFB_MAX]
Definition video.h:71
HSD_VIRetraceCallback post_cb
Definition video.h:81
s32 nb_xfb
Definition video.h:78
HSD_VIRetraceCallback pre_cb
Definition video.h:80
Current current
Definition video.h:69
Definition video.h:45
GXGamma gamma
Definition video.h:49
u8 vf
Definition video.h:48
GXColor clear_clr
Definition video.h:50
GXRenderModeObj rmode
Definition video.h:46
u8 update_clr
Definition video.h:52
u8 update_z
Definition video.h:54
s32 black
Definition video.h:47
u32 clear_z
Definition video.h:51
u8 update_alpha
Definition video.h:53
Definition video.h:62
void * buffer
Definition video.h:63
HSD_VIXFBDrawDispStatus status
Definition video.h:64
Current vi_all
Definition video.h:65
#define HSD_VI_XFB_MAX
Definition video.h:9
HSD_RenderPass
Definition video.h:37
@ HSD_RP_TOPHALF
Definition video.h:39
@ HSD_RP_BOTTOMHALF
Definition video.h:40
@ HSD_RP_OFFSCREEN
Definition video.h:41
@ HSD_RP_NUM
Definition video.h:42
@ HSD_RP_SCREEN
Definition video.h:38
void(* HSD_VIRetraceCallback)(u32)
Definition video.h:16
int HSD_VIGetXFBLastDrawDone(void)
Definition video.c:359
HSD_VIXFBDrawDispStatus
Definition video.h:18
@ HSD_VI_XFB_DRAWDONE
Definition video.h:24
@ HSD_VI_XFB_NONE
Definition video.h:19
@ HSD_VI_XFB_DRAWING
Definition video.h:22
@ HSD_VI_XFB_TERMINATE
Definition video.h:28
@ HSD_VI_XFB_COPYEFB
Definition video.h:27
@ HSD_VI_XFB_DISPLAY
Definition video.h:26
@ HSD_VI_XFB_WAITDONE
Definition video.h:23
@ HSD_VI_XFB_NOUSE
Definition video.h:20
@ HSD_VI_XFB_NEXT
Definition video.h:25
@ HSD_VI_XFB_FREE
Definition video.h:21
void HSD_VIInit(struct _HSD_VIStatus *vi_status, void *xfb0, void *xfb1, void *xfb2)
void HSD_VIWaitXFBFlushNoYield(void)
Definition video.c:349
static int HSD_VIGetNbXFB(void)
Definition video.h:124
void HSD_VISetXFBWaitDone(int idx)
Definition video.c:275
HSD_VIInfo HSD_VIData
Definition video.c:10
HSD_VIGXDrawDoneCallback HSD_VISetUserGXDrawDoneCallback(HSD_VIGXDrawDoneCallback cb)
Definition video.c:53
void HSD_VISetBlack(bool)
Definition video.c:385
void HSD_VIWaitXFBFlush(void)
Definition video.c:338
void HSD_VISetConfigure(GXRenderModeObj *rmode)
Definition video.c:379
static void * HSD_VIGetXFBPtr(int idx)
Definition video.h:129
int HSD_VIWaitXFBDrawEnable(void)
Definition video.c:184
static HSD_VIStatus * HSD_VIGetVIStatus(void)
Definition video.h:134
HSD_VIEFBDrawDispStatus
Definition video.h:31
@ HSD_VI_EFB_TERMINATE
Definition video.h:34
@ HSD_VI_EFB_DRAWDONE
Definition video.h:33
@ HSD_VI_EFB_FREE
Definition video.h:32
void HSD_VIGXDrawDone(int arg)
static GXRenderModeObj * HSD_VIGetRenderMode(void)
Definition video.h:139
void HSD_VICopyEFB2XFBPtr(HSD_VIStatus *vi, void *buffer, HSD_RenderPass rpass)
Definition video.c:210
void HSD_VIDrawDoneXFB(int idx)
Definition video.c:305
void HSD_VIGXSetDrawDone(int arg)
Definition video.c:265
int HSD_VIGetXFBDrawEnable(void)
Definition video.c:161
void HSD_VICopyXFBAsync(HSD_RenderPass rpass)
Definition video.c:290
HSD_VIRetraceCallback HSD_VISetUserPostRetraceCallback(HSD_VIRetraceCallback cb)
Definition video.c:40
HSD_VIRetraceCallback HSD_VISetUserPreRetraceCallback(HSD_VIRetraceCallback cb)
Definition video.c:27
void(* HSD_VIGXDrawDoneCallback)(int)
Definition video.h:15