From c6aafcc8c51f7cfed36b0b61d017d8801119f5d3 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Tue, 18 Jul 2023 11:29:55 +0300 Subject: [PATCH] Add a function in Renderer to upload data to a buffer This accounts for the current frame in flight if necessary. --- source/render/renderer.cpp | 6 ++++++ source/render/renderer.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/source/render/renderer.cpp b/source/render/renderer.cpp index 299cdb17..0e3a770a 100644 --- a/source/render/renderer.cpp +++ b/source/render/renderer.cpp @@ -334,6 +334,12 @@ void Renderer::resolve_multisample() commands.resolve_multisample(); } +void Renderer::upload_data(Buffer &buffer, size_t off, size_t sz, const void *d) +{ + unsigned frame = frame_number%buffer.get_multiplicity(); + buffer.sub_data(frame*buffer.get_size()+off, sz, d); +} + void Renderer::begin_query(const QueryPool &pool, unsigned index) { commands.begin_query(pool, index); diff --git a/source/render/renderer.h b/source/render/renderer.h index e670cafa..3ba5e64d 100644 --- a/source/render/renderer.h +++ b/source/render/renderer.h @@ -247,6 +247,8 @@ public: their corresponding resolve attachments. */ void resolve_multisample(); + void upload_data(Buffer &, std::size_t, std::size_t, const void *); + void begin_query(const QueryPool &, unsigned); void end_query(const QueryPool &, unsigned); -- 2.45.2