WebGPU wrapper wip: add command buffer object

This commit is contained in:
Nikita Lisitsa 2023-12-30 23:03:51 +03:00
parent 2af6a1000a
commit 66d6fa5c36
2 changed files with 57 additions and 0 deletions

View file

@ -0,0 +1,35 @@
#pragma once
#include <psemek/wgpu/chained_struct.hpp>
#include <psemek/wgpu/detail/object.hpp>
#include <string>
namespace psemek::wgpu
{
struct command_buffer
: detail::object<command_buffer>
{
using detail::object<command_buffer>::object;
struct descriptor
{
std::vector<chained_struct> chain = {};
std::string label = {};
};
void set_label(std::string const & label);
static void reference(void * ptr);
static void release(void * ptr);
private:
explicit command_buffer(void * ptr)
: detail::object<command_buffer>(ptr)
{}
friend struct command_encoder;
};
}

View file

@ -0,0 +1,22 @@
#include <psemek/wgpu/command_buffer.hpp>
#include <psemek/wgpu/external/webgpu.h>
namespace psemek::wgpu
{
void command_buffer::set_label(std::string const & label)
{
wgpuCommandBufferSetLabel((WGPUCommandBuffer)get(), label.data());
}
void command_buffer::reference(void * ptr)
{
wgpuCommandBufferReference((WGPUCommandBuffer)ptr);
}
void command_buffer::release(void * ptr)
{
wgpuCommandBufferRelease((WGPUCommandBuffer)ptr);
}
}