psemek/libs/wgpu/source/device.cpp

34 lines
844 B
C++

#include <psemek/wgpu/device.hpp>
#include <psemek/wgpu/external/webgpu.h>
namespace psemek::wgpu
{
queue device::get_queue()
{
auto ptr = wgpuDeviceGetQueue((WGPUDevice)get());
// Queue is actually owned by the device
// Reference it to prevent destroying
wgpuQueueReference(ptr);
return queue(ptr);
}
command_encoder device::create_command_encoder(command_encoder::descriptor const & desc)
{
WGPUCommandEncoderDescriptor descriptor = {};
descriptor.nextInChain = (WGPUChainedStruct const *)detail::fill_chain(desc.chain);
descriptor.label = desc.label.data();
return command_encoder(wgpuDeviceCreateCommandEncoder((WGPUDevice)get(), &descriptor));
}
void device::reference(void * ptr)
{
wgpuDeviceReference((WGPUDevice)ptr);
}
void device::release(void * ptr)
{
wgpuDeviceRelease((WGPUDevice)ptr);
}
}