HifiExperimentscleanup + fixing mirrorsc4cf2ba2 years agoHistory
64 lines · 1.8 KB · C
RawDownload
////  DeferredFrameTransform.h//  libraries/render-utils/src/////  Created by Sam Gateau 6/3/2016.//  Copyright 2016 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_DeferredFrameTransform_h#define hifi_DeferredFrameTransform_h #include <gpu/Resource.h> #include <render/Forward.h>#include <render/DrawTask.h> // DeferredFrameTransform is  a helper class gathering in one place the needed camera transform// and frame resolution needed for all the deferred rendering passes taking advantage of the Deferred buffersclass DeferredFrameTransform {    friend class GenerateDeferredFrameTransform;public:    using UniformBufferView = gpu::BufferView;     DeferredFrameTransform();     void update(RenderArgs* args);     UniformBufferView getFrameTransformBuffer() const { return _frameTransformBuffer; } protected:     // Class describing the uniform buffer with the transform info common to the AO shaders    // It s changing every frame#include "DeferredTransform_shared.slh"     class FrameTransform : public _DeferredFrameTransform {    public:        FrameTransform() { infos.stereoInfo = glm::vec4(0.0f); }    };     UniformBufferView _frameTransformBuffer;}; using DeferredFrameTransformPointer = std::shared_ptr<DeferredFrameTransform>;  class GenerateDeferredFrameTransform {public:    using Output = DeferredFrameTransformPointer;    using JobModel = render::Job::ModelO<GenerateDeferredFrameTransform, Output>;     GenerateDeferredFrameTransform(uint transformSlot) : _transformSlot(transformSlot) {}     void run(const render::RenderContextPointer& renderContext, Output& frameTransform); private:    uint _transformSlot;}; #endif // hifi_DeferredFrameTransform_h