// // RenderViewTask.h // render-utils/src/ // // Created by Sam Gateau on 5/25/2017. // Copyright 2017 High Fidelity, Inc. // Copyright 2024 Overte e.V. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #pragma once #ifndef hifi_RenderViewTask_h #define hifi_RenderViewTask_h #include #include #include "AssembleLightingStageTask.h" class RenderShadowsAndDeferredTask { public: using Input = render::VaryingSet3; using JobModel = render::Task::ModelI; RenderShadowsAndDeferredTask() {} void build(JobModel& task, const render::Varying& inputs, render::Varying& outputs, render::CullFunctor cullFunctor, uint8_t tagBits, uint8_t tagMask, uint8_t transformOffset, size_t depth); }; class DeferredForwardSwitchJob { public: using Input = render::VaryingSet3; using JobModel = render::Switch::ModelI; DeferredForwardSwitchJob() {} void configure(const render::SwitchConfig& config) {} void build(JobModel& task, const render::Varying& inputs, render::Varying& outputs, render::CullFunctor cullFunctor, uint8_t tagBits, uint8_t tagMask, uint8_t transformOffset, size_t depth); }; class RenderViewTask { public: using Input = RenderFetchCullSortTask::Output; using JobModel = render::Task::ModelI; RenderViewTask() {} // each view uses 1 transform for the main view, and one for the background, so these need to be increments of 2 enum TransformOffset: uint8_t { MAIN_VIEW = 0, SECONDARY_VIEW = 2, FIRST_MIRROR_VIEW = 4 }; void build(JobModel& task, const render::Varying& inputs, render::Varying& outputs, render::CullFunctor cullFunctor, uint8_t tagBits = 0x00, uint8_t tagMask = 0x00, TransformOffset transformOffset = TransformOffset::MAIN_VIEW, size_t depth = 0); }; #endif // hifi_RenderViewTask_h