New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Renderer.h
Go to the documentation of this file.
1#pragma once
2
3#include <graphics/RenderObjLayer.h>
4
5#include <gfx/seadCamera.h>
6#include <gfx/seadProjection.h>
7#include <layer/aglLayer.h>
8#include <layer/aglRenderer.h>
9#include <math/seadBoundBox.h>
10
11class Angle;
12class AnimModel;
13class Model;
14class ModelFFL;
15enum UnitID : int;
16
18{
19 // createInstance() Address: 0x024FA650
20 // deleteInstance() Address: Deleted
21 // sInstance Address: 0x101D2D88
22 // SingletonDisposer_::~SingletonDisposer_() Address: 0x024FAE28
23 // SingletonDisposer_::sStaticDisposer Address: 0x101D2D8C
24 // SingletonDisposer_::vtbl Address: 0x100BDA98
26
27public:
28 static const s32 cDefaultRenderPass = -2;
29
31 {
32 cRenderPassType_Course = 0, ///< AreaTask
33 cRenderPassType_CourseSelect, ///< CourseSelectTask, DarkCloudDemoScene, GameSetupScene, MultiPlayCourseSelectScene, ResultScene
34 cRenderPassType_DemoScene, ///< DemoTestScene
35 cRenderPassType_Misc ///< CourseTask, ChallengeResultScene, WithMiiPackSelectScene
36 };
37
38public:
39 template <RenderPassType render_pass_type>
41 {
42 public:
43 LayerSetter(s32 layer_id)
44 {
45 Renderer::instance()->setLayer(agl::lyr::Renderer::instance()->getLayer<RenderObjLayerBase>(layer_id), render_pass_type);
46 }
47
48 LayerSetter(RenderObjLayerBase* layer)
49 {
50 Renderer::instance()->setLayer(layer, render_pass_type);
51 }
52
54 {
55 Renderer::instance()->resetLayer();
56 }
57 };
58
59 template <s32 temp_layer_id, s32 post_layer_id, RenderPassType render_pass_type>
61 {
62 public:
64 {
65 setLayer_(temp_layer_id);
66 }
67
69 {
70 setLayer_(post_layer_id);
71 }
72
73 private:
74 void setLayer_(s32 layer_id)
75 {
76 Renderer::instance()->resetLayer();
77 Renderer::instance()->setLayer(agl::lyr::Renderer::instance()->getLayer(layer_id), render_pass_type);
78 }
79 };
80
81public:
82 // Address: 0x024FA5A0
84 // Address: 0x024FA6D0
86
87 // Address: 0x024FA748
88 void setViewBoundBox(const sead::BoundBox2f& box);
89
90 // Address: 0x024FA76C
92
93 // Address: 0x024FAA50
94 void setLayer(agl::lyr::Layer* layer, RenderPassType render_pass_type);
95 // Address: 0x024FAB4C
96 void resetLayer();
97
98 // Address: 0x024FAB58
99 void drawModel(Model* model);
100 // Address: 0x024FAC98
101 void drawModel(const AnimModel* model);
102 // Address: 0x024FACA0
103 void drawModel(ModelFFL* model);
104
105 // Address: 0x024FAD28
106 void drawActorBgUnit(UnitID unit, const sead::Vector3f& pos, Angle angle, const sead::Vector3f& scale);
107 // Address: 0x024FADD8
108 void drawActorBgUnitLayer0(UnitID unit, const sead::Vector3f& pos, Angle angle, const sead::Vector3f& scale);
109
110private:
119};
120static_assert(sizeof(Renderer) == 0x234);
UnitID
Definition UnitID.h:6
Definition Angle.h:7
Definition AnimModel.h:19
Definition ModelFFL.h:14
Definition Model.h:15
Definition Renderer.h:41
~LayerSetter()
Definition Renderer.h:53
LayerSetter(s32 layer_id)
Definition Renderer.h:43
LayerSetter(RenderObjLayerBase *layer)
Definition Renderer.h:48
Definition Renderer.h:61
LayerSwitcher()
Definition Renderer.h:63
~LayerSwitcher()
Definition Renderer.h:68
void setLayer_(s32 layer_id)
Definition Renderer.h:74
Definition Renderer.h:18
void calcForAreaTask()
void drawModel(ModelFFL *model)
s32 mDefaultOpaRenderPass
Definition Renderer.h:115
RenderPassType
Definition Renderer.h:31
@ cRenderPassType_Misc
CourseTask, ChallengeResultScene, WithMiiPackSelectScene.
Definition Renderer.h:35
@ cRenderPassType_DemoScene
DemoTestScene.
Definition Renderer.h:34
@ cRenderPassType_Course
AreaTask.
Definition Renderer.h:32
@ cRenderPassType_CourseSelect
CourseSelectTask, DarkCloudDemoScene, GameSetupScene, MultiPlayCourseSelectScene, ResultScene.
Definition Renderer.h:33
sead::OrthoCamera mCamera3D
Definition Renderer.h:113
void drawModel(Model *model)
sead::OrthoProjection mProjection3D
Definition Renderer.h:112
RenderObjLayerBase * mLayer
Definition Renderer.h:114
void drawActorBgUnit(UnitID unit, const sead::Vector3f &pos, Angle angle, const sead::Vector3f &scale)
sead::OrthoCamera mCameraFinalKoopa
Definition Renderer.h:118
void drawModel(const AnimModel *model)
void setViewBoundBox(const sead::BoundBox2f &box)
sead::BoundBox2f mViewBoundBox
Definition Renderer.h:111
void resetLayer()
s32 mDefaultXluRenderPass
Definition Renderer.h:116
void setLayer(agl::lyr::Layer *layer, RenderPassType render_pass_type)
sead::OrthoProjection mProjectionFinalKoopa
Definition Renderer.h:117
void drawActorBgUnitLayer0(UnitID unit, const sead::Vector3f &pos, Angle angle, const sead::Vector3f &scale)