Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
SamplerBindGroupLayoutEntry.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "utils/webgpu.hpp"
5
6namespace Graphic::Utils {
7class SamplerBindGroupLayoutEntry : public ABindGroupLayoutEntry<SamplerBindGroupLayoutEntry> {
8 public:
10 {
11 this->getEntry().sampler.type = wgpu::SamplerBindingType::Undefined;
12 }
13 ~SamplerBindGroupLayoutEntry() override = default;
14
17
18 std::vector<ValidationError> validate(void) const override
19 {
20 std::vector<ValidationError> errors = ABindGroupLayoutEntry::validate();
21 if (!this->_isSamplerTypeSet)
22 {
23 errors.emplace_back("Sampler type is not set",
24 fmt::format("SamplerBindGroupLayoutEntry({})", this->getName()),
26 }
27 return errors;
28 }
29
30 inline SamplerBindGroupLayoutEntry &setType(const wgpu::SamplerBindingType &type)
31 {
32 this->getEntry().sampler.type = type;
33 this->_isSamplerTypeSet = true;
34 return *this;
35 }
36
37 private:
38 bool _isSamplerTypeSet = false;
39};
40} // 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
SamplerBindGroupLayoutEntry(const std::string &name)
Definition SamplerBindGroupLayoutEntry.hpp:9
bool _isSamplerTypeSet
Definition SamplerBindGroupLayoutEntry.hpp:38
std::vector< ValidationError > validate(void) const override
Definition SamplerBindGroupLayoutEntry.hpp:18
SamplerBindGroupLayoutEntry & operator=(const SamplerBindGroupLayoutEntry &other)=default
SamplerBindGroupLayoutEntry & setType(const wgpu::SamplerBindingType &type)
Definition SamplerBindGroupLayoutEntry.hpp:30
SamplerBindGroupLayoutEntry(const SamplerBindGroupLayoutEntry &other)=default
Definition DefaultSampler.hpp:6
@ Error
Definition IValidable.hpp:14