Fixed crash in debugShadow.js

This commit is contained in:
Olivier Prat 2019-04-17 09:47:33 +02:00
parent ec22f7847e
commit ae20a5d439
4 changed files with 5 additions and 3 deletions

View file

@ -364,7 +364,7 @@ void RenderDeferredTaskDebug::build(JobModel& task, const render::Varying& input
sprintf(jobName, "DrawShadowFrustum%d", i);
task.addJob<DrawFrustum>(jobName, shadowFrustum, glm::vec3(0.0f, tint, 1.0f));
if (!renderShadowTaskOut.isNull()) {
const auto& shadowCascadeSceneBBoxes = renderShadowTaskOut;
const auto& shadowCascadeSceneBBoxes = renderShadowTaskOut.get<RenderShadowTask::CascadeBoxes>();
const auto shadowBBox = shadowCascadeSceneBBoxes[ExtractFrustums::SHADOW_CASCADE0_FRUSTUM + i];
sprintf(jobName, "DrawShadowBBox%d", i);
task.addJob<DrawAABox>(jobName, shadowBBox, glm::vec3(1.0f, tint, 0.0f));

View file

@ -90,7 +90,7 @@ void RenderShadowTask::build(JobModel& task, const render::Varying& input, rende
#endif
};
render::VaryingArray<AABox,4> cascadeSceneBBoxes;
CascadeBoxes cascadeSceneBBoxes;
for (auto i = 0; i < SHADOW_CASCADE_MAX_COUNT; i++) {
char jobName[64];

View file

@ -52,8 +52,9 @@ class RenderShadowTask {
public:
// There is one AABox per shadow cascade
using CascadeBoxes = render::VaryingArray<AABox, SHADOW_CASCADE_MAX_COUNT>;
using Input = render::VaryingSet2<LightStage::FramePointer, LightingModelPointer>;
using Output = render::VaryingSet2<render::VaryingArray<AABox, SHADOW_CASCADE_MAX_COUNT>, LightStage::ShadowFramePointer>;
using Output = render::VaryingSet2<CascadeBoxes, LightStage::ShadowFramePointer>;
using Config = RenderShadowTaskConfig;
using JobModel = render::Task::ModelIO<RenderShadowTask, Input, Output, Config>;

View file

@ -152,6 +152,7 @@ public:
template <class... A>
static std::shared_ptr<Model> create(const std::string& name, const Varying& input, A&&... args) {
assert(input.canCast<I>());
return std::make_shared<Model>(name, input, std::make_shared<C>(), std::forward<A>(args)...);
}