2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CWORLDSHADOW
|
|
|
|
#define _CWORLDSHADOW
|
2022-10-06 10:38:13 +00:00
|
|
|
|
|
|
|
#include "MetroidPrime/TGameTypes.hpp"
|
|
|
|
|
|
|
|
#include "Kyoto/Math/CTransform4f.hpp"
|
2022-10-09 05:13:17 +00:00
|
|
|
#include "Kyoto/Math/CVector3f.hpp"
|
2022-10-06 10:38:13 +00:00
|
|
|
|
|
|
|
#include "rstl/single_ptr.hpp"
|
|
|
|
|
|
|
|
class CTexture;
|
|
|
|
|
|
|
|
class CWorldShadow {
|
2022-10-09 05:13:17 +00:00
|
|
|
rstl::single_ptr< CTexture > x0_texture;
|
2022-10-06 10:38:13 +00:00
|
|
|
CTransform4f x4_view;
|
|
|
|
CTransform4f x34_model;
|
|
|
|
float x64_objHalfExtent;
|
|
|
|
CVector3f x68_objPos;
|
|
|
|
CVector3f x74_lightPos;
|
|
|
|
TAreaId x80_aid;
|
2022-10-09 05:37:23 +00:00
|
|
|
int x84_lightIdx;
|
2022-10-06 10:38:13 +00:00
|
|
|
bool x88_blurReset;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CWorldShadow(uint w, uint h, bool rgba8);
|
2022-10-06 11:04:05 +00:00
|
|
|
~CWorldShadow();
|
2022-10-06 11:37:57 +00:00
|
|
|
|
|
|
|
void EnableModelProjectedShadow(const CTransform4f& pos, uint lightIdx, float f1);
|
|
|
|
void DisableModelProjectedShadow();
|
2022-10-09 05:13:17 +00:00
|
|
|
void BuildLightShadowTexture(const CStateManager& mgr, TAreaId aid, uint lightIdx,
|
|
|
|
const CAABox& aabb, bool motionBlur, bool lighten);
|
2022-10-06 11:37:57 +00:00
|
|
|
void ResetBlur();
|
2022-10-06 10:38:13 +00:00
|
|
|
};
|
|
|
|
CHECK_SIZEOF(CWorldShadow, 0x8c)
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CWORLDSHADOW
|