From 83ef08207d49c7295c4e7e09e286334d9cc355d9 Mon Sep 17 00:00:00 2001 From: jambuttenshaw Date: Tue, 18 Nov 2025 11:23:07 +0000 Subject: [PATCH] Added user data field to draw item --- include/donut/render/GeometryPasses.h | 1 + src/render/DrawStrategy.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/include/donut/render/GeometryPasses.h b/include/donut/render/GeometryPasses.h index 371c2e9..b3a0293 100644 --- a/include/donut/render/GeometryPasses.h +++ b/include/donut/render/GeometryPasses.h @@ -49,6 +49,7 @@ namespace donut::render const engine::BufferGroup* buffers; float distanceToCamera; nvrhi::RasterCullMode cullMode; + void* userData; }; class GeometryPassContext diff --git a/src/render/DrawStrategy.cpp b/src/render/DrawStrategy.cpp index 8a3954d..0b3c6ce 100644 --- a/src/render/DrawStrategy.cpp +++ b/src/render/DrawStrategy.cpp @@ -114,6 +114,7 @@ void InstancedOpaqueDrawStrategy::FillChunk() item.buffers = item.mesh->buffers.get(); item.cullMode = (item.material->doubleSided) ? nvrhi::RasterCullMode::None : nvrhi::RasterCullMode::Back; item.distanceToCamera = 0; // don't care + item.userData = nullptr; ++writePtr; ++itemCount; @@ -222,6 +223,7 @@ void TransparentDrawStrategy::PrepareForView(const std::shared_ptrmaterial.get(); item.buffers = mesh->buffers.get(); item.distanceToCamera = length(geometryGlobalBoundingBox.center() - viewOrigin); + item.userData = nullptr; if (material->doubleSided) { if (DrawDoubleSidedMaterialsSeparately)