3#include <common/aglRenderBuffer.h>
4#include <common/aglRenderTarget.h>
5#include <common/aglTextureSampler.h>
6#include <common/aglUniformBlock.h>
7#include <environment/aglEnvObjSet.h>
8#include <gfx/seadGraphicsContextMRT.h>
9#include <basis/seadAssert.h>
91 static_assert(
sizeof(
Context) == 0x848);
98 static_assert(
sizeof(
ViewInfo) == 0x18EC);
117 static_assert(
sizeof(
LightObj) == 0x58);
130 static_assert(
sizeof(
EnvObjEx) == 0xB8);
147 static_assert(
sizeof(
DrawArg) == 0x14);
191 if (mLightObj[light_index].mCalcType == calc_type)
195 mLightObj[light_index].mCalcType = calc_type;
200 if (mLightObj[light_index].mPow == pow)
204 mLightObj[light_index].mPow = pow;
209 if (mLightObj[light_index].mPowMipMax == pow_mip_max)
213 mLightObj[light_index].mPowMipMax = pow_mip_max;
218 if (mLightObj[light_index].mLightColorMinMax[0] == min && mLightObj[light_index].mLightColorMinMax[1] == max)
222 mLightObj[light_index].mLightColorMinMax[0] = min;
223 mLightObj[light_index].mLightColorMinMax[1] = max;
228 if (mLightObj[light_index].mDirection == direction)
232 mLightObj[light_index].mDirection = direction;
237 if (mLightObj[light_index].mLUTType == lut_type)
241 mLightObj[light_index].mLUTType = lut_type;
247 if (mpParent ==
nullptr)
248 return MappingType(*mMappingType);
255 if (mpParent ==
nullptr)
256 return *mLightingHint;
263 *mLightingHint = value;
269 return mChild.size();
274 SEAD_ASSERT(0 == array_index || array_index <= getChildNum());
275 return array_index == 0 ?
this : mChild[array_index - 1];
280 SEAD_ASSERT(0 == array_index || array_index <= getChildNum());
281 return array_index == 0 ?
this : mChild[array_index - 1];
317static_assert(
sizeof(
LightMap) == 0x8AC,
"agl::lght::LightMap size mismatch");
Definition aglRenderBuffer.h:15
Definition aglRenderTarget.h:66
Definition aglTextureData.h:11
Definition aglTextureSampler.h:12
Definition aglEnvObjBuffer.h:13
Definition aglEnvObjBuffer.h:10
Definition aglEnvObjSet.h:14
Definition aglEnvObj.h:20
Definition aglEnvObj.h:17
Definition aglLightMapMgr.h:18
Definition aglLightMap.h:101
sead::Color4f mLightColorMinMaxWithEffect[2]
Definition aglLightMap.h:110
sead::BitFlag8 mFlag
Definition aglLightMap.h:108
s8 mLUTType
Definition aglLightMap.h:107
f32 mPowMipMax
Definition aglLightMap.h:113
sead::Color4f mLightColorMinMax[2]
Definition aglLightMap.h:109
u8 mCalcType
Definition aglLightMap.h:106
sead::Vector3f mDirection
Definition aglLightMap.h:111
LightObj()
Definition aglLightMap.cpp:861
f32 mPow
Definition aglLightMap.h:112
Definition aglLightMap.h:16
void initialize_(const LightMapMgr *p_mgr, const env::EnvObjBuffer::AllocateArg &alloc_arg, s32 view_max, sead::Heap *heap)
Definition aglLightMap.cpp:39
virtual bool preWrite_() const
Definition aglLightMap.cpp:739
ArrayNode mArrayNode
Definition aglLightMap.h:302
static const s32 cLightObjMax
Definition aglLightMap.h:20
static const s32 cLightMapMax
Definition aglLightMap.h:19
utl::Parameter< f32 > mRimAngle
Definition aglLightMap.h:309
sead::Buffer< UniformBlock > mMipUniformBlock
Definition aglLightMap.h:300
LightViewMemberIndex
Definition aglLightMap.h:70
@ cLightViewMemberIndex_RimColor
Definition aglLightMap.h:71
@ cLightViewMemberNum
Definition aglLightMap.h:73
@ cLightViewMemberIndex_LightDir
Definition aglLightMap.h:72
virtual bool preRead_()
Definition aglLightMap.cpp:703
utl::Parameter< f32 > mRimWidth
Definition aglLightMap.h:307
LightMemberIndex
Definition aglLightMap.h:61
@ cLightMemberIndex_RimPow
Definition aglLightMap.h:62
@ cLightMemberIndex_RimWidth
Definition aglLightMap.h:63
@ cLightMemberIndex_ParamLight
Definition aglLightMap.h:64
@ cLightMemberNum
Definition aglLightMap.h:65
s32 getLightingHint() const
Definition aglLightMap.h:253
virtual void postRead_()
Definition aglLightMap.cpp:727
TextureSampler & getTextureSampler()
Definition aglLightMap.h:186
void setDirection(s32 light_index, const sead::Vector3f &direction)
Definition aglLightMap.h:226
static const s32 cLightingHintMax
Definition aglLightMap.h:23
s8 mCopyIndex
Definition aglLightMap.h:294
sead::Color4f mLightColor
Definition aglLightMap.h:297
s8 mChildIndex
Definition aglLightMap.h:291
void setLUTType(s32 light_index, s32 lut_type)
Definition aglLightMap.h:235
virtual ~LightMap()
Definition aglLightMap.cpp:32
utl::Parameter< f32 > mRimEffect
Definition aglLightMap.h:306
s8 mParentIndex
Definition aglLightMap.h:293
sead::Buffer< ViewInfo > mViewInfo
Definition aglLightMap.h:287
utl::Parameter< bool > mRimEnable
Definition aglLightMap.h:305
static const s32 cMipMax
Definition aglLightMap.h:21
void updateViewGPU_(s32 view_index, const sead::Matrix34f &view_mtx, bool invalidate_gpu) const
Definition aglLightMap.cpp:385
sead::UnsafeArray< sead::UnsafeArray< sead::GraphicsContextMRT, cBoolMax >, cMappingType_Num > GraphicsContext
Definition aglLightMap.h:138
utl::Parameter< sead::FixedSafeString< 32 > > mCopyMap
Definition aglLightMap.h:313
void setCalcType(s32 light_index, s32 calc_type)
Definition aglLightMap.h:189
sead::BitFlag8 mFlag
Definition aglLightMap.h:290
TextureData mTextureData
Definition aglLightMap.h:289
s32 applyEnvObjData(const env::EnvObj *p_obj, const EnvObjEx *p_ex, s32 light_index)
Definition aglLightMap.cpp:780
UniformBlock mUniformBlock
Definition aglLightMap.h:299
ShaderMode draw_(s32 view_index, const DrawArg &arg, ShaderMode mode) const
Definition aglLightMap.cpp:468
void update_()
Definition aglLightMap.cpp:142
sead::Buffer< EnvObjEx > mEnvObjEx
Definition aglLightMap.h:298
sead::Vector3f mDirection
Definition aglLightMap.h:296
LightMap * get(s32 array_index)
Definition aglLightMap.h:272
void updateGPU_(bool invalidate_gpu) const
Definition aglLightMap.cpp:251
void setColorMinMax(s32 light_index, const sead::Color4f &min, const sead::Color4f &max)
Definition aglLightMap.h:216
utl::Parameter< bool > mHdrEnable
Definition aglLightMap.h:304
const LightMapMgr * mpLightMapMgr
Definition aglLightMap.h:285
s32 getChildNum() const
Definition aglLightMap.h:267
virtual void callbackNotAppliable_(utl::IParameterObj *p_param_obj, utl::ResParameter res_param)
Definition aglLightMap.cpp:756
void setLightingHint(s32 value)
Definition aglLightMap.h:261
static const s32 cBoolMax
Definition aglLightMap.h:22
u8 mLightObjNum
Definition aglLightMap.h:292
LightMipMemberIndex
Definition aglLightMap.h:78
@ cLightMipMemberIndex_SpecPow
Definition aglLightMap.h:79
@ cLightMipMemberIndex_ParamLightMip
Definition aglLightMap.h:80
@ cLightMipMemberNum
Definition aglLightMap.h:81
utl::Parameter< s32 > mMappingType
Definition aglLightMap.h:311
env::EnvObj::Index mRimLightRef
Definition aglLightMap.h:310
void setPowMipMax(s32 light_index, f32 pow_mip_max)
Definition aglLightMap.h:207
utl::Parameter< s32 > mLightingHint
Definition aglLightMap.h:303
MappingType getMappingType() const
Definition aglLightMap.h:245
utl::Parameter< sead::FixedSafeString< 32 > > mParentMap
Definition aglLightMap.h:312
LightMap * mpParent
Definition aglLightMap.h:286
void bindLUT_(s32 obj_index)
Definition aglLightMap.cpp:525
const TextureSampler & getTextureSampler() const
Definition aglLightMap.h:187
utl::Parameter< f32 > mRimPow
Definition aglLightMap.h:308
void bindLUT_()
Definition aglLightMap.cpp:538
sead::PtrArray< LightMap > mChild
Definition aglLightMap.h:301
const LightMap * get(s32 array_index) const
Definition aglLightMap.h:278
UniformBlockID
Definition aglLightMap.h:44
@ cUniformBlockID_Light
Definition aglLightMap.h:45
@ cUniformBlockID_LightView
Definition aglLightMap.h:46
@ cUniformBlockID_LightMip
Definition aglLightMap.h:47
@ cUniformBlockID_Num
Definition aglLightMap.h:48
TextureSampler mTextureSampler
Definition aglLightMap.h:288
LightMap()
Definition aglLightMap.cpp:14
sead::UnsafeArray< LightObj, cLightObjMax > mLightObj
Definition aglLightMap.h:295
Sampler
Definition aglLightMap.h:53
@ cSampler_Num
Definition aglLightMap.h:56
@ cSampler_LUT
Definition aglLightMap.h:54
@ cSampler_Normal
Definition aglLightMap.h:55
SliceNum
Definition aglLightMap.h:35
@ cSliceNum_SphereBackside
Definition aglLightMap.h:37
@ cSliceNum_Sphere
Definition aglLightMap.h:36
@ cSliceNum_Max
Definition aglLightMap.h:40
@ cSliceNum_Cube
Definition aglLightMap.h:38
void setPow(s32 light_index, f32 pow)
Definition aglLightMap.h:198
void constructMemory_(sead::Heap *heap)
Definition aglLightMap.cpp:622
void initializeTexture_(u32 size_sphere, u32 size_cube)
Definition aglLightMap.cpp:579
MappingType
Definition aglLightMap.h:26
@ cMappingType_Cube
Definition aglLightMap.h:29
@ cMappingType_Sphere
Definition aglLightMap.h:27
@ cMappingType_Num
Definition aglLightMap.h:30
@ cMappingType_SphereBackside
Definition aglLightMap.h:28
virtual void genMessageEachObj(sead::hostio::Context *, s32, const env::EnvObj *)
Definition aglLightMap.cpp:734
void initializeRenderBuffer_(s32 view_index, u32 mip_level)
Definition aglLightMap.cpp:550
Definition aglParameterObj.h:13
Definition aglParameter.h:107
Definition aglResParameter.h:16
Definition seadBuffer.h:13
Definition seadSafeString.h:421
Definition seadPtrArray.h:111
Definition seadSafeArray.h:19
Definition seadSafeArray.h:257
Definition seadHostIODummy.h:29
Definition seadHostIODummy.h:25
Definition aglEnvObj.cpp:21
Definition aglLightMap.h:11
Definition aglImageFilter2D.h:11
Definition aglDisplayList.cpp:5
ShaderMode
Definition aglShaderEnum.h:27
Definition seadAssert.h:44
Vector3< f32 > Vector3f
Definition seadVector.h:239
Matrix34< f32 > Matrix34f
Definition seadMatrix.h:342
BitFlag< u8 > BitFlag8
Definition seadBitFlag.h:123
#define SEAD_ASSERT(condition)
Definition seadAssert.h:24
Definition aglLightMap.h:150
Definition aglLightMap.h:87
RenderBuffer mRenderBuffer
Definition aglLightMap.h:88
sead::SafeArray< RenderTargetColor, cSliceNum_Max > mColorTarget
Definition aglLightMap.h:89
Definition aglLightMap.h:142
const GraphicsContext * mpGraphicsContext
Definition aglLightMap.h:143
sead::UnsafeArray< const TextureSampler *, cMappingType_Num > mNormalMap
Definition aglLightMap.h:144
const TextureSampler * mpLUT
Definition aglLightMap.h:145
Definition aglLightMap.h:120
utl::Parameter< bool > mEnableMip1
Definition aglLightMap.h:128
s8 mLUTType
Definition aglLightMap.h:126
utl::Parameter< sead::FixedSafeString< 32 > > mLUTName
Definition aglLightMap.h:125
utl::Parameter< f32 > mPow
Definition aglLightMap.h:123
utl::Parameter< s32 > mCalcType
Definition aglLightMap.h:121
utl::Parameter< bool > mEnableMip0
Definition aglLightMap.h:127
utl::Parameter< f32 > mPowMipMax
Definition aglLightMap.h:124
utl::Parameter< f32 > mEffect
Definition aglLightMap.h:122
Definition aglLightMap.h:94
Context mContext[cMipMax]
Definition aglLightMap.h:96
UniformBlock mUniformBlock
Definition aglLightMap.h:95