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;
10 ~DeviceContext() = default;
11
12 auto &GetDescriptor() { return _descriptor; }
13 auto &GetDevice() { return _device; }
14 const auto &GetDevice() const { return _device; }
15
16 void Release() noexcept
17 {
18 if (_device.has_value())
19 {
20 _device->release();
21 _device.reset();
22 }
23 }
24
25 private:
26 wgpu::DeviceDescriptor _descriptor = wgpu::DeviceDescriptor(wgpu::Default);
27 std::optional<wgpu::Device> _device = std::nullopt;
28};
29} // namespace Graphic::Resource
Definition AGPUBuffer.hpp:6
constexpr DefaultFlag Default
Definition webgpu.hpp:78
const auto & GetDevice() const
Definition DeviceContext.hpp:14
wgpu::DeviceDescriptor _descriptor
Definition DeviceContext.hpp:26
std::optional< wgpu::Device > _device
Definition DeviceContext.hpp:27
auto & GetDescriptor()
Definition DeviceContext.hpp:12
auto & GetDevice()
Definition DeviceContext.hpp:13
void Release() noexcept
Definition DeviceContext.hpp:16