sead
Loading...
Searching...
No Matches
aglResShaderSymbol.h
Go to the documentation of this file.
1#pragma once
2
3#include <common/aglResCommon.h>
4#include <common/aglShaderEnum.h>
5#include <prim/seadSafeString.h>
6
7namespace agl {
8
19static_assert(sizeof(ResShaderSymbolData) == 0x18, "agl::ResShaderSymbolData size mismatch");
20
22{
23 AGL_RES_COMMON(ResShaderSymbol)
24
25public:
26 const char* getName() const
27 {
28 const DataType* const data = ptr();
29 return (const char*)(data + 1);
30 }
31
32 const char* getID() const
33 {
34 const DataType* const data = ptr();
35 return (const char*)((uintptr_t)(data + 1) + data->mNameLen);
36 }
37
38 void* getDefaultValue() const
39 {
40 const DataType* const data = ptr();
41 return (void*)((uintptr_t)(data + 1) + data->mNameLen + data->mIDLen);
42 }
43
45 {
46 const DataType* const data = ptr();
47 return (const u8*)((uintptr_t)(data + 1) + data->mNameLen + data->mIDLen + data->mDefaultValueSize);
48 }
49
50 bool isVariationEnable(s32 index) const
51 {
52 return getVariationEnableArray()[index];
53 }
54};
55
57{
58 AGL_RES_ARRAY(ResShaderSymbolArray)
59
60public:
62};
63
65static_assert(sizeof(ResShaderSymbolArrayData) == 8, "agl::ResShaderSymbolArrayData size mismatch");
66
67}
#define AGL_RES_ARRAY(class_name)
Definition aglResCommon.h:234
#define AGL_RES_COMMON(class_name)
Definition aglResCommon.h:76
Definition aglResShaderSymbol.h:57
ResShaderSymbol searchResShaderSymbolByID(const sead::SafeString &id) const
Definition aglResShaderArchive.cpp:213
Definition aglResShaderSymbol.h:22
const char * getName() const
Definition aglResShaderSymbol.h:26
void * getDefaultValue() const
Definition aglResShaderSymbol.h:38
const char * getID() const
Definition aglResShaderSymbol.h:32
const u8 * getVariationEnableArray() const
Definition aglResShaderSymbol.h:44
bool isVariationEnable(s32 index) const
Definition aglResShaderSymbol.h:50
Definition aglDisplayList.cpp:5
ResShaderSymbolArray::DataType ResShaderSymbolArrayData
Definition aglResShaderSymbol.h:64
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
Definition aglResShaderSymbol.h:10
u32 mDefaultValueSize
Definition aglResShaderSymbol.h:15
u32 mVariationNum
Definition aglResShaderSymbol.h:16
s32 mOffset
Definition aglResShaderSymbol.h:12
u32 mNameLen
Definition aglResShaderSymbol.h:13
u32 mSize
Definition aglResShaderSymbol.h:11
u32 mIDLen
Definition aglResShaderSymbol.h:14