Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
DeviceContext.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "utils/webgpu.hpp"
4#include <optional>
5
6namespace Graphic::Resource {
8 public:
9 DeviceContext(void) = default;
11
12 DeviceContext(DeviceContext &other) = delete;
14
17
18 auto &GetDescriptor() { return _descriptor; }
19 auto &GetDevice() { return _device; }
20 const auto &GetDevice() const { return _device; }
21
22 void Release() noexcept
23 {
24 if (_device.has_value())
25 {
26 _device->release();
27 _device.reset();
28 }
29 }
30
31 private:
32 wgpu::DeviceDescriptor _descriptor = wgpu::DeviceDescriptor(wgpu::Default);
33 std::optional<wgpu::Device> _device = std::nullopt;
34};
35} // namespace Graphic::Resource
Definition Adapter.hpp:5
constexpr DefaultFlag Default
Definition webgpu.hpp:78
const auto & GetDevice() const
Definition DeviceContext.hpp:20
DeviceContext(DeviceContext &&)=default
wgpu::DeviceDescriptor _descriptor
Definition DeviceContext.hpp:32
std::optional< wgpu::Device > _device
Definition DeviceContext.hpp:33
DeviceContext(DeviceContext &other)=delete
auto & GetDescriptor()
Definition DeviceContext.hpp:18
DeviceContext & operator=(DeviceContext &&)=default
auto & GetDevice()
Definition DeviceContext.hpp:19
DeviceContext & operator=(DeviceContext &other)=delete
void Release() noexcept
Definition DeviceContext.hpp:22
~DeviceContext()
Definition DeviceContext.hpp:10