mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <ffx-fsr2-api/ffx_fsr2.h>
|
|
#include <glm/glm.hpp>
|
|
|
|
#include "nvrendererbackend.h"
|
|
|
|
struct NvFSR {
|
|
NvFSR(class NvRenderer* renderer);
|
|
void Init();
|
|
void Render(nvrhi::ICommandList* command_list, double far_plane,
|
|
double near_plane, double fov);
|
|
|
|
FfxFsr2Interface m_fsr2_interface;
|
|
FfxFsr2Context m_fsr2_context;
|
|
std::string m_scratch_buffer;
|
|
|
|
nvrhi::ITexture* m_color;
|
|
nvrhi::ITexture* m_auto_exposure_buffer;
|
|
nvrhi::ITexture* m_depth;
|
|
nvrhi::ITexture* m_motion;
|
|
nvrhi::TextureHandle m_output;
|
|
|
|
FfxResource GetFfxResource(
|
|
nvrhi::ITexture* texture, wchar_t const* name = nullptr,
|
|
FfxResourceStates state = FFX_RESOURCE_STATE_COMPUTE_READ);
|
|
|
|
int m_input_width;
|
|
int m_input_height;
|
|
|
|
int m_width;
|
|
int m_height;
|
|
glm::vec2 m_current_jitter;
|
|
|
|
class NvRendererBackend* m_backend;
|
|
struct NvGbuffer* m_gbuffer;
|
|
struct GbufferBlitPass* m_inputpass;
|
|
struct MaAutoExposure* m_auto_exposure;
|
|
|
|
size_t m_current_frame = 0;
|
|
|
|
void BeginFrame();
|
|
glm::dmat4 GetJitterMatrix() const;
|
|
void ComputeJitter();
|
|
}; |