OdysseyDecomp/lib/al/Library/Effect/EffectSystem.h
2025-05-25 11:56:05 +02:00

68 lines
1.5 KiB
C++

#pragma once
#include "Library/Effect/EffectSystemInfo.h"
namespace agl {
class DrawContext;
}
namespace sead {
class Heap;
}
namespace al {
class CameraDirector;
class EffectCameraHolder;
class EffectEnvParam;
class EffectLayoutDrawer;
class EffectShaderHolder;
class EffectSystemInfo;
class ExecuteDirector;
class GraphicsSystemInfo;
class EffectSystem {
public:
static EffectSystem* initializeSystem(agl::DrawContext*, sead::Heap*);
EffectSystem();
void initScene();
void startScene(ExecuteDirector*);
void endScene();
void endInit();
void setCameraDirector(CameraDirector*);
void setGraphicsSystemInfo(const GraphicsSystemInfo*);
void set_69(bool val) { _69 = val; }
EffectSystemInfo* getEffectSystemInfo() { return &mEffectSystemInfo; }
const EffectSystemInfo* getEffectSystemInfo() const { return &mEffectSystemInfo; }
private:
sead::Heap* mHeap;
EffectSystemInfo mEffectSystemInfo;
EffectCameraHolder* mEffectCameraHolder;
s32 mExecutorSize;
void* mExecutorList;
s32 mResourcePathSize;
s32 mResourcePathCapacity;
const char** mResourcePaths;
void* filler[3];
bool _68;
bool _69;
bool _6a;
void* filler2[99];
s32 mEffectLayoutDrawerSize;
EffectLayoutDrawer** mEffectLayoutDrawerList;
EffectShaderHolder* mEffectShaderHolder;
void* filler3[4];
agl::DrawContext* mDrawContext;
EffectEnvParam* mEffectEnvParam;
void* filler4;
};
static_assert(sizeof(EffectSystem) == 0x3d8);
} // namespace al