17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-29 02:17:28 +01:00
Files
maszyna/betterRenderer/renderer/source/contactshadows.h
maj00r 2695c8e525 include what you use in betterRenderer
Its sources reached the standard library through the project headers they
included; those are imports now. 178 headers across 56 files, plus 18 C
library headers elsewhere for memcpy/printf and friends. MSVC's STL does
not supply these transitively the way libstdc++ does.
2026-09-10 00:26:55 +02:00

37 lines
1.0 KiB
C++

#pragma once
#include <nvrhi/nvrhi.h>
import eu07.glm;
#include <cstdint>
struct MaContactShadows {
MaContactShadows(class NvRenderer* renderer, class NvGbuffer* gbuffer);
void Init();
void Render(nvrhi::ICommandList* command_list);
void UpdateConstants(nvrhi::ICommandList* command_list,
const glm::dmat4& projection, const glm::dmat4& view,
const glm::dvec3& light, uint64_t frame_index);
struct ComputeConstants {
glm::mat4 g_Projection;
glm::mat4 g_InverseProjection;
glm::vec3 g_LightDirView;
float g_NumSamples;
float g_SampleRange;
float g_Thickness;
uint32_t g_FrameIndex;
};
nvrhi::BindingLayoutHandle m_binding_layout;
nvrhi::BindingSetHandle m_binding_set;
nvrhi::ComputePipelineHandle m_pipeline;
nvrhi::ShaderHandle m_compute_shader;
nvrhi::BufferHandle m_constant_buffer;
nvrhi::TextureHandle m_output_texture;
class NvRendererBackend* m_backend;
class NvGbuffer* m_gbuffer;
int m_width;
int m_height;
};