1#pragma once
2
3#include <math/seadVector.h>
4
5#include "Library/Nerve/NerveExecutor.h"
6
7namespace agl {
8class DrawContext;
9class RenderTargetDepth;
10class TextureData;
11} // namespace agl
12
13namespace al {
14class ExecuteDirector;
15class GraphicsSystemInfo;
16class SceneCameraInfo;
17
18class SubCameraRenderer : public NerveExecutor {
19public:
20 SubCameraRenderer(agl::DrawContext*, GraphicsSystemInfo*, ExecuteDirector*, SceneCameraInfo*);
21 ~SubCameraRenderer() override;
22
23 void endInit();
24 void draw(agl::DrawContext*, const agl::TextureData*, const agl::TextureData*,
25 const agl::TextureData*, const agl::TextureData*, const agl::RenderTargetDepth*,
26 bool);
27 void tryCapture();
28 void update();
29
30 void exeCapture();
31 void exeCaptureFinish();
32 bool isCaptureFinish() const;
33 void* findCameraSubAreaScreenInfo(const sead::Vector3f&) const; // TODO unknown return type
34 void calcOnScreenPos(sead::Vector3f*, const sead::Vector3f&) const;
35
36private:
37 void* _padding[0x4a];
38};
39
40static_assert(sizeof(SubCameraRenderer) == 0x260);
41
42} // namespace al
43