| 1 | #pragma once |
| 2 | |
| 3 | #include <common/aglRenderBuffer.h> |
| 4 | #include <common/aglTextureData.h> |
| 5 | #include <gfx/seadCamera.h> |
| 6 | |
| 7 | namespace al { |
| 8 | class GraphicsSystemInfo; |
| 9 | class ExecuteDirector; |
| 10 | class EffectSystem; |
| 11 | class SimpleModelEnv; |
| 12 | class DeferredRendering; |
| 13 | class SceneCameraInfo; |
| 14 | class GraphicsQualityInfo; |
| 15 | class ScreenFader; |
| 16 | class Projection; |
| 17 | class GraphicsRenderInfo; |
| 18 | class ViewInfo; |
| 19 | struct DrawSystemInfo; |
| 20 | class RenderVariables; |
| 21 | class ShaderHolder; |
| 22 | |
| 23 | class ViewRenderer { |
| 24 | public: |
| 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 | |
| 43 | private: |
| 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 | |
| 61 | namespace alViewRendererFunction { |
| 62 | void createLinearDepthFromDepthBuffer(agl::DrawContext*, const al::ShaderHolder*, |
| 63 | const agl::TextureData*, const agl::TextureData*); |
| 64 | } |
| 65 | |