12 #ifndef hifi_DeferredFrameTransform_h
13 #define hifi_DeferredFrameTransform_h
15 #include <gpu/Resource.h>
17 #include <render/Forward.h>
18 #include <render/DrawTask.h>
22 class DeferredFrameTransform {
24 using UniformBufferView = gpu::BufferView;
26 DeferredFrameTransform();
28 void update(RenderArgs* args, glm::vec2 jitter);
30 UniformBufferView getFrameTransformBuffer()
const {
return _frameTransformBuffer; }
37 class FrameTransform {
41 glm::vec4 invpixelInfo;
45 glm::vec4 stereoInfo{ 0.0 };
47 glm::mat4 projection[2];
49 glm::mat4 invProjection[2];
51 glm::mat4 projectionMono;
57 glm::mat4 projectionUnjittered[2];
59 glm::mat4 invProjectionUnjittered[2];
63 UniformBufferView _frameTransformBuffer;
68 using DeferredFrameTransformPointer = std::shared_ptr<DeferredFrameTransform>;
73 class GenerateDeferredFrameTransform {
76 using Input = glm::vec2;
77 using Output = DeferredFrameTransformPointer;
78 using JobModel = render::Job::ModelIO<GenerateDeferredFrameTransform, Input, Output>;
80 GenerateDeferredFrameTransform() {}
82 void run(
const render::RenderContextPointer& renderContext,
const Input& jitter, Output& frameTransform);