Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JFWDisplay.h
Go to the documentation of this file.
1#ifndef JFWDISPLAY_H
2#define JFWDISPLAY_H
3
8#include <dolphin/os.h>
9
10typedef struct _GXColor GXColor;
12class JKRHeap;
13
14typedef void (*JFWDisplayUnkFunc)(void);
15
20class JFWAlarm : public OSAlarm {
21public:
22 JFWAlarm() : mLink(this) {}
24 void createAlarm() { OSCreateAlarm(this); }
25 void cancelAlarm() { OSCancelAlarm(this); }
28 OSAlarm* getAlarm() const { return (OSAlarm*)this; }
29 OSThread* getThread() const { return mThread; }
30 void setThread(OSThread* thread) { mThread = thread; }
31
33
34public:
35 /* 0x28 */ OSThread* mThread;
37};
38
44public:
45 enum EDrawDone {
46 /* 0x0 */ UNK_METHOD_0 = 0,
47 /* 0x1 */ UNK_METHOD_1 = 1
48 };
49
50 void ctor_subroutine(bool);
53 JUTXfb::EXfbNumber, bool);
54 void prepareCopyDisp();
55 void drawendXfb_single();
56 void exchangeXfb_double();
57 void exchangeXfb_triple();
58 void copyXfb_triple();
59 void preGX();
60 void endGX();
61 void waitBlanking(int);
62 void threadSleep(s64);
63 void clearEfb_init();
64 void clearEfb(int, int, int, int, _GXColor);
65 void clearEfb();
66 void clearEfb(_GXColor);
68
69 virtual void beginRender();
70 virtual void endRender();
71 virtual void endFrame();
72 virtual ~JFWDisplay();
73
74 static JFWDisplay* getManager() { return sManager; }
75
76 static JFWDisplay* createManager(JKRHeap* i_heap, JUTXfb::EXfbNumber i_xfbNum, bool param_2) {
77 return createManager(NULL, i_heap, i_xfbNum, param_2);
78 }
79
80 bool startFadeOut(int param_0) {
81 if (mFader != NULL) {
82 return mFader->startFadeOut(param_0);
83 }
84 return 1;
85 }
86
87 int startFadeIn(int param_0) {
88 if (mFader != NULL) {
89 return mFader->startFadeIn(param_0);
90 }
91 return 1;
92 }
93
94 void setTickRate(u32 rate) {
95 mTickRate = rate;
96 mFrameRate = 0;
97 }
98
99 void setFrameRate(u16 rate) {
100 mFrameRate = rate;
101 mTickRate = 0;
102 }
103
104 void setDrawDoneMethod(EDrawDone drawDone) { mDrawDoneMethod = drawDone; }
105 void setFader(JUTFader* fader) { mFader = fader; }
106 void resetFader() { setFader(NULL); }
107 JUTFader* getFader() const { return mFader; }
109 int getEfbWidth() const { return JUTVideo::getManager()->getFbWidth(); }
110 int getEfbHeight() const { return JUTVideo::getManager()->getEfbHeight(); }
111 JUTXfb* getXfbManager() const { return mXfbManager; }
112
114
115private:
116 /* 0x04 */ JUTFader* mFader;
118 /* 0x0C */ u32 mZClear;
119 /* 0x10 */ JUTXfb* mXfbManager;
120 /* 0x14 */ u16 mGamma;
122 /* 0x1C */ u16 mFrameRate;
123 /* 0x20 */ u32 mTickRate;
124 /* 0x24 */ bool mEnableAlpha;
125 /* 0x26 */ u16 mClamp;
127 /* 0x2C */ u32 field_0x2c;
128 /* 0x30 */ u32 field_0x30;
129 /* 0x34 */ u32 field_0x34;
130 /* 0x38 */ int field_0x38;
131 /* 0x3C */ int field_0x3c;
132 /* 0x40 */ bool field_0x40;
134 /* 0x48 */ s16 field_0x48;
135 /* 0x4A */ u8 field_0x4a;
136};
137
138inline void JUTChangeFrameBuffer(void* buffer, u16 width, u16 height) {
140}
141
142static void JFWDrawDoneAlarm();
145static void waitForTick(u32, u16);
146static void diagnoseGpHang();
147
148#endif /* JFWDISPLAY_H */
void(* JFWDisplayUnkFunc)(void)
Definition JFWDisplay.h:14
void JUTChangeFrameBuffer(void *buffer, u16 width, u16 height)
Definition JFWDisplay.h:138
static void diagnoseGpHang()
static void JFWDrawDoneAlarm()
static void JFWThreadAlarmHandler(OSAlarm *, OSContext *)
static void JFWGXAbortAlarmHandler(OSAlarm *, OSContext *)
static void waitForTick(u32, u16)
Definition JFWDisplay.h:20
static JSUList< JFWAlarm > sList
Definition JFWDisplay.h:32
void appendLink()
Definition JFWDisplay.h:27
JFWAlarm()
Definition JFWDisplay.h:22
void removeLink()
Definition JFWDisplay.h:26
OSAlarm * getAlarm() const
Definition JFWDisplay.h:28
OSThread * mThread
Definition JFWDisplay.h:35
void createAlarm()
Definition JFWDisplay.h:24
JSULink< JFWAlarm > mLink
Definition JFWDisplay.h:36
void cancelAlarm()
Definition JFWDisplay.h:25
OSThread * getThread() const
Definition JFWDisplay.h:29
~JFWAlarm()
Definition JFWDisplay.h:23
void setThread(OSThread *thread)
Definition JFWDisplay.h:30
Definition JFWDisplay.h:43
int getEfbHeight() const
Definition JFWDisplay.h:110
int field_0x38
Definition JFWDisplay.h:130
u16 mGamma
Definition JFWDisplay.h:120
void drawendXfb_single()
Definition JFWDisplay.cpp:99
u16 mClamp
Definition JFWDisplay.h:125
int startFadeIn(int param_0)
Definition JFWDisplay.h:87
static JFWDisplay * createManager(_GXRenderModeObj const *, JKRHeap *, JUTXfb::EXfbNumber, bool)
Definition JFWDisplay.cpp:55
bool field_0x40
Definition JFWDisplay.h:132
JUTFader * getFader() const
Definition JFWDisplay.h:107
void calcCombinationRatio()
Definition JFWDisplay.cpp:488
void clearEfb()
Definition JFWDisplay.cpp:410
virtual void endFrame()
Definition JFWDisplay.cpp:303
JUTXfb * getXfbManager() const
Definition JFWDisplay.h:111
EDrawDone mDrawDoneMethod
Definition JFWDisplay.h:121
virtual void beginRender()
Definition JFWDisplay.cpp:223
void preGX()
Definition JFWDisplay.cpp:176
void setFader(JUTFader *fader)
Definition JFWDisplay.h:105
void prepareCopyDisp()
Definition JFWDisplay.cpp:76
void threadSleep(s64)
Definition JFWDisplay.cpp:373
u32 mZClear
Definition JFWDisplay.h:118
JUTFader * mFader
Definition JFWDisplay.h:116
f32 mCombinationRatio
Definition JFWDisplay.h:126
void setFrameRate(u16 rate)
Definition JFWDisplay.h:99
JUtility::TColor mClearColor
Definition JFWDisplay.h:117
void clearEfb_init()
Definition JFWDisplay.cpp:404
bool mEnableAlpha
Definition JFWDisplay.h:124
u32 field_0x30
Definition JFWDisplay.h:128
u32 field_0x34
Definition JFWDisplay.h:129
void resetFader()
Definition JFWDisplay.h:106
void setClearColor(JUtility::TColor color)
Definition JFWDisplay.h:108
u32 field_0x2c
Definition JFWDisplay.h:127
static JFWDisplay * createManager(JKRHeap *i_heap, JUTXfb::EXfbNumber i_xfbNum, bool param_2)
Definition JFWDisplay.h:76
void waitBlanking(int)
Definition JFWDisplay.cpp:336
void copyXfb_triple()
Definition JFWDisplay.cpp:163
static JFWDisplay * getManager()
Definition JFWDisplay.h:74
u8 field_0x4a
Definition JFWDisplay.h:135
s16 field_0x48
Definition JFWDisplay.h:134
JUTXfb * mXfbManager
Definition JFWDisplay.h:119
virtual void endRender()
Definition JFWDisplay.cpp:283
int getEfbWidth() const
Definition JFWDisplay.h:109
void ctor_subroutine(bool)
Definition JFWDisplay.cpp:14
JFWDisplay(JKRHeap *, JUTXfb::EXfbNumber, bool)
Definition JFWDisplay.cpp:39
void exchangeXfb_double()
Definition JFWDisplay.cpp:111
void setDrawDoneMethod(EDrawDone drawDone)
Definition JFWDisplay.h:104
void exchangeXfb_triple()
Definition JFWDisplay.cpp:145
JFWDisplayUnkFunc field_0x44
Definition JFWDisplay.h:133
u32 mTickRate
Definition JFWDisplay.h:123
u16 mFrameRate
Definition JFWDisplay.h:122
virtual ~JFWDisplay()
Definition JFWDisplay.cpp:44
int field_0x3c
Definition JFWDisplay.h:131
bool startFadeOut(int param_0)
Definition JFWDisplay.h:80
static JFWDisplay * sManager
Definition JFWDisplay.h:113
void setTickRate(u32 rate)
Definition JFWDisplay.h:94
EDrawDone
Definition JFWDisplay.h:45
@ UNK_METHOD_0
Definition JFWDisplay.h:46
@ UNK_METHOD_1
Definition JFWDisplay.h:47
void endGX()
Definition JFWDisplay.cpp:194
Definition JKRHeap.h:23
Definition JSUList.h:96
bool remove(JSULink< T > *link)
Definition JSUList.h:113
bool append(JSULink< T > *link)
Definition JSUList.h:105
static JUTDirectPrint * getManager()
Definition JUTDirectPrint.h:33
void changeFrameBuffer(void *, u16, u16)
Definition JUTDirectPrint.cpp:137
Definition JUTFader.h:11
virtual bool startFadeIn(int)
Definition JUTFader.cpp:61
virtual bool startFadeOut(int)
Definition JUTFader.cpp:73
u16 getEfbHeight() const
Definition JUTVideo.h:34
static JUTVideo * getManager()
Definition JUTVideo.h:45
u16 getFbWidth() const
Definition JUTVideo.h:33
Definition JUTXfb.h:13
EXfbNumber
Definition JUTXfb.h:15
static OSTime buffer
Definition ai.c:24
void OSCreateAlarm(OSAlarm *alarm)
Definition OSAlarm.c:59
void OSCancelAlarm(OSAlarm *alarm)
Definition OSAlarm.c:151
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
signed long long int s64
Definition types.h:13
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition TColor.h:12
Definition OSAlarm.h:15
Definition OSContext.h:140
Definition OSThread.h:42
Definition GXStruct.h:30
Definition GXStruct.h:14