mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 15:44:56 +00:00
Additional ThermalCold filter work; CStateManager fields
This commit is contained in:
@@ -89,6 +89,27 @@ void ViewManager::ParticleView::draw(boo::IGraphicsCommandQueue *gfxQ)
|
||||
//lights = {CLight::BuildLocalAmbient({}, {0.0f, 0.0f, 0.0f, 1.f})};
|
||||
m_vm.m_modelTest->GetInstance().ActivateLights(lights);
|
||||
m_vm.m_modelTest->Draw(flags);
|
||||
|
||||
zeus::CColor ctrlCol{1.f, 0.f, 0.f, 1.f};
|
||||
float fac = 0.5f;
|
||||
zeus::CColor a = zeus::CColor::lerp(ctrlCol, zeus::CColor::skWhite, fac);
|
||||
m_thermColdFilter.setColorA(a);
|
||||
float bFac = 0.f;
|
||||
float bAlpha = 1.f;
|
||||
if (fac < 0.5f)
|
||||
{
|
||||
bAlpha = fac * 2.f;
|
||||
bFac = (1.f - bAlpha) / 8.f;
|
||||
}
|
||||
zeus::CColor b{bFac, bFac, bFac, bAlpha};
|
||||
m_thermColdFilter.setColorB(b);
|
||||
zeus::CColor c = zeus::CColor::lerp(zeus::CColor::skBlack, zeus::CColor::skWhite, fac * 0.75f + 0.25f);
|
||||
m_thermColdFilter.setColorC(c);
|
||||
|
||||
m_thermColdFilter.setScale(std::sin(m_theta) * 0.5f + 0.5f);
|
||||
|
||||
m_thermColdFilter.setShift(m_random.Next() % 32);
|
||||
m_thermColdFilter.draw();
|
||||
}
|
||||
if (m_vm.m_partGen)
|
||||
{
|
||||
|
||||
@@ -46,10 +46,12 @@ class ViewManager : public specter::IViewManager
|
||||
class ParticleView : public specter::View
|
||||
{
|
||||
ViewManager& m_vm;
|
||||
CThermalColdFilter m_thermColdFilter;
|
||||
CRandom16 m_random;
|
||||
float m_theta = 0.f;
|
||||
public:
|
||||
ParticleView(ViewManager& vm, specter::ViewResources& res, specter::View& parent)
|
||||
: View(res, parent), m_vm(vm) {}
|
||||
: View(res, parent), m_vm(vm), m_random(20) {}
|
||||
void resized(const boo::SWindowRect& root, const boo::SWindowRect& sub);
|
||||
void draw(boo::IGraphicsCommandQueue* gfxQ);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user