LkEngine 0.1.2
 
Loading...
Searching...
No Matches
ShaderResource.h
1#pragma once
2
4
5#include "LkEngine/Serialization/FileStream.h"
6
7
8namespace LkEngine {
9
11 {
12 std::string Vertex{};
13 std::string Fragment{};
14
15 bool IsValid() const
16 {
17 return ((Vertex.size() > 0) && (Fragment.size() > 0));
18 }
19 };
20
22 {
23 public:
25 LShaderResourceDeclaration(const std::string& InName,
26 uint32_t InSet,
27 uint32_t InResourceRegister,
28 uint32_t InCount)
29 : Name(InName)
30 , Set(InSet)
31 , Register(InResourceRegister)
32 , Count(InCount)
33 {
34 }
35
36 FORCEINLINE virtual const std::string& GetName() const { return Name; }
37 FORCEINLINE virtual uint32_t GetSet() const { return Set; }
38 FORCEINLINE virtual uint32_t GetRegister() const { return Register; }
39 FORCEINLINE virtual uint32_t GetCount() const { return Count; }
40
41 static void Serialize(StreamWriter* Serializer, const LShaderResourceDeclaration& Instance)
42 {
43 Serializer->WriteString(Instance.Name);
44 Serializer->WriteRaw(Instance.Set);
45 Serializer->WriteRaw(Instance.Register);
46 Serializer->WriteRaw(Instance.Count);
47 }
48
49 static void Deserialize(StreamReader* DeSerializer, LShaderResourceDeclaration& Instance)
50 {
51 DeSerializer->ReadString(Instance.Name);
52 DeSerializer->ReadRaw(Instance.Set);
53 DeSerializer->ReadRaw(Instance.Register);
54 DeSerializer->ReadRaw(Instance.Count);
55 }
56
57 private:
58 std::string Name{};
59 uint32_t Set = 0;
60 uint32_t Register = 0;
61 uint32_t Count = 0;
62 };
63
64 using ShaderResourceList = std::vector<LShaderResourceDeclaration*>;
65}
Core header.
Definition ShaderResource.h:22
Definition StreamReader.h:12
Definition StreamWriter.h:9
Definition Asset.h:11
Definition ShaderResource.h:11