1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace nn::g3d {
6class ModelObj;
7}
8
9namespace al {
10class GpuMemAllocator;
11class ModelShaderHolder;
12class Resource;
13class ActorDitherAnimator;
14class GraphicsQualityInfo;
15class ModelOcclusionQuery;
16
17class ModelCtrl {
18public:
19 ModelCtrl();
20 ~ModelCtrl();
21
22 void initResource(Resource*, Resource*);
23 void show();
24 void hide();
25 void recreateDisplayList();
26
27 nn::g3d::ModelObj* getModelObj() const { return mModelObj; }
28
29 ActorDitherAnimator* getActorDitherAnimator() const { return mActorDitherAnimator; }
30
31 void setCalcViewCore(s32 core) { mCalcViewCore = core; }
32
33 void setGraphicsQualityInfo(GraphicsQualityInfo* info) { mGraphicsQualityInfo = info; }
34
35 void setModelOcclusionQuery(ModelOcclusionQuery* query) { mModelOcclusionQuery = query; }
36
37private:
38 nn::g3d::ModelObj* mModelObj;
39 s32 _8;
40 GpuMemAllocator* mGpuMemAllocator;
41 ModelShaderHolder* mShaderHolder;
42 s32 mBlockBufferSize;
43 unsigned char padding1[332];
44 GraphicsQualityInfo* mGraphicsQualityInfo;
45 unsigned char padding2[514];
46 ActorDitherAnimator* mActorDitherAnimator;
47 unsigned char padding3[36];
48 s32 mCalcViewCore;
49 s32 pad_3b0;
50 unsigned char padding4[124];
51 ModelOcclusionQuery* mModelOcclusionQuery;
52 unsigned char padding5[16];
53};
54
55static_assert(sizeof(ModelCtrl) == 0x448);
56} // namespace al
57