mirror of https://github.com/AxioDL/metaforce.git
CEnvFxManager: Remove mutable keywords where applicable
We can just make the relevant functions non-const to remove the use of mutable here.
This commit is contained in:
parent
e13aa34509
commit
f74c2d446f
|
@ -375,10 +375,10 @@ static zeus::CColor GetFlakeColor(const zeus::CMatrix4f& mvp, const CEnvFxShader
|
|||
return zeus::CColor(1.f - zeus::clamp(0.f, screenHeight, 1.f), 1.f);
|
||||
}
|
||||
|
||||
void CEnvFxManagerGrid::RenderSnowParticles(const zeus::CTransform& camXf) const {
|
||||
zeus::CVector3f xVec = 0.2f * camXf.basis[0];
|
||||
zeus::CVector3f zVec = 0.2f * camXf.basis[2];
|
||||
zeus::CMatrix4f mvp = CGraphics::GetPerspectiveProjectionMatrix(false) * CGraphics::g_GXModelView.toMatrix4f();
|
||||
void CEnvFxManagerGrid::RenderSnowParticles(const zeus::CTransform& camXf) {
|
||||
const zeus::CVector3f xVec = 0.2f * camXf.basis[0];
|
||||
const zeus::CVector3f zVec = 0.2f * camXf.basis[2];
|
||||
const zeus::CMatrix4f mvp = CGraphics::GetPerspectiveProjectionMatrix(false) * CGraphics::g_GXModelView.toMatrix4f();
|
||||
auto* bufOut = m_instBuf.access();
|
||||
for (const auto& particle : x1c_particles) {
|
||||
bufOut->positions[0] = particle.toVec3f();
|
||||
|
@ -396,26 +396,26 @@ void CEnvFxManagerGrid::RenderSnowParticles(const zeus::CTransform& camXf) const
|
|||
CGraphics::DrawInstances(0, 4, x1c_particles.size());
|
||||
}
|
||||
|
||||
void CEnvFxManagerGrid::RenderRainParticles(const zeus::CTransform& camXf) const {
|
||||
void CEnvFxManagerGrid::RenderRainParticles(const zeus::CTransform& camXf) {
|
||||
m_lineRenderer.Reset();
|
||||
float zOffset = 2.f * (1.f - std::fabs(camXf.basis[2].dot(zeus::skUp))) + 1.f;
|
||||
zeus::CColor color0(1.f, 10.f / 15.f);
|
||||
const float zOffset = 2.f * (1.f - std::fabs(camXf.basis[2].dot(zeus::skUp))) + 1.f;
|
||||
const zeus::CColor color0(1.f, 10.f / 15.f);
|
||||
for (const auto& particle : x1c_particles) {
|
||||
zeus::CVector3f pos0 = particle.toVec3f();
|
||||
const zeus::CVector3f pos0 = particle.toVec3f();
|
||||
zeus::CVector3f pos1 = pos0;
|
||||
pos1.z() += zOffset;
|
||||
float uvy0 = pos0.z() * 10.f + m_uvyOffset;
|
||||
float uvy1 = pos1.z() * 10.f + m_uvyOffset;
|
||||
const float uvy0 = pos0.z() * 10.f + m_uvyOffset;
|
||||
const float uvy1 = pos1.z() * 10.f + m_uvyOffset;
|
||||
m_lineRenderer.AddVertex(pos0, zeus::skWhite, 1.f, {0.f, uvy0});
|
||||
m_lineRenderer.AddVertex(pos1, zeus::skClear, 1.f, {0.f, uvy1});
|
||||
}
|
||||
m_lineRenderer.Render(g_Renderer->IsThermalVisorHotPass(), zeus::CColor(1.f, 0.15f));
|
||||
}
|
||||
|
||||
void CEnvFxManagerGrid::RenderUnderwaterParticles(const zeus::CTransform& camXf) const {
|
||||
zeus::CVector3f xVec = 0.5f * camXf.basis[0];
|
||||
zeus::CVector3f zVec = 0.5f * camXf.basis[2];
|
||||
zeus::CMatrix4f mvp = CGraphics::GetPerspectiveProjectionMatrix(false) * CGraphics::g_GXModelView.toMatrix4f();
|
||||
void CEnvFxManagerGrid::RenderUnderwaterParticles(const zeus::CTransform& camXf) {
|
||||
const zeus::CVector3f xVec = 0.5f * camXf.basis[0];
|
||||
const zeus::CVector3f zVec = 0.5f * camXf.basis[2];
|
||||
const zeus::CMatrix4f mvp = CGraphics::GetPerspectiveProjectionMatrix(false) * CGraphics::g_GXModelView.toMatrix4f();
|
||||
auto* bufOut = m_instBuf.access();
|
||||
for (const auto& particle : x1c_particles) {
|
||||
bufOut->positions[0] = particle.toVec3f();
|
||||
|
@ -434,7 +434,7 @@ void CEnvFxManagerGrid::RenderUnderwaterParticles(const zeus::CTransform& camXf)
|
|||
}
|
||||
|
||||
void CEnvFxManagerGrid::Render(const zeus::CTransform& xf, const zeus::CTransform& invXf, const zeus::CTransform& camXf,
|
||||
float fxDensity, EEnvFxType fxType, const CEnvFxManager& parent) const {
|
||||
float fxDensity, EEnvFxType fxType, CEnvFxManager& parent) {
|
||||
if (!x1c_particles.empty() && x14_block.first) {
|
||||
CGraphics::SetModelMatrix(xf * zeus::CTransform::Translate(x4_position.toVec2f() / 256.f));
|
||||
parent.m_uniformData.mv = CGraphics::g_GXModelView.toMatrix4f();
|
||||
|
@ -469,7 +469,7 @@ void CEnvFxManagerGrid::Render(const zeus::CTransform& xf, const zeus::CTransfor
|
|||
}
|
||||
}
|
||||
|
||||
void CEnvFxManager::SetupSnowTevs(const CStateManager& mgr) const {
|
||||
void CEnvFxManager::SetupSnowTevs(const CStateManager& mgr) {
|
||||
mgr.GetCameraManager()->GetCurrentCamera(mgr);
|
||||
if (mgr.GetCameraManager()->GetFluidCounter() != 0) {
|
||||
g_Renderer->SetWorldFog(ERglFogMode::PerspExp, 0.f, 35.f, zeus::skBlack);
|
||||
|
@ -535,7 +535,7 @@ void CEnvFxManager::SetupUnderwaterTevs(const zeus::CTransform& invXf, const CSt
|
|||
// Swap: RGBR
|
||||
}
|
||||
|
||||
void CEnvFxManager::Render(const CStateManager& mgr) const {
|
||||
void CEnvFxManager::Render(const CStateManager& mgr) {
|
||||
EEnvFxType fxType = mgr.GetWorld()->GetNeededEnvFx();
|
||||
if (fxType != EEnvFxType::None) {
|
||||
if (mgr.GetPlayer().GetMorphballTransitionState() != CPlayer::EPlayerMorphBallState::Unmorphed ||
|
||||
|
@ -562,7 +562,7 @@ void CEnvFxManager::Render(const CStateManager& mgr) const {
|
|||
break;
|
||||
}
|
||||
m_fogUniformBuf->load(&CGraphics::g_Fog, sizeof(CGraphics::g_Fog));
|
||||
for (const auto& grid : x50_grids)
|
||||
for (auto& grid : x50_grids)
|
||||
grid.Render(xf, invXf, camXf, x30_fxDensity, fxType, *this);
|
||||
// Backface cull
|
||||
|
||||
|
|
|
@ -64,34 +64,34 @@ class CEnvFxManagerGrid {
|
|||
std::pair<bool, float> x14_block = {false, FLT_MAX}; /* Blocked-bool, Z-coordinate */
|
||||
std::vector<CVectorFixed8_8> x1c_particles;
|
||||
|
||||
mutable hecl::VertexBufferPool<CEnvFxShaders::Instance>::Token m_instBuf;
|
||||
mutable hecl::UniformBufferPool<CEnvFxShaders::Uniform>::Token m_uniformBuf;
|
||||
mutable CLineRenderer m_lineRenderer;
|
||||
hecl::VertexBufferPool<CEnvFxShaders::Instance>::Token m_instBuf;
|
||||
hecl::UniformBufferPool<CEnvFxShaders::Uniform>::Token m_uniformBuf;
|
||||
CLineRenderer m_lineRenderer;
|
||||
|
||||
boo::ObjToken<boo::IShaderDataBinding> m_snowBinding;
|
||||
boo::ObjToken<boo::IShaderDataBinding> m_underwaterBinding;
|
||||
|
||||
mutable float m_uvyOffset = 0.f;
|
||||
float m_uvyOffset = 0.f;
|
||||
|
||||
void RenderSnowParticles(const zeus::CTransform& camXf) const;
|
||||
void RenderRainParticles(const zeus::CTransform& camXf) const;
|
||||
void RenderUnderwaterParticles(const zeus::CTransform& camXf) const;
|
||||
void RenderSnowParticles(const zeus::CTransform& camXf);
|
||||
void RenderRainParticles(const zeus::CTransform& camXf);
|
||||
void RenderUnderwaterParticles(const zeus::CTransform& camXf);
|
||||
|
||||
public:
|
||||
CEnvFxManagerGrid(const zeus::CVector2i& position, const zeus::CVector2i& extent,
|
||||
std::vector<CVectorFixed8_8> initialParticles, int reserve, CEnvFxManager& parent,
|
||||
boo::IGraphicsDataFactory::Context& ctx);
|
||||
void Render(const zeus::CTransform& xf, const zeus::CTransform& invXf, const zeus::CTransform& camXf, float fxDensity,
|
||||
EEnvFxType fxType, const CEnvFxManager& parent) const;
|
||||
EEnvFxType fxType, CEnvFxManager& parent);
|
||||
};
|
||||
|
||||
class CEnvFxManager {
|
||||
friend class CEnvFxManagerGrid;
|
||||
friend class CEnvFxShaders;
|
||||
|
||||
mutable hecl::VertexBufferPool<CEnvFxShaders::Instance> m_instPool;
|
||||
mutable hecl::UniformBufferPool<CEnvFxShaders::Uniform> m_uniformPool;
|
||||
mutable CEnvFxShaders::Uniform m_uniformData;
|
||||
hecl::VertexBufferPool<CEnvFxShaders::Instance> m_instPool;
|
||||
hecl::UniformBufferPool<CEnvFxShaders::Uniform> m_uniformPool;
|
||||
CEnvFxShaders::Uniform m_uniformData;
|
||||
boo::ObjToken<boo::IGraphicsBufferD> m_fogUniformBuf;
|
||||
|
||||
zeus::CAABox x0_particleBounds = zeus::CAABox(-63.5f, 63.5f);
|
||||
|
@ -133,7 +133,7 @@ class CEnvFxManager {
|
|||
void UpdateSnowParticles(const rstl::reserved_vector<CVectorFixed8_8, 256>& snowForces);
|
||||
void UpdateRainParticles(const CVectorFixed8_8& zVec, const zeus::CVector3f& oopbtws, float dt);
|
||||
void UpdateUnderwaterParticles(const CVectorFixed8_8& zVec);
|
||||
void SetupSnowTevs(const CStateManager& mgr) const;
|
||||
void SetupSnowTevs(const CStateManager& mgr);
|
||||
void SetupRainTevs() const;
|
||||
void SetupUnderwaterTevs(const zeus::CTransform& invXf, const CStateManager& mgr) const;
|
||||
|
||||
|
@ -142,7 +142,7 @@ public:
|
|||
void AsyncLoadResources(CStateManager& mgr);
|
||||
|
||||
void Update(float, CStateManager& mgr);
|
||||
void Render(const CStateManager& mgr) const;
|
||||
void Render(const CStateManager& mgr);
|
||||
void SetFxDensity(s32, float);
|
||||
void AreaLoaded();
|
||||
void SetSplashRate(float f) { xb54_baseSplashRate = f; }
|
||||
|
|
Loading…
Reference in New Issue