From 7071f3363db547922efcc2750e25134c4d8d75e8 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 1 Jan 2024 16:10:10 +0300 Subject: [PATCH] WebGPU wrapper wip: add render bundle object --- libs/wgpu/include/psemek/wgpu/render_bundle.hpp | 11 ++++++++++- libs/wgpu/objects-todo | 2 +- libs/wgpu/source/render_bundle.cpp | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libs/wgpu/include/psemek/wgpu/render_bundle.hpp b/libs/wgpu/include/psemek/wgpu/render_bundle.hpp index 03daa7be..08ba35ea 100644 --- a/libs/wgpu/include/psemek/wgpu/render_bundle.hpp +++ b/libs/wgpu/include/psemek/wgpu/render_bundle.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include namespace psemek::wgpu { @@ -10,6 +11,14 @@ namespace psemek::wgpu { using detail::object::object; + struct descriptor + { + std::vector chain = {}; + std::string label = {}; + }; + + void set_label(std::string const & label); + static void reference(void * ptr); static void release(void * ptr); @@ -18,7 +27,7 @@ namespace psemek::wgpu : detail::object(ptr) {} - friend struct device; + friend struct render_bundle_encoder; }; } diff --git a/libs/wgpu/objects-todo b/libs/wgpu/objects-todo index f411c48d..c60cb642 100644 --- a/libs/wgpu/objects-todo +++ b/libs/wgpu/objects-todo @@ -11,7 +11,7 @@ + WGPUPipelineLayout + WGPUQuerySet + WGPUQueue - WGPURenderBundle ++ WGPURenderBundle WGPURenderBundleEncoder + WGPURenderPassEncoder + WGPURenderPipeline diff --git a/libs/wgpu/source/render_bundle.cpp b/libs/wgpu/source/render_bundle.cpp index 5c8dbaf5..6aeed09b 100644 --- a/libs/wgpu/source/render_bundle.cpp +++ b/libs/wgpu/source/render_bundle.cpp @@ -4,6 +4,11 @@ namespace psemek::wgpu { + void render_bundle::set_label(std::string const & label) + { + wgpuRenderBundleSetLabel((WGPURenderBundle)get(), label.data()); + } + void render_bundle::reference(void * ptr) { wgpuRenderBundleReference((WGPURenderBundle)ptr);