1#pragma once
2
3#include "common/aglResCommon.h"
4
5namespace agl {
6
7struct ResShaderMacroData {
8 u32 mSize;
9 u32 mNameLen;
10 u32 mValueLen;
11 // char mName[];
12};
13static_assert(sizeof(ResShaderMacroData) == 0xC, "agl::ResShaderMacroData size mismatch");
14
15class ResShaderMacro : public ResCommon<ResShaderMacroData> {
16public:
17 using ResCommon::ResCommon;
18
19 const char* getName() const { return (const char*)(ptr() + 1); }
20
21 const char* getValue() const { return getName() + ptr()->mNameLen; }
22};
23
24using ResShaderMacroArray = ResArray<ResShaderMacro>;
25
26using ResShaderMacroArrayData = ResShaderMacroArray::DataType;
27static_assert(sizeof(ResShaderMacroArrayData) == 8, "agl::ResShaderMacroArrayData size mismatch");
28
29} // namespace agl
30