aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/black_hole_renderer.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-24 03:57:40 +0200
committerhachem <im@hachem.wtf>2026-08-24 03:57:40 +0200
commit59b7c407550d63e997ed1e7bed286be5c332c285 (patch)
tree95f168df75d33326dde486b401c1abf62608ff7c /src/rendering/black_hole_renderer.h
parent7ae22084c74cbe0c127e0ea1c96ec22a1f47d221 (diff)
[feat]: work on render path exporting
Diffstat (limited to 'src/rendering/black_hole_renderer.h')
-rw-r--r--src/rendering/black_hole_renderer.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/rendering/black_hole_renderer.h b/src/rendering/black_hole_renderer.h
index 2ae03dd..c2cb2af 100644
--- a/src/rendering/black_hole_renderer.h
+++ b/src/rendering/black_hole_renderer.h
@@ -41,10 +41,23 @@ namespace Donut
// swapchain render pass, before ImGui).
auto blit(RHI::CommandList& cmd, int fb_width, int fb_height) -> void;
+ // Renders one channel (0 colour, 1 redshift g, 2 emission T, 3 impact
+ // parameter) into an arbitrary RGBA8 target — for high-res export.
+ auto render_export(RHI::CommandList& cmd, RHI::RenderTarget* target,
+ const GeodesicView& view, const BlackHoleParams& params,
+ const std::vector<SceneObject>& objects, RHI::Texture* cubemap,
+ int channel, bool raw) -> void;
+
private:
+ auto fill_uniforms(const GeodesicView& view, const BlackHoleParams& params,
+ const std::vector<SceneObject>& objects, int channel, bool raw) -> void;
+ auto draw_geodesic(RHI::CommandList& cmd, RHI::RenderTarget* target,
+ RHI::Texture* cubemap, RHI::Pipeline* pipeline) -> void;
+
RHI::Device* m_device = nullptr;
Ref<RHI::Pipeline> m_geo_pipeline;
+ Ref<RHI::Pipeline> m_geo_pipeline_hdr; // RGBA32F variant for raw export
Ref<RHI::RenderTarget> m_geo_lo;
Ref<RHI::RenderTarget> m_geo_hi;
Ref<RHI::Buffer> m_quad_vb;