2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-10 01:47:43 +00:00

CBooRenderer::PostRenderFogs() implementation

This commit is contained in:
Jack Andersen
2017-03-06 19:36:02 -10:00
parent 87a22b73fa
commit 0f6ae9d217
4 changed files with 135 additions and 32 deletions

View File

@@ -69,6 +69,24 @@ class CBooRenderer : public IRenderer
~CAreaListItem();
};
struct CFogVolumeListItem
{
zeus::CTransform x0_transform;
zeus::CColor x30_color;
zeus::CAABox x34_aabb;
TLockedToken<CModel> x4c_model;
//bool x58_b; Optional for model token
const CSkinnedModel* x5c_skinnedModel = nullptr;
CFogVolumeListItem(const zeus::CTransform& xf, const zeus::CColor& color,
const zeus::CAABox& aabb, const TLockedToken<CModel>* model,
const CSkinnedModel* sModel)
: x0_transform(xf), x30_color(color), x34_aabb(aabb), x5c_skinnedModel(sModel)
{
if (model)
x4c_model = *model;
}
};
IFactory& x8_factory;
IObjectStore& xc_store;
boo::GraphicsDataToken m_gfxToken;
@@ -107,8 +125,8 @@ class CBooRenderer : public IRenderer
int m_ballShadowIdH = 64;
CRandom16 x2a8_thermalRand;
std::list<u32> x2b8_;
std::list<u32> x2d0_;
std::list<CFogVolumeListItem> x2ac_fogVolumes;
std::list<std::pair<zeus::CVector3f, float>> x2c4_spaceWarps;
zeus::CColor x2e0_ = zeus::CColor::skWhite;
zeus::CVector3f x2e4_ = {0.f, 1.f, 0.f};
@@ -147,6 +165,8 @@ class CBooRenderer : public IRenderer
void ActivateLightsForModel(CAreaListItem* item, CBooModel& model);
void RenderBucketItems(CAreaListItem* item);
void HandleUnsortedModel(CAreaListItem* item, CBooModel& model);
void ReallyRenderFogVolume(const zeus::CColor& color, const zeus::CAABox& aabb,
const CModel* model, const CSkinnedModel* sModel);
public:
CBooRenderer(IObjectStore& store, IFactory& resFac);