mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-18 19:39:20 +02:00
Ordering them before the imports in the same file was not enough: a project header on line 1 can import a module several levels down whose global module fragment already pulled in the same standard header, and that include guard does not cross the module boundary. Putting them first means the guard is set before anything can import. Skips vendored single-header libraries and anything inside an #if.
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <string>
|
|
#include <ffx-fsr2-api/ffx_fsr2.h>
|
|
|
|
#include "nvrendererbackend.h"
|
|
|
|
import eu07.glm;
|
|
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();
|
|
}; |