7#include <glm/gtc/type_ptr.hpp>
12 static inline std::string
prefix =
"MaterialGPUBuffer_";
101 bufferDesc.usage = wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::Uniform;
105 return context.
GetDevice()->createBuffer(bufferDesc);
std::optional< Engine::Entity > _entity
Definition MaterialGPUBuffer.hpp:116
MaterialGPUBuffer(Engine::Entity entity)
Definition MaterialGPUBuffer.hpp:33
static std::string prefix
Definition MaterialGPUBuffer.hpp:12
wgpu::Buffer _buffer
Definition MaterialGPUBuffer.hpp:114
std::string_view GetDebugName() const
Definition MaterialGPUBuffer.hpp:87
wgpu::Buffer _CreateBuffer(const Graphic::Resource::DeviceContext &context)
Definition MaterialGPUBuffer.hpp:98
const wgpu::Buffer & GetBuffer() const override
Definition MaterialGPUBuffer.hpp:85
void _UpdateBuffer(const Object::Component::Material &materialComponent, const Graphic::Resource::Context &context)
Definition MaterialGPUBuffer.hpp:108
MaterialGPUBuffer(void)
Definition MaterialGPUBuffer.hpp:35
bool _isCreated
Definition MaterialGPUBuffer.hpp:115
void SetMaterial(const Engine::Core &core, const Object::Component::Material &material)
Definition MaterialGPUBuffer.hpp:74
void Destroy()
Definition MaterialGPUBuffer.hpp:47
void _UpdateDebugName()
Definition MaterialGPUBuffer.hpp:90
std::string _debugName
Definition MaterialGPUBuffer.hpp:117
void Update(Engine::Core &core) override
Definition MaterialGPUBuffer.hpp:57
~MaterialGPUBuffer() override
Definition MaterialGPUBuffer.hpp:37
bool IsCreated(Engine::Core &core) const override
Definition MaterialGPUBuffer.hpp:56
void Destroy(Engine::Core &core) override
Definition MaterialGPUBuffer.hpp:45
void Create(Engine::Core &core) override
Definition MaterialGPUBuffer.hpp:38
The core is the place where all the data of the engine is stored. It contains the registry (entities)...
Definition Core.hpp:33
TResource & GetResource()
Get a reference of a resource.
Definition Core.inl:14
Wrapper class providing a convenient interface for entity manipulation with the Core....
Definition Entity.hpp:20
Definition UpdateBufferError.hpp:7
Definition AGPUBuffer.hpp:7
std::optional< wgpu::Queue > queue
Definition Context.hpp:44
Definition AmbientLight.cpp:6
constexpr DefaultFlag Default
Definition webgpu.hpp:78
StringView(const std::string_view &cpp)
Definition webgpu.hpp:618
Definition MaterialGPUBuffer.hpp:13
glm::vec4 transmittance
Definition MaterialGPUBuffer.hpp:17
glm::vec4 specular
Definition MaterialGPUBuffer.hpp:16
glm::vec4 emission
Definition MaterialGPUBuffer.hpp:18
std::array< float, 3 > _padding
Definition MaterialGPUBuffer.hpp:19
glm::vec4 diffuse
Definition MaterialGPUBuffer.hpp:15
static uint32_t GPUSize()
Definition MaterialGPUBuffer.hpp:30
MaterialTransfer(const Object::Component::Material &material)
Definition MaterialGPUBuffer.hpp:22
float shininess
Definition MaterialGPUBuffer.hpp:20
static uint32_t CPUSize()
Definition MaterialGPUBuffer.hpp:29
glm::vec4 ambient
Definition MaterialGPUBuffer.hpp:14
Definition DeviceContext.hpp:7
auto & GetDevice()
Definition DeviceContext.hpp:13
Material structure.
Definition Material.hpp:41