1#pragma once
2
3#include <common/aglRenderBuffer.h>
4#include <common/aglTextureData.h>
5#include <gfx/seadCamera.h>
6
7namespace al {
8class GraphicsSystemInfo;
9class ExecuteDirector;
10class EffectSystem;
11class SimpleModelEnv;
12class DeferredRendering;
13class SceneCameraInfo;
14class GraphicsQualityInfo;
15class ScreenFader;
16class Projection;
17class GraphicsRenderInfo;
18class ViewInfo;
19struct DrawSystemInfo;
20class RenderVariables;
21class ShaderHolder;
22
23class ViewRenderer {
24public:
25 ViewRenderer(GraphicsSystemInfo*, ExecuteDirector*, EffectSystem*, SceneCameraInfo*);
26 ~ViewRenderer();
27
28 void clearRequest();
29 void calcView(s32, const sead::Camera*, const Projection*);
30 void preDrawGraphics();
31 void drawView(s32, DrawSystemInfo*, const Projection&, const sead::Camera&,
32 const agl::RenderBuffer*, const sead::Viewport&, bool, bool, bool) const;
33 void drawView(const ViewInfo&, DrawSystemInfo*, const Projection&, const sead::Camera&,
34 const agl::RenderBuffer*, const sead::Viewport&, bool, bool, bool) const;
35 void drawSystem(const GraphicsRenderInfo&) const;
36 void drawMirror(agl::DrawContext*, s32, RenderVariables*) const;
37 void drawHdr(const GraphicsRenderInfo&, const RenderVariables&, bool, bool) const;
38 void captureIndirectTexture(agl::DrawContext*, const agl::TextureData*,
39 const agl::TextureData*) const;
40 void startForwardPlayerScreenFader(s32, s32, f32);
41 void endForwardPlayerScreenFader(s32);
42
43private:
44 GraphicsSystemInfo* mGraphicsSystemInfo;
45 ExecuteDirector* mExecuteDirector;
46 EffectSystem* mEffectSystem;
47 SimpleModelEnv* mSimpleModelEnv;
48 DeferredRendering* mDeferredRendering;
49 SceneCameraInfo* mSceneCameraInfo;
50 GraphicsQualityInfo* mGraphicsQualityInfo;
51 ScreenFader* mScreenFader;
52 void* _40;
53 void* _48;
54 bool _50;
55 bool mIsWorldMap;
56 const agl::TextureData* mEffectTextureColor;
57 void* _60;
58};
59} // namespace al
60
61namespace alViewRendererFunction {
62void createLinearDepthFromDepthBuffer(agl::DrawContext*, const al::ShaderHolder*,
63 const agl::TextureData*, const agl::TextureData*);
64}
65