2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 13:04:56 +00:00

Implement CActorLights::BuildAreaLightList

This commit is contained in:
Jack Andersen
2017-04-09 20:57:00 -10:00
parent 9cd421888d
commit 84578e9909
20 changed files with 477 additions and 127 deletions

View File

@@ -306,6 +306,7 @@ std::vector<uint8_t> VISIBuilder::build(const zeus::CAABox& fullAabb,
size_t modelCount,
const std::vector<VISIRenderer::Entity>& entities,
const std::vector<VISIRenderer::Light>& lights,
size_t layer2LightCount,
FPercent updatePercent)
{
Log.report(logvisor::Info, "Started!");
@@ -338,7 +339,7 @@ std::vector<uint8_t> VISIBuilder::build(const zeus::CAABox& fullAabb,
w.writeBool(true);
w.writeUint32Big(featureCount);
w.writeUint32Big(lights.size());
w.writeUint32Big(0);
w.writeUint32Big(layer2LightCount);
w.writeUint32Big(entities.size());
w.writeUint32Big(leafBytesCount);
w.writeUint32Big(lights.size());

View File

@@ -122,6 +122,7 @@ struct VISIBuilder
size_t modelCount,
const std::vector<VISIRenderer::Entity>& entities,
const std::vector<VISIRenderer::Light>& lights,
size_t layer2LightCount,
FPercent updatePercent);
VISIBuilder(VISIRenderer& renderer) : renderCache(renderer) {}

View File

@@ -488,6 +488,7 @@ void VISIRenderer::Run(FPercent updatePercent)
return;
}
uint32_t layer2LightCount = 0;
{
athena::io::FileReader r(m_argv[1]);
if (r.hasError())
@@ -545,6 +546,7 @@ void VISIRenderer::Run(FPercent updatePercent)
}
uint32_t lightCount = r.readUint32Big();
layer2LightCount = r.readUint32Big();
m_lights.resize(lightCount);
for (uint32_t i=0 ; i<lightCount ; ++i)
{
@@ -561,7 +563,8 @@ void VISIRenderer::Run(FPercent updatePercent)
VISIBuilder builder(*this);
std::vector<uint8_t> dataOut = builder.build(m_totalAABB, m_models.size(),
m_entities, m_lights, m_updatePercent);
m_entities, m_lights, layer2LightCount,
m_updatePercent);
if (dataOut.empty())
{
m_return = 1;