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
38public:
41
42 FrameBuffer* getMethodFrameBuffer(s32 method_type) const override;
43 LogicalFrameBuffer* getMethodLogicalFrameBuffer(s32 method_type) const override;
44
45protected:
46 void initRun_(Heap*) override;
47 void runImpl_() override;
49
50public:
51 f32 calcFps() override
52 {
53 TickSpan sec_span = TickSpan::makeFromSeconds(1);
54 return static_cast<f32>(sec_span.toS64()) / static_cast<f32>(mFrameSpan.toS64());
55 }
56
57 virtual void setCaption(const SafeString&) { }
58
59 void setCurrentDisplaybuffer(void (*currentDisplaybuffer)(u32))
60 {
61 mCurrentDisplaybuffer = currentDisplaybuffer;
62 }
63
64 void set36c(bool b)
65 {
66 _36c = b;
67 }
68
69protected:
70 virtual void mainLoop_();
71 virtual void procFrame_();
72 virtual void procDraw_();
73 virtual void procCalc_();
74 virtual void waitForNextFrame_();
75 virtual void swapBuffer_();
76 virtual void clearFrameBuffers_(s32);
77
78public:
80 Heap* heap, s32 argc = 0, char** argv = nullptr,
81 const Vector2f& tv_virtual_fb_size = Vector2f::zero, const Vector2f& drc_virtual_fb_size = Vector2f(854.0f, 480.0f),
82 Heap* heap_for_display_buffer = nullptr
83 );
84
85protected:
86 enum
87 {
93 };
94
114 bool _36c;
116 u32 _374[4 / sizeof(u32)];
117};
118static_assert(sizeof(GameFrameworkCafe) == 0x378, "sead::GameFrameworkCafe size mismatch");
119
120} // namespace sead
121
122#endif // SEAD_GAME_FRAMEWORK_CAFE_H_
Definition seadFrameBuffer.h:134
Definition seadFrameBuffer.h:90
Definition seadGameFrameworkCafe.h:10
virtual void setCaption(const SafeString &)
Definition seadGameFrameworkCafe.h:57
void setCurrentDisplaybuffer(void(*currentDisplaybuffer)(u32))
Definition seadGameFrameworkCafe.h:59
virtual void clearFrameBuffers_(s32)
GX2DepthBuffer mDepthBufferDRC
Definition seadGameFrameworkCafe.h:108
LogicalFrameBuffer mLogicalFrameBuffer
Definition seadGameFrameworkCafe.h:101
virtual void swapBuffer_()
FrameBuffer * mDefaultFrameBuffer
Definition seadGameFrameworkCafe.h:99
u32 _c0
Definition seadGameFrameworkCafe.h:103
GX2ColorBuffer mColorBufferDRC
Definition seadGameFrameworkCafe.h:106
LogicalFrameBuffer mLogicalFrameBufferDRC
Definition seadGameFrameworkCafe.h:102
DisplayBuffer * mDisplayBuffer
Definition seadGameFrameworkCafe.h:109
void initRun_(Heap *) override
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)
FrameBuffer * mFrameBuffer
Definition seadGameFrameworkCafe.h:111
f32 calcFps() override
Definition seadGameFrameworkCafe.h:51
void(* mCurrentDisplaybuffer)(u32)
Definition seadGameFrameworkCafe.h:113
GX2ColorBuffer mColorBuffer
Definition seadGameFrameworkCafe.h:105
CreateArg mArg
Definition seadGameFrameworkCafe.h:95
u32 _374[4/sizeof(u32)]
Definition seadGameFrameworkCafe.h:116
virtual void procFrame_()
GameFrameworkCafe(const CreateArg &arg)
MethodTreeMgr * createMethodTreeMgr_(Heap *) override
TickSpan mFrameSpan
Definition seadGameFrameworkCafe.h:97
GX2DepthBuffer mDepthBuffer
Definition seadGameFrameworkCafe.h:107
FrameBuffer * getMethodFrameBuffer(s32 method_type) const override
virtual void waitForNextFrame_()
TickTime mLastFrameBegin
Definition seadGameFrameworkCafe.h:98
bool _36c
Definition seadGameFrameworkCafe.h:114
@ cGpuCounter_NumMax
Definition seadGameFrameworkCafe.h:92
@ cGpuCounter_DRCDrawBegin
Definition seadGameFrameworkCafe.h:90
@ cGpuCounter_TVDrawBegin
Definition seadGameFrameworkCafe.h:88
@ cGpuCounter_DRCDrawEnd
Definition seadGameFrameworkCafe.h:91
@ cGpuCounter_TVDrawEnd
Definition seadGameFrameworkCafe.h:89
FrameBuffer * mFrameBufferDRC
Definition seadGameFrameworkCafe.h:112
void runImpl_() override
void * mCommandBuffer
Definition seadGameFrameworkCafe.h:104
void set36c(bool b)
Definition seadGameFrameworkCafe.h:64
static void initialize(const InitializeArg &arg)
FrameBuffer * mDefaultFrameBufferDRC
Definition seadGameFrameworkCafe.h:100
virtual void mainLoop_()
u64 * mGpuCounters
Definition seadGameFrameworkCafe.h:115
DisplayBuffer * mDisplayBufferDRC
Definition seadGameFrameworkCafe.h:110
virtual void procDraw_()
virtual void procCalc_()
LogicalFrameBuffer * getMethodLogicalFrameBuffer(s32 method_type) const override
BitFlag32 _6c
Definition seadGameFrameworkCafe.h:96
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:40
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