mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-28 22:47:28 +01:00
A header first pulled in through an imported module's global module fragment leaves no include guard in the importing unit - macros do not cross a module boundary - so a later textual include parses it again and MSVC rejects the redefinition. Redoes the betterRenderer sweep with placement that stays out of #if blocks, which is where the previous one dropped <fstream> and broke nvrenderer_d3d12.cpp.
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <ffx-fsr2-api/ffx_fsr2.h>
|
|
|
|
#include "nvrendererbackend.h"
|
|
#include <cstddef>
|
|
#include <string>
|
|
|
|
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();
|
|
}; |