LkEngine 0.1.2
 
Loading...
Searching...
No Matches
UniformBuffer.h
1#pragma once
2
4
6#include "LkEngine/Core/LObject/ObjectPtr.h"
7
8//#include "LkEngine/Renderer/Shader.h"
9
10
11namespace LkEngine {
12
13 class LShader;
14
15 class LUniformBuffer : public LObject
16 {
17 public:
18 virtual ~LUniformBuffer() = default;
19
23 virtual void SetData(const void* InData, const uint64_t InSize, const uint64_t InOffset = 0) = 0;
24
29 virtual void RT_SetData(const void* InData, const uint64_t InSize, const uint64_t InOffset = 0) = 0;
30
34 virtual void SetBinding(const TObjectPtr<LShader> Shader,
35 std::string_view UniformName,
36 const uint32_t BlockIndex) = 0;
37
41 static TObjectPtr<LUniformBuffer> Create(const uint64_t Size);
42
43 private:
45 };
46
47}
Core header.
LObject implementation.
Definition Object.h:46
Definition UniformBuffer.h:16
virtual void SetData(const void *InData, const uint64_t InSize, const uint64_t InOffset=0)=0
Set buffer data.
virtual void SetBinding(const TObjectPtr< LShader > Shader, std::string_view UniformName, const uint32_t BlockIndex)=0
Set binding.
static TObjectPtr< LUniformBuffer > Create(const uint64_t Size)
Factory function.
Definition UniformBuffer.cpp:12
virtual void RT_SetData(const void *InData, const uint64_t InSize, const uint64_t InOffset=0)=0
Set buffer data.
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
Definition Asset.h:11