// // Created by Sam Gateau on 2019/06/14 // Copyright 2013-2019 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 // #ifndef hifi_RenderHUDLayerTask_h #define hifi_RenderHUDLayerTask_h #include "LightingModel.h" #include "HazeStage.h" #include "DeferredFrameTransform.h" class CompositeHUD { public: // IF specified the input Framebuffer is actively set by the batch of this job before calling the HUDOperator. // If not, the current Framebuffer is left unchanged. //using Inputs = gpu::FramebufferPointer; using JobModel = render::Job::ModelI; CompositeHUD(uint transformSlot) : _transformSlot(transformSlot) {} void run(const render::RenderContextPointer& renderContext, const gpu::FramebufferPointer& inputs); private: uint _transformSlot; }; class RenderHUDLayerTask { public: // Framebuffer where to draw, lighting model, opaque items, transparent items using Input = render::VaryingSet6; using JobModel = render::Task::ModelI; void build(JobModel& task, const render::Varying& input, render::Varying& output, render::ShapePlumberPointer shapePlumber, uint transformSlot); }; #endif // hifi_RenderHUDLayerTask_h