New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Mii_Shader.h
Go to the documentation of this file.
1#pragma once
2
3#include <common/aglShaderProgramArchive.h>
4#include <common/aglTextureSampler.h>
5#include <heap/seadHeap.h>
6#include <math/seadMatrix.h>
7
8#include <nn/ffl.h>
9
10class ModelFFL;
12
13namespace Mii {
14
15class Shader
16{
17public:
50 static_assert(cUniform_Num == 28);
51
59 static_assert(cSampler_Num == 3);
60
61public:
62 // Address: 0x024EA2A4
64 // Address: 0x024EA33C
66
67 // Address: 0x024EA39C
68 static void initializeShader(agl::ShaderProgramArchive* archive, sead::Heap* heap);
69
70 // Address: 0x024EB448
71 void initialize(sead::Heap* heap = nullptr);
72
73 void setModel(ModelFFL* model)
74 {
75 mModel = model;
76 }
77
78 // Address: 0x024EB8AC
79 void setCallback() const;
80
81 // Address: 0x024EB8B4
82 void activate() const;
83
84 // Address: 0x024EB8F4
85 void setViewUniform(const sead::Matrix34f& model_mtx, const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx) const;
86 // Address: 0x024EBA4C
87 void setExRegColorUniform(const sead::Color4f* color) const;
88 // Address: 0x024EBB20
89 void setLightmapEnableUniform(bool enable) const;
90 // Address: 0x024EBB98
91 void setFogUniform(RenderObjRenderMgr* render_mgr) const;
92
93 // Address: 0x024EA654
94 static void setCulling(FFLCullMode mode);
95
96private:
97 // Address: 0x024EA4D4
99
100 // Address: 0x024EA9B0
101 void setLightUniform_() const;
102 // Address: 0x024EA6A0
103 void setMaterialUniform_(const FFLDrawParam& draw_param) const;
104 // Address: 0x024EAB90
105 void setRimUniform_() const;
106
107 // Address: 0x024EAC74
108 void draw_(const FFLDrawParam& draw_param);
109 // Address: 0x024EB304
110 static void drawCallback_(void* obj, const FFLDrawParam& draw_param);
111
112 // Address: 0x024EB308
113 void setMatrix_(const Mat44& matrix);
114 // Address: 0x024EB444
115 static void setMatrixCallback_(void* obj, const Mat44& matrix);
116
117private:
126 static_assert(sizeof(LightParam) == 0x40);
127
136 static_assert(sizeof(Material) == 0x38);
137
138 struct RimParam
139 {
140 union
141 {
143 struct // IDEK man
144 {
149 };
150 };
152 };
153 static_assert(sizeof(RimParam) == 0x14);
154
160 static_assert(sizeof(SpecularParam) == 0x14);
161
175};
176static_assert(sizeof(Shader) == 0x5F0);
177
178}
Definition Mii_Shader.h:16
void setLightmapEnableUniform(bool enable) const
void setViewUniform(const sead::Matrix34f &model_mtx, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx) const
GX2Sampler mSampler
Definition Mii_Shader.h:167
const agl::ShaderProgramArchive * mShaderArchive
Definition Mii_Shader.h:162
void draw_(const FFLDrawParam &draw_param)
agl::TextureSampler mEnvSampler_P
Definition Mii_Shader.h:170
static void drawCallback_(void *obj, const FFLDrawParam &draw_param)
void setFogUniform(RenderObjRenderMgr *render_mgr) const
static void setCulling(FFLCullMode mode)
void setLightUniform_() const
void setExRegColorUniform(const sead::Color4f *color) const
GX2FetchShader mFetchShader
Definition Mii_Shader.h:165
const agl::ShaderProgram * mShaderProgram
Definition Mii_Shader.h:163
Material mMaterial[FFL_MODULATE_TYPE_SHAPE_MAX]
Definition Mii_Shader.h:172
void setMatrix_(const Mat44 &matrix)
void initializeParam_()
static void setMatrixCallback_(void *obj, const Mat44 &matrix)
RimParam mRimParam
Definition Mii_Shader.h:173
void initialize(sead::Heap *heap=nullptr)
Uniform
Definition Mii_Shader.h:19
@ cUniform_Const0
Definition Mii_Shader.h:24
@ cUniform_LightDir
Definition Mii_Shader.h:28
@ cUniform_LightEnable
Definition Mii_Shader.h:27
@ cUniform_FogDir
Definition Mii_Shader.h:47
@ cUniform_MaterialSpecularPower
Definition Mii_Shader.h:35
@ cUniform_FogStartEndInv
Definition Mii_Shader.h:46
@ cUniform_ExLightRegColor
Definition Mii_Shader.h:41
@ cUniform_MaterialSpecularMode
Definition Mii_Shader.h:36
@ cUniform_ExDarkRegColor
Definition Mii_Shader.h:42
@ cUniform_LightDiffuse
Definition Mii_Shader.h:30
@ cUniform_RimPower
Definition Mii_Shader.h:38
@ cUniform_Mode
Definition Mii_Shader.h:23
@ cUniform_MaterialSpecular
Definition Mii_Shader.h:34
@ cUniform_MV
Definition Mii_Shader.h:21
@ cUniform_FogStart
Definition Mii_Shader.h:45
@ cUniform_Const1
Definition Mii_Shader.h:25
@ cUniform_MaterialAmbient
Definition Mii_Shader.h:32
@ cUniform_Proj
Definition Mii_Shader.h:20
@ cUniform_SpecularMask
Definition Mii_Shader.h:39
@ cUniform_Const2
Definition Mii_Shader.h:26
@ cUniform_LightmapEnable
Definition Mii_Shader.h:43
@ cUniform_RimColor
Definition Mii_Shader.h:37
@ cUniform_IsFaceMask
Definition Mii_Shader.h:40
@ cUniform_LightSpecular
Definition Mii_Shader.h:31
@ cUniform_LightAmbient
Definition Mii_Shader.h:29
@ cUniform_MaterialDiffuse
Definition Mii_Shader.h:33
@ cUniform_Num
Definition Mii_Shader.h:48
@ cUniform_FogColor
Definition Mii_Shader.h:44
@ cUniform_IT
Definition Mii_Shader.h:22
void setCallback() const
void setMaterialUniform_(const FFLDrawParam &draw_param) const
void setModel(ModelFFL *model)
Definition Mii_Shader.h:73
agl::TextureSampler mEnvSampler_Star
Definition Mii_Shader.h:169
Sampler
Definition Mii_Shader.h:53
@ cSampler_Lightmap01p
Definition Mii_Shader.h:55
@ cSampler_Num
Definition Mii_Shader.h:57
@ cSampler_Lightmap02p
Definition Mii_Shader.h:56
@ cSampler_Texture
Definition Mii_Shader.h:54
LightParam mLightParam
Definition Mii_Shader.h:171
void setRimUniform_() const
SpecularParam mSpecularParam
Definition Mii_Shader.h:174
sead::Buffer< GX2AttribStream > mAttribute
Definition Mii_Shader.h:164
FFLShaderCallback mCallback
Definition Mii_Shader.h:166
void activate() const
static void initializeShader(agl::ShaderProgramArchive *archive, sead::Heap *heap)
ModelFFL * mModel
Definition Mii_Shader.h:168
Definition ModelFFL.h:14
Definition RenderObjRenderMgr.h:23
Definition Mii_CafeResInitializer.h:7
Definition Mii_Shader.h:119
sead::Vector3f dir
Definition Mii_Shader.h:121
FFLColor ambient
Definition Mii_Shader.h:122
bool enable
Definition Mii_Shader.h:120
FFLColor specular
Definition Mii_Shader.h:124
FFLColor diffuse
Definition Mii_Shader.h:123
Definition Mii_Shader.h:129
FFLColor diffuse
Definition Mii_Shader.h:131
s32 specular_mode
Definition Mii_Shader.h:134
f32 specular_power
Definition Mii_Shader.h:133
FFLColor specular
Definition Mii_Shader.h:132
FFLColor ambient
Definition Mii_Shader.h:130
Definition Mii_Shader.h:139
s32 color_r
Definition Mii_Shader.h:145
f32 power
Definition Mii_Shader.h:151
s32 color_b
Definition Mii_Shader.h:147
s32 color_g
Definition Mii_Shader.h:146
FFLColor color
Definition Mii_Shader.h:142
s32 color_a
Definition Mii_Shader.h:148
Definition Mii_Shader.h:156
FFLColor hair_specular
Definition Mii_Shader.h:157
f32 mask
Definition Mii_Shader.h:158