34 lines
844 B
C++
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);
|
|
}
|
|
|
|
}
|