Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
TextureBindGroupLayoutEntry.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "utils/webgpu.hpp"
5
6namespace Graphic::Utils {
7class TextureBindGroupLayoutEntry : public ABindGroupLayoutEntry<TextureBindGroupLayoutEntry> {
8 public:
10 {
11 this->getEntry().texture.sampleType = wgpu::TextureSampleType::Undefined;
12 }
13 ~TextureBindGroupLayoutEntry() override = default;
14
17
18 std::vector<ValidationError> validate(void) const override
19 {
20 std::vector<ValidationError> errors = ABindGroupLayoutEntry::validate();
21 if (!this->_isSampleTypeSet)
22 {
23 errors.emplace_back("Sample type is not set",
24 fmt::format("TextureBindGroupLayoutEntry({})", this->getName()),
26 }
27 if (!this->_isViewDimensionSet)
28 {
29 errors.emplace_back("View dimension is not set",
30 fmt::format("TextureBindGroupLayoutEntry({})", this->getName()),
32 }
33 return errors;
34 }
35
36 inline TextureBindGroupLayoutEntry &setSampleType(wgpu::TextureSampleType type)
37 {
38 this->getEntry().texture.sampleType = type;
39 this->_isSampleTypeSet = true;
40 return *this;
41 }
42
43 inline TextureBindGroupLayoutEntry &setViewDimension(wgpu::TextureViewDimension dimension)
44 {
45 this->getEntry().texture.viewDimension = dimension;
46 this->_isViewDimensionSet = true;
47 return *this;
48 }
49
51 {
52 this->getEntry().texture.multisampled = multisampled;
53 return *this;
54 }
55
56 private:
57 bool _isSampleTypeSet = false;
58 bool _isViewDimensionSet = false;
59};
60} // namespace Graphic::Utils
const wgpu::BindGroupLayoutEntry & getEntry() const override
Definition ABindGroupLayoutEntry.hpp:21
const std::string & getName() const override
Definition ABindGroupLayoutEntry.hpp:19
std::vector< ValidationError > validate(void) const override
Definition ABindGroupLayoutEntry.hpp:37
ABindGroupLayoutEntry(const std::string &name_)
Definition ABindGroupLayoutEntry.hpp:10
std::string name
Definition ABindGroupLayoutEntry.hpp:60
TextureBindGroupLayoutEntry & setViewDimension(wgpu::TextureViewDimension dimension)
Definition TextureBindGroupLayoutEntry.hpp:43
bool _isViewDimensionSet
Definition TextureBindGroupLayoutEntry.hpp:58
TextureBindGroupLayoutEntry & setSampleType(wgpu::TextureSampleType type)
Definition TextureBindGroupLayoutEntry.hpp:36
TextureBindGroupLayoutEntry & setMultisampled(bool multisampled)
Definition TextureBindGroupLayoutEntry.hpp:50
TextureBindGroupLayoutEntry(const TextureBindGroupLayoutEntry &other)=default
TextureBindGroupLayoutEntry(const std::string &name)
Definition TextureBindGroupLayoutEntry.hpp:9
TextureBindGroupLayoutEntry & operator=(const TextureBindGroupLayoutEntry &other)=default
bool _isSampleTypeSet
Definition TextureBindGroupLayoutEntry.hpp:57
std::vector< ValidationError > validate(void) const override
Definition TextureBindGroupLayoutEntry.hpp:18
Definition DefaultSampler.hpp:6
@ Error
Definition IValidable.hpp:14