mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-18 16:09:19 +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.
37 lines
843 B
C++
37 lines
843 B
C++
#pragma once
|
|
|
|
#include <vector>
|
|
#include <nvrhi/nvrhi.h>
|
|
|
|
import eu07.glm;
|
|
struct Bloom {
|
|
struct BloomConstants {
|
|
glm::vec4 m_prefilter_vector;
|
|
float m_mix_factor;
|
|
};
|
|
float m_threshold = 3.f;
|
|
float m_knee = .6f;
|
|
float m_mix_factor = .04f;
|
|
bool m_gui_active = false;
|
|
void UpdateConstants(nvrhi::ICommandList* command_list);
|
|
void OnGui();
|
|
void ShowGui();
|
|
Bloom(class NvRendererBackend* backend) : m_backend(backend) {}
|
|
|
|
void Init(nvrhi::ITexture* texture);
|
|
void Render(nvrhi::ICommandList* command_list);
|
|
|
|
nvrhi::TextureHandle m_working_texture;
|
|
nvrhi::BufferHandle m_constant_buffer;
|
|
|
|
struct BloomStage {
|
|
int m_width;
|
|
int m_height;
|
|
nvrhi::BindingSetHandle m_binding_set;
|
|
nvrhi::ComputePipelineHandle m_pso;
|
|
};
|
|
|
|
std::vector<BloomStage> m_stages;
|
|
|
|
class NvRendererBackend* m_backend;
|
|
}; |