OdysseyDecomp/lib/al/Library/Execute/ExecutorListLayoutDraw.h

44 lines
1 KiB
C++

#pragma once
#include <basis/seadTypes.h>
#include "Library/Execute/ExecutorListBase.h"
namespace agl {
class DrawContext;
}
namespace al {
struct ExecuteSystemInitInfo;
class LayoutActor;
class ExecutorListLayoutDrawBase : public ExecutorListBase {
public:
ExecutorListLayoutDrawBase(const char* name, s32 size, const ExecuteSystemInitInfo& initInfo);
bool isActive() const override;
void executeList() const override;
virtual void startDraw() const = 0;
void registerLayout(LayoutActor* layout);
agl::DrawContext* getContext() const { return mContext; }
private:
s32 mCapacity = 0;
s32 mSize = 0;
LayoutActor** mList = nullptr;
agl::DrawContext* mContext = nullptr;
};
static_assert(sizeof(ExecutorListLayoutDrawBase) == 0x28);
class ExecutorListLayoutDrawNormal : public ExecutorListLayoutDrawBase {
public:
ExecutorListLayoutDrawNormal(const char* name, s32 size, const ExecuteSystemInitInfo& initInfo);
void startDraw() const override;
};
} // namespace al