1#pragma once
2
3#include "common/aglResCommon.h"
4
5namespace agl {
6
7struct ResShaderVariationData {
8 u32 mSize;
9 u32 mNameLen;
10 s32 mValueNum;
11 u32 mIDLen;
12 // char name[];
13};
14static_assert(sizeof(ResShaderVariationData) == 0x10, "agl::ResShaderVariationData size mismatch");
15
16class ResShaderVariation : public ResCommon<ResShaderVariationData> {
17public:
18 using ResCommon::ResCommon;
19
20 const char* getName() const { return (const char*)(ptr() + 1); }
21
22 const char* getID() const;
23 const char* getValue(s32 index) const;
24};
25
26using ResShaderVariationArray = ResArray<ResShaderVariation>;
27
28using ResShaderVariationArrayData = ResShaderVariationArray::DataType;
29static_assert(sizeof(ResShaderVariationArrayData) == 8,
30 "agl::ResShaderVariationArrayData size mismatch");
31
32} // namespace agl
33