mirror of
https://github.com/zeldaret/botw
synced 2026-05-23 23:05:14 -04:00
18c60323a9
git subrepo clone https://github.com/open-ead/sead lib/sead subrepo: subdir: "lib/sead" merged: "1b66e825d" upstream: origin: "https://github.com/open-ead/sead" branch: "master" commit: "1b66e825d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" git subrepo clone (merge) https://github.com/open-ead/nnheaders lib/NintendoSDK subrepo: subdir: "lib/NintendoSDK" merged: "9ee21399f" upstream: origin: "https://github.com/open-ead/nnheaders" branch: "master" commit: "9ee21399f" git-subrepo: version: "0.4.3" origin: "ssh://git@github.com/ingydotnet/git-subrepo" commit: "2f68596" git subrepo clone https://github.com/open-ead/agl lib/agl subrepo: subdir: "lib/agl" merged: "7c063271b" upstream: origin: "https://github.com/open-ead/agl" branch: "master" commit: "7c063271b" git-subrepo: version: "0.4.3" origin: "ssh://git@github.com/ingydotnet/git-subrepo" commit: "2f68596" git subrepo clone https://github.com/open-ead/EventFlow lib/EventFlow subrepo: subdir: "lib/EventFlow" merged: "c35d21b34" upstream: origin: "https://github.com/open-ead/EventFlow" branch: "master" commit: "c35d21b34" git-subrepo: version: "0.4.3" origin: "ssh://git@github.com/ingydotnet/git-subrepo" commit: "2f68596"
92 lines
2.0 KiB
C++
92 lines
2.0 KiB
C++
#ifndef SEAD_FRAMEWORK_H_
|
|
#define SEAD_FRAMEWORK_H_
|
|
|
|
//#include <framework/seadMethodTreeMgr.h>
|
|
#include <framework/seadTaskBase.h>
|
|
//#include <framework/seadTaskMgr.h>
|
|
//#include <gfx/seadFrameBuffer.h>
|
|
//#include <heap/seadArena.h>
|
|
//#include <heap/seadHeap.h>
|
|
#include <hostio/seadHostIOMgr.h>
|
|
#include <prim/seadDelegateEventSlot.h>
|
|
#include <prim/seadRuntimeTypeInfo.h>
|
|
#include <time/seadTickSpan.h>
|
|
|
|
namespace sead
|
|
{
|
|
class Arena;
|
|
|
|
class FrameBuffer;
|
|
class Heap;
|
|
class LogicalFrameBuffer;
|
|
class MethodTreeMgr;
|
|
class TaskMgr;
|
|
|
|
class Framework
|
|
{
|
|
SEAD_RTTI_BASE(Framework)
|
|
|
|
public:
|
|
struct CreateSystemTaskArg
|
|
{
|
|
inline CreateSystemTaskArg();
|
|
|
|
HostIOMgr::Parameter* hostio_parameter;
|
|
TickSpan infloop_detection_span;
|
|
};
|
|
|
|
struct InitializeArg
|
|
{
|
|
InitializeArg();
|
|
|
|
u32 heap_size;
|
|
Arena* arena;
|
|
};
|
|
|
|
struct RunArg
|
|
{
|
|
RunArg();
|
|
|
|
u32 prepare_stack_size;
|
|
s32 prepare_priority;
|
|
};
|
|
|
|
enum ProcessPriority
|
|
{
|
|
cProcessPriority_Idle = 0,
|
|
cProcessPriority_Normal = 1,
|
|
cProcessPriority_High = 2,
|
|
cProcessPriority_RealTime = 3
|
|
};
|
|
|
|
public:
|
|
Framework();
|
|
virtual ~Framework();
|
|
|
|
virtual void run(Heap*, const TaskBase::CreateArg&, const RunArg&);
|
|
virtual void createSystemTasks(TaskBase*, const CreateSystemTaskArg&);
|
|
virtual FrameBuffer* getMethodFrameBuffer(s32) const = 0;
|
|
virtual LogicalFrameBuffer* getMethodLogicalFrameBuffer(s32) const;
|
|
virtual bool setProcessPriority(ProcessPriority);
|
|
virtual void reserveReset(void*);
|
|
virtual void initRun_(Heap*);
|
|
virtual void runImpl_();
|
|
virtual MethodTreeMgr* createMethodTreeMgr_(Heap*) = 0;
|
|
virtual void procReset_();
|
|
|
|
MethodTreeMgr* getMethodTreeMgr() const { return mMethodTreeMgr; }
|
|
|
|
typedef DelegateEvent<void*> ResetEvent;
|
|
|
|
bool mReserveReset;
|
|
void* mResetParameter;
|
|
ResetEvent mResetEvent;
|
|
TaskMgr* mTaskMgr;
|
|
MethodTreeMgr* mMethodTreeMgr;
|
|
Heap* mMethodTreeMgrHeap;
|
|
};
|
|
|
|
} // namespace sead
|
|
|
|
#endif // SEAD_FRAMEWORK_H_
|