SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
video.h
Go to the documentation of this file.
1
#ifndef _video_h_
2
#define _video_h_
3
4
#include <
Runtime/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
15
typedef
void (*
HSD_VIGXDrawDoneCallback
)(int);
16
typedef
void (*
HSD_VIRetraceCallback
)(
u32
);
17
18
typedef
enum
_HSD_VIXFBDrawDispStatus {
19
HSD_VI_XFB_NONE
,
20
HSD_VI_XFB_NOUSE
,
21
HSD_VI_XFB_FREE
,
22
HSD_VI_XFB_DRAWING
,
23
HSD_VI_XFB_WAITDONE
,
24
HSD_VI_XFB_DRAWDONE
,
25
HSD_VI_XFB_NEXT
,
26
HSD_VI_XFB_DISPLAY
,
27
HSD_VI_XFB_COPYEFB
,
28
HSD_VI_XFB_TERMINATE
29
}
HSD_VIXFBDrawDispStatus
;
30
31
typedef
enum
_HSD_VIEFBDrawDispStatus {
32
HSD_VI_EFB_FREE
,
33
HSD_VI_EFB_DRAWDONE
,
34
HSD_VI_EFB_TERMINATE
35
}
HSD_VIEFBDrawDispStatus
;
36
37
typedef
enum
_HSD_RenderPass {
38
HSD_RP_SCREEN
,
39
HSD_RP_TOPHALF
,
40
HSD_RP_BOTTOMHALF
,
41
HSD_RP_OFFSCREEN
,
42
HSD_RP_NUM
43
}
HSD_RenderPass
;
44
45
typedef
struct
_HSD_VIStatus {
46
GXRenderModeObj
rmode
;
47
s32
black
;
48
u8
vf
;
49
GXGamma
gamma
;
50
GXColor
clear_clr
;
51
u32
clear_z
;
52
u8
update_clr
;
53
u8
update_alpha
;
54
u8
update_z
;
55
}
HSD_VIStatus
;
56
57
typedef
struct
_current {
58
struct
_HSD_VIStatus
vi
;
59
u8
chg_flag
;
60
}
Current
;
61
62
typedef
struct
_XFB {
63
void
*
buffer
;
64
HSD_VIXFBDrawDispStatus
status
;
65
Current
vi_all
;
66
}
XFB
;
67
68
typedef
struct
_HSD_VIInfo {
69
Current
current
;
70
71
XFB
xfb
[
HSD_VI_XFB_MAX
];
72
73
struct
_EFB
{
74
HSD_VIEFBDrawDispStatus
status
;
75
Current
vi_all
;
76
} efb;
77
78
s32
nb_xfb
;
79
80
HSD_VIRetraceCallback
pre_cb
;
81
HSD_VIRetraceCallback
post_cb
;
82
83
struct
drawdone
{
84
s32
waiting
;
85
s32
arg
;
86
HSD_VIGXDrawDoneCallback
cb
;
87
} drawdone;
88
89
struct
perf
{
90
s32
frame_period
;
91
s32
frame_renew
;
92
} perf;
93
94
}
HSD_VIInfo
;
95
96
extern
HSD_VIInfo
HSD_VIData
;
97
98
void
HSD_VIInit
(
struct
_HSD_VIStatus* vi_status,
void
* xfb0,
void
* xfb1,
99
void
* xfb2);
100
void
HSD_VISetConfigure
(
GXRenderModeObj
*
rmode
);
101
void
HSD_VISetBlack
(
bool
);
102
103
HSD_VIRetraceCallback
104
HSD_VISetUserPreRetraceCallback
(
HSD_VIRetraceCallback
cb);
105
HSD_VIRetraceCallback
106
HSD_VISetUserPostRetraceCallback
(
HSD_VIRetraceCallback
cb);
107
HSD_VIGXDrawDoneCallback
108
HSD_VISetUserGXDrawDoneCallback
(
HSD_VIGXDrawDoneCallback
cb);
109
110
int
HSD_VIGetXFBDrawEnable
(
void
);
111
int
HSD_VIWaitXFBDrawEnable
(
void
);
112
void
HSD_VICopyEFB2XFBPtr
(
HSD_VIStatus
* vi,
void
*
buffer
,
113
HSD_RenderPass
rpass);
114
115
void
HSD_VIGXDrawDone
(
int
arg);
116
void
HSD_VIGXSetDrawDone
(
int
arg);
117
void
HSD_VISetXFBWaitDone
(
int
idx);
118
void
HSD_VICopyXFBAsync
(
HSD_RenderPass
rpass);
119
void
HSD_VIDrawDoneXFB
(
int
idx);
120
void
HSD_VIWaitXFBFlush
(
void
);
121
void
HSD_VIWaitXFBFlushNoYield
(
void
);
122
int
HSD_VIGetXFBLastDrawDone
(
void
);
123
124
static
inline
int
HSD_VIGetNbXFB
(
void
)
125
{
126
return
HSD_VIData
.nb_xfb;
127
}
128
129
static
inline
void
*
HSD_VIGetXFBPtr
(
int
idx)
130
{
131
return
HSD_VIData
.xfb[idx].buffer;
132
}
133
134
static
inline
HSD_VIStatus
*
HSD_VIGetVIStatus
(
void
)
135
{
136
return
&
HSD_VIData
.current.vi;
137
}
138
139
static
inline
GXRenderModeObj
*
HSD_VIGetRenderMode
(
void
)
140
{
141
return
&
HSD_VIData
.current.vi.rmode;
142
}
143
144
#endif
GXEnum.h
GXGamma
GXGamma
Definition
GXEnum.h:50
buffer
char buffer[1500]
Definition
dbbonus.c:29
u32
unsigned long u32
Definition
types.h:9
s32
signed long s32
Definition
types.h:8
u8
unsigned char u8
Definition
types.h:5
gx.h
rmode
static GXRenderModeObj * rmode
Definition
initialize.c:42
platform.h
Current
Definition
video.h:57
Current::chg_flag
u8 chg_flag
Definition
video.h:59
Current::vi
struct _HSD_VIStatus vi
Definition
video.h:58
GXColor
Definition
GXStruct.h:29
GXRenderModeObj
Definition
GXStruct.h:12
HSD_VIInfo::_EFB
Definition
video.h:73
HSD_VIInfo::_EFB::status
HSD_VIEFBDrawDispStatus status
Definition
video.h:74
HSD_VIInfo::_EFB::vi_all
Current vi_all
Definition
video.h:75
HSD_VIInfo::drawdone
Definition
video.h:83
HSD_VIInfo::drawdone::cb
HSD_VIGXDrawDoneCallback cb
Definition
video.h:86
HSD_VIInfo::drawdone::waiting
s32 waiting
Definition
video.h:84
HSD_VIInfo::drawdone::arg
s32 arg
Definition
video.h:85
HSD_VIInfo::perf
Definition
video.h:89
HSD_VIInfo::perf::frame_renew
s32 frame_renew
Definition
video.h:91
HSD_VIInfo::perf::frame_period
s32 frame_period
Definition
video.h:90
HSD_VIInfo
Definition
video.h:68
HSD_VIInfo::xfb
XFB xfb[HSD_VI_XFB_MAX]
Definition
video.h:71
HSD_VIInfo::post_cb
HSD_VIRetraceCallback post_cb
Definition
video.h:81
HSD_VIInfo::nb_xfb
s32 nb_xfb
Definition
video.h:78
HSD_VIInfo::pre_cb
HSD_VIRetraceCallback pre_cb
Definition
video.h:80
HSD_VIInfo::current
Current current
Definition
video.h:69
HSD_VIStatus
Definition
video.h:45
HSD_VIStatus::gamma
GXGamma gamma
Definition
video.h:49
HSD_VIStatus::vf
u8 vf
Definition
video.h:48
HSD_VIStatus::clear_clr
GXColor clear_clr
Definition
video.h:50
HSD_VIStatus::rmode
GXRenderModeObj rmode
Definition
video.h:46
HSD_VIStatus::update_clr
u8 update_clr
Definition
video.h:52
HSD_VIStatus::update_z
u8 update_z
Definition
video.h:54
HSD_VIStatus::black
s32 black
Definition
video.h:47
HSD_VIStatus::clear_z
u32 clear_z
Definition
video.h:51
HSD_VIStatus::update_alpha
u8 update_alpha
Definition
video.h:53
XFB
Definition
video.h:62
XFB::buffer
void * buffer
Definition
video.h:63
XFB::status
HSD_VIXFBDrawDispStatus status
Definition
video.h:64
XFB::vi_all
Current vi_all
Definition
video.h:65
HSD_VIData
HSD_VIInfo HSD_VIData
Definition
video.c:8
HSD_VI_XFB_MAX
#define HSD_VI_XFB_MAX
Definition
video.h:9
HSD_RenderPass
HSD_RenderPass
Definition
video.h:37
HSD_RP_TOPHALF
@ HSD_RP_TOPHALF
Definition
video.h:39
HSD_RP_BOTTOMHALF
@ HSD_RP_BOTTOMHALF
Definition
video.h:40
HSD_RP_OFFSCREEN
@ HSD_RP_OFFSCREEN
Definition
video.h:41
HSD_RP_NUM
@ HSD_RP_NUM
Definition
video.h:42
HSD_RP_SCREEN
@ HSD_RP_SCREEN
Definition
video.h:38
HSD_VIRetraceCallback
void(* HSD_VIRetraceCallback)(u32)
Definition
video.h:16
HSD_VIGetXFBLastDrawDone
int HSD_VIGetXFBLastDrawDone(void)
Definition
video.c:361
HSD_VIXFBDrawDispStatus
HSD_VIXFBDrawDispStatus
Definition
video.h:18
HSD_VI_XFB_DRAWDONE
@ HSD_VI_XFB_DRAWDONE
Definition
video.h:24
HSD_VI_XFB_NONE
@ HSD_VI_XFB_NONE
Definition
video.h:19
HSD_VI_XFB_DRAWING
@ HSD_VI_XFB_DRAWING
Definition
video.h:22
HSD_VI_XFB_TERMINATE
@ HSD_VI_XFB_TERMINATE
Definition
video.h:28
HSD_VI_XFB_COPYEFB
@ HSD_VI_XFB_COPYEFB
Definition
video.h:27
HSD_VI_XFB_DISPLAY
@ HSD_VI_XFB_DISPLAY
Definition
video.h:26
HSD_VI_XFB_WAITDONE
@ HSD_VI_XFB_WAITDONE
Definition
video.h:23
HSD_VI_XFB_NOUSE
@ HSD_VI_XFB_NOUSE
Definition
video.h:20
HSD_VI_XFB_NEXT
@ HSD_VI_XFB_NEXT
Definition
video.h:25
HSD_VI_XFB_FREE
@ HSD_VI_XFB_FREE
Definition
video.h:21
HSD_VIInit
void HSD_VIInit(struct _HSD_VIStatus *vi_status, void *xfb0, void *xfb1, void *xfb2)
HSD_VIWaitXFBFlushNoYield
void HSD_VIWaitXFBFlushNoYield(void)
Definition
video.c:351
HSD_VIGetNbXFB
static int HSD_VIGetNbXFB(void)
Definition
video.h:124
HSD_VISetXFBWaitDone
void HSD_VISetXFBWaitDone(int idx)
Definition
video.c:277
HSD_VISetUserGXDrawDoneCallback
HSD_VIGXDrawDoneCallback HSD_VISetUserGXDrawDoneCallback(HSD_VIGXDrawDoneCallback cb)
Definition
video.c:51
HSD_VISetBlack
void HSD_VISetBlack(bool)
Definition
video.c:387
HSD_VIWaitXFBFlush
void HSD_VIWaitXFBFlush(void)
Definition
video.c:340
HSD_VISetConfigure
void HSD_VISetConfigure(GXRenderModeObj *rmode)
Definition
video.c:381
HSD_VIGetXFBPtr
static void * HSD_VIGetXFBPtr(int idx)
Definition
video.h:129
HSD_VIWaitXFBDrawEnable
int HSD_VIWaitXFBDrawEnable(void)
Definition
video.c:186
HSD_VIGetVIStatus
static HSD_VIStatus * HSD_VIGetVIStatus(void)
Definition
video.h:134
HSD_VIEFBDrawDispStatus
HSD_VIEFBDrawDispStatus
Definition
video.h:31
HSD_VI_EFB_TERMINATE
@ HSD_VI_EFB_TERMINATE
Definition
video.h:34
HSD_VI_EFB_DRAWDONE
@ HSD_VI_EFB_DRAWDONE
Definition
video.h:33
HSD_VI_EFB_FREE
@ HSD_VI_EFB_FREE
Definition
video.h:32
HSD_VIGXDrawDone
void HSD_VIGXDrawDone(int arg)
HSD_VIGetRenderMode
static GXRenderModeObj * HSD_VIGetRenderMode(void)
Definition
video.h:139
HSD_VICopyEFB2XFBPtr
void HSD_VICopyEFB2XFBPtr(HSD_VIStatus *vi, void *buffer, HSD_RenderPass rpass)
Definition
video.c:212
HSD_VIDrawDoneXFB
void HSD_VIDrawDoneXFB(int idx)
Definition
video.c:307
HSD_VIGXSetDrawDone
void HSD_VIGXSetDrawDone(int arg)
Definition
video.c:267
HSD_VIGetXFBDrawEnable
int HSD_VIGetXFBDrawEnable(void)
Definition
video.c:163
HSD_VICopyXFBAsync
void HSD_VICopyXFBAsync(HSD_RenderPass rpass)
Definition
video.c:292
HSD_VISetUserPostRetraceCallback
HSD_VIRetraceCallback HSD_VISetUserPostRetraceCallback(HSD_VIRetraceCallback cb)
Definition
video.c:38
HSD_VISetUserPreRetraceCallback
HSD_VIRetraceCallback HSD_VISetUserPreRetraceCallback(HSD_VIRetraceCallback cb)
Definition
video.c:25
HSD_VIGXDrawDoneCallback
void(* HSD_VIGXDrawDoneCallback)(int)
Definition
video.h:15
src
sysdolphin
baselib
video.h
Generated by
1.17.0