sead
Loading...
Searching...
No Matches
seadGameFrameworkCafe.h
Go to the documentation of this file.
1#ifndef SEAD_GAME_FRAMEWORK_CAFE_H_
2#define SEAD_GAME_FRAMEWORK_CAFE_H_
3
4#include <gfx/seadFrameBuffer.h>
5#include <framework/seadGameFramework.h>
6
7namespace sead {
8
10{
12
13public:
14 static void initialize(const InitializeArg& arg);
15
16public:
36 static_assert(sizeof(CreateArg) == 0x24, "sead::GameFrameworkCafe::CreateArg size mismatch");
37
44 static_assert(sizeof(DrawOrder) == 4, "sead::GameFrameworkCafe::DrawOrder size mismatch");
45 static_assert(cDrawOrder_Num == 2);
46
47 typedef void (*DeferredCopyCallback)(s32 stage); // 0 = begin, 1 = end
48
49public:
50 GameFrameworkCafe(const CreateArg& arg);
51 virtual ~GameFrameworkCafe();
52
53 FrameBuffer* getMethodFrameBuffer(s32 method_type) const override;
54 const LogicalFrameBuffer* getMethodLogicalFrameBuffer(s32 method_type) const override;
55
57 Heap* heap, s32 argc = 0, char** argv = nullptr,
58 const Vector2f& tv_virtual_fb_size = Vector2f::zero, const Vector2f& drc_virtual_fb_size = Vector2f(854.0f, 480.0f),
59 Heap* heap_for_display_buffer = nullptr
60 );
61
62 void setVBlankWaitInterval(u32 wait_vblank);
63
64protected:
65 void initRun_(Heap*) override;
66 void runImpl_() override;
68
69public:
70 f32 calcFps() override
71 {
72 TickSpan sec_span = TickSpan::makeFromSeconds(1);
73 return static_cast<f32>(sec_span.toS64()) / static_cast<f32>(mFrameSpan.toS64());
74 }
75
76 virtual void setCaption(const SafeString& caption)
77 {
78 // SEAD_PRINT("%s\n", caption.cstr());
79 }
80
85
86 void setCopyPostDrawAll(bool b)
87 {
89 }
90
91protected:
92 virtual void mainLoop_();
93 virtual void procFrame_();
94 virtual void procDraw_();
95 virtual void procCalc_();
96 virtual void waitForNextFrame_();
97 virtual void swapBuffer_();
98 virtual void clearFrameBuffers_(s32 method_type);
99
100 void gpuMesureEnd_();
101
102 void drawTV_();
103 void copyToTV_();
104
105 void drawDRC_();
106 void copyToDRC_();
107
108protected:
109 enum
110 {
116 };
118
140 //u32 _374[4 / sizeof(u32)]; // alignment?
141};
142static_assert(sizeof(GameFrameworkCafe) == 0x378, "sead::GameFrameworkCafe size mismatch");
143
144} // namespace sead
145
146#endif // SEAD_GAME_FRAMEWORK_CAFE_H_
Definition seadFrameBuffer.h:134
Definition seadFrameBuffer.h:90
Definition seadGameFrameworkCafe.h:10
virtual void procDraw_()
Definition seadGameFrameworkCafe.cpp:241
void drawTV_()
Definition seadGameFrameworkCafe.cpp:287
GX2DepthBuffer mDepthBufferDRC
Definition seadGameFrameworkCafe.h:132
LogicalFrameBuffer mLogicalFrameBuffer
Definition seadGameFrameworkCafe.h:125
void setCopyPostDrawAll(bool b)
Definition seadGameFrameworkCafe.h:86
bool mCopyPostDrawAll
Definition seadGameFrameworkCafe.h:138
FrameBuffer * mDefaultFrameBuffer
Definition seadGameFrameworkCafe.h:123
void copyToDRC_()
Definition seadGameFrameworkCafe.cpp:397
virtual ~GameFrameworkCafe()
Definition seadGameFrameworkCafe.cpp:40
GX2ColorBuffer mColorBufferDRC
Definition seadGameFrameworkCafe.h:130
BitFlag32 mFlag
Definition seadGameFrameworkCafe.h:120
void copyToTV_()
Definition seadGameFrameworkCafe.cpp:381
LogicalFrameBuffer mLogicalFrameBufferDRC
Definition seadGameFrameworkCafe.h:126
DisplayBuffer * mDisplayBuffer
Definition seadGameFrameworkCafe.h:133
void initRun_(Heap *) override
Definition seadGameFrameworkCafe.cpp:142
virtual void mainLoop_()
Definition seadGameFrameworkCafe.cpp:160
void initializeGraphicsSystem(Heap *heap, s32 argc=0, char **argv=nullptr, const Vector2f &tv_virtual_fb_size=Vector2f::zero, const Vector2f &drc_virtual_fb_size=Vector2f(854.0f, 480.0f), Heap *heap_for_display_buffer=nullptr)
Definition seadGameFrameworkCafe.cpp:44
FrameBuffer * mFrameBuffer
Definition seadGameFrameworkCafe.h:135
virtual void swapBuffer_()
Definition seadGameFrameworkCafe.cpp:346
f32 calcFps() override
Definition seadGameFrameworkCafe.h:70
virtual void procFrame_()
Definition seadGameFrameworkCafe.cpp:192
void gpuMesureEnd_()
Definition seadGameFrameworkCafe.cpp:166
virtual void waitForNextFrame_()
Definition seadGameFrameworkCafe.cpp:331
void setVBlankWaitInterval(u32 wait_vblank)
Definition seadGameFrameworkCafe.cpp:424
GX2ColorBuffer mColorBuffer
Definition seadGameFrameworkCafe.h:129
CreateArg mArg
Definition seadGameFrameworkCafe.h:119
void setDeferredCopyCallback(DeferredCopyCallback callback)
Definition seadGameFrameworkCafe.h:81
DrawOrder
Definition seadGameFrameworkCafe.h:39
@ cDrawOrder_TV_DRC
Definition seadGameFrameworkCafe.h:40
@ cDrawOrder_DRC_TV
Definition seadGameFrameworkCafe.h:41
@ cDrawOrder_Num
Definition seadGameFrameworkCafe.h:42
DeferredCopyCallback mDeferredCopyCallback
Definition seadGameFrameworkCafe.h:137
virtual void procCalc_()
Definition seadGameFrameworkCafe.cpp:319
virtual void setCaption(const SafeString &caption)
Definition seadGameFrameworkCafe.h:76
GameFrameworkCafe(const CreateArg &arg)
Definition seadGameFrameworkCafe.cpp:26
MethodTreeMgr * createMethodTreeMgr_(Heap *) override
Definition seadGameFrameworkCafe.cpp:153
DrawOrder mDrawOrder
Definition seadGameFrameworkCafe.h:127
TickSpan mFrameSpan
Definition seadGameFrameworkCafe.h:121
virtual void clearFrameBuffers_(s32 method_type)
Definition seadGameFrameworkCafe.cpp:413
GX2DepthBuffer mDepthBuffer
Definition seadGameFrameworkCafe.h:131
const LogicalFrameBuffer * getMethodLogicalFrameBuffer(s32 method_type) const override
Definition seadGameFrameworkCafe.cpp:465
FrameBuffer * getMethodFrameBuffer(s32 method_type) const override
Definition seadGameFrameworkCafe.cpp:430
TickTime mLastFrameBegin
Definition seadGameFrameworkCafe.h:122
@ cGpuCounter_NumMax
Definition seadGameFrameworkCafe.h:115
@ cGpuCounter_DRCDrawBegin
Definition seadGameFrameworkCafe.h:113
@ cGpuCounter_TVDrawBegin
Definition seadGameFrameworkCafe.h:111
@ cGpuCounter_DRCDrawEnd
Definition seadGameFrameworkCafe.h:114
@ cGpuCounter_TVDrawEnd
Definition seadGameFrameworkCafe.h:112
FrameBuffer * mFrameBufferDRC
Definition seadGameFrameworkCafe.h:136
void runImpl_() override
Definition seadGameFrameworkCafe.cpp:146
void drawDRC_()
Definition seadGameFrameworkCafe.cpp:303
void * mCommandBuffer
Definition seadGameFrameworkCafe.h:128
void(* DeferredCopyCallback)(s32 stage)
Definition seadGameFrameworkCafe.h:47
FrameBuffer * mDefaultFrameBufferDRC
Definition seadGameFrameworkCafe.h:124
u64 * mGpuCounters
Definition seadGameFrameworkCafe.h:139
static void initialize(const InitializeArg &arg)
Definition seadGameFrameworkCafe.cpp:21
DisplayBuffer * mDisplayBufferDRC
Definition seadGameFrameworkCafe.h:134
static const size_t cGpuCounterSize
Definition seadGameFrameworkCafe.h:117
Definition seadGameFramework.h:12
Definition seadHeap.h:23
Definition seadFrameBuffer.h:12
Definition seadMethodTreeMgr.h:13
Definition seadTickSpan.h:12
Definition seadAssert.h:44
Vector2< f32 > Vector2f
Definition seadVector.h:238
BitFlag< u32 > BitFlag32
Definition seadBitFlag.h:125
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadColor.h:9
static const Color4f cGray
Definition seadColor.h:63
Definition seadFramework.h:43
Definition seadGameFrameworkCafe.h:18
u32 width
Definition seadGameFrameworkCafe.h:21
u32 cmd_buf_size
Definition seadGameFrameworkCafe.h:23
u32 height
Definition seadGameFrameworkCafe.h:22
bool create_default_framebuffer
Definition seadGameFrameworkCafe.h:24
Color4f clear_color
Definition seadGameFrameworkCafe.h:20
u32 wait_vblank
Definition seadGameFrameworkCafe.h:19
CreateArg()
Definition seadGameFrameworkCafe.h:26