#include #include 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); } }