1#pragma once
2
3#include <common/aglDrawContext.h>
4#include <common/aglRenderBuffer.h>
5#include <gfx/seadCamera.h>
6#include <gfx/seadViewport.h>
7
8#include "Library/Draw/IUsePartsGraphics.h"
9#include "Library/HostIO/HioNode.h"
10
11namespace agl::pfx {
12class FilterAA;
13}
14
15namespace al {
16class GraphicsSystemInfo;
17class ExecuteDirector;
18class EffectSystem;
19class Projection;
20class SimpleModelEnv;
21
22class ChromakeyDrawer : public IUsePartsGraphics, public HioNode {
23public:
24 ChromakeyDrawer(GraphicsSystemInfo*, const ExecuteDirector*, const EffectSystem*);
25
26 void finalize() override;
27 void drawChromakey(agl::DrawContext*, const Projection&, const sead::Camera&,
28 const agl::RenderBuffer*, const sead::Viewport&, const char*, const char*,
29 const char*) const;
30 void update(const GraphicsUpdateInfo&) override;
31 void calcGpu(const GraphicsCalcGpuInfo&) override;
32 const char* getName() const override;
33
34 void setPhysicalArea(sead::Vector2f area) { mPhysicalArea = area; }
35
36private:
37 GraphicsSystemInfo* mGraphicsSystemInfo;
38 agl::pfx::FilterAA* mFilterAA;
39 const ExecuteDirector* mExecuteDirector;
40 const EffectSystem* mEffectSystem;
41 sead::Vector2f mPhysicalArea;
42 bool _30;
43 SimpleModelEnv* mSimpleModelEnv;
44};
45} // namespace al
46