3#include <common/aglResShaderArchive.h>
4#include <common/aglResShaderSource.h>
5#include <common/aglShaderCompileInfo.h>
6#include <common/aglShaderProgram.h>
7#include <container/seadBuffer.h>
8#include <container/seadSafeArray.h>
9#include <heap/seadDisposer.h>
10#include <hostio/seadHostIODummy.h>
11#include <prim/seadBitFlag.h>
12#include <prim/seadSafeString.h>
35 static_assert(
sizeof(
ShaderCompileInfoEx) == 0x58,
"agl::ShaderProgramArchive::ShaderCompileInfoEx size mismatch");
57 static_assert(
sizeof(
ShaderProgramEx) == 0x124,
"agl::ShaderProgramArchive::ShaderProgramEx size mismatch");
70 return mRes.getName();
84 static_assert(
sizeof(
ShaderSource) == 0x30,
"agl::ShaderProgramArchive::ShaderSource size mismatch");
94 return mResBinary.isValid() || mResText.isValid();
99 if (mResBinary.isValid())
100 return mResBinary.getName();
102 return mResText.getName();
107 return mProgram.size();
112 return mProgram[idx];
117 return mProgram[idx];
127 s32 index = searchShaderProgramIndex(name);
128 if (index >= 0 && index < mProgram.size())
129 return mProgram.unsafeGet(index);
136 return mProgram.get(index);
Definition aglResShaderArchive.h:105
Definition aglResShaderArchive.h:39
Definition aglResShaderProgram.h:19
Definition aglResShaderSource.h:21
Definition aglShaderCompileInfo.h:13
Definition aglShaderProgramArchive.h:22
ShaderCompileInfoEx()
Definition aglShaderProgramArchive.h:24
ShaderSource * mSource
Definition aglShaderProgramArchive.h:31
ShaderCompileInfo mCompileInfo
Definition aglShaderProgramArchive.h:30
Definition aglShaderProgramArchive.h:38
ShaderProgramArchive * mpArchive
Definition aglShaderProgramArchive.h:49
void updateAnalyze()
Definition aglShaderProgramArchive.cpp:436
sead::Buffer< u32 > _110
Definition aglShaderProgramArchive.h:51
virtual ~ShaderProgramEx()
Definition aglShaderProgramArchive.cpp:374
sead::UnsafeArray< ShaderCompileInfoEx, cShaderType_Num > mCompileInfoEx
Definition aglShaderProgramArchive.h:50
ShaderProgramEx()
Definition aglShaderProgramArchive.cpp:366
void initialize(ShaderProgramArchive *archive, s32 index, ResShaderProgram res, sead::Heap *heap)
Definition aglShaderProgramArchive.cpp:378
sead::BitFlag8 mFlag
Definition aglShaderProgramArchive.h:53
void updateRawText()
Definition aglShaderProgramArchive.cpp:423
s32 mIndex
Definition aglShaderProgramArchive.h:48
s32 mVariationIndex
Definition aglShaderProgramArchive.h:52
Definition aglShaderProgramArchive.h:60
s32 mIndex
Definition aglShaderProgramArchive.h:74
ResShaderSource mRes
Definition aglShaderProgramArchive.h:77
virtual ~ShaderSource()
Definition aglShaderProgramArchive.cpp:453
sead::BitFlag32 mFlag
Definition aglShaderProgramArchive.h:75
const char * getName() const
Definition aglShaderProgramArchive.h:68
sead::HeapSafeString * mText
Definition aglShaderProgramArchive.h:78
sead::Buffer< bool > mUsedInSource
Definition aglShaderProgramArchive.h:80
void initialize(ShaderProgramArchive *archive, s32 index, ResShaderSource res, bool is_used, sead::Heap *heap)
Definition aglShaderProgramArchive.cpp:460
ShaderSource()
Definition aglShaderProgramArchive.cpp:442
void expand()
Definition aglShaderProgramArchive.cpp:480
ShaderProgramArchive * mpArchive
Definition aglShaderProgramArchive.h:76
sead::HeapSafeString * mRawText
Definition aglShaderProgramArchive.h:79
Definition aglShaderProgramArchive.h:17
const ShaderProgram & getShaderProgram(s32 idx) const
Definition aglShaderProgramArchive.h:115
sead::Buffer< const char * > mSourceName
Definition aglShaderProgramArchive.h:157
ShaderProgram & getShaderProgram(s32 idx)
Definition aglShaderProgramArchive.h:110
void updateCompileInfo()
Definition aglShaderProgramArchive.cpp:228
void destroy()
Definition aglShaderProgramArchive.cpp:91
sead::Buffer< ShaderProgram > mProgram
Definition aglShaderProgramArchive.h:149
sead::Buffer< ShaderSource > mSource
Definition aglShaderProgramArchive.h:155
ShaderProgramArchive()
Definition aglShaderProgramArchive.cpp:69
ResBinaryShaderArchive mResBinary
Definition aglShaderProgramArchive.h:147
sead::Buffer< const char * > mSourceText
Definition aglShaderProgramArchive.h:156
const ShaderProgram * searchShaderProgram(const sead::SafeString &name) const
Definition aglShaderProgramArchive.h:125
const ShaderProgram * searchShaderProgram(s32 index) const
Definition aglShaderProgramArchive.h:134
bool setUp()
Definition aglShaderProgramArchive.cpp:213
sead::BitFlag16 mFlag
Definition aglShaderProgramArchive.h:153
sead::Buffer< ShaderProgramEx > mProgramEx
Definition aglShaderProgramArchive.h:154
s32 searchShaderProgramIndex(const sead::SafeString &name) const
Definition aglShaderProgramArchive.cpp:219
u32 _20
Definition aglShaderProgramArchive.h:150
s32 getShaderProgramNum() const
Definition aglShaderProgramArchive.h:105
u32 _24
Definition aglShaderProgramArchive.h:151
u16 _28
Definition aglShaderProgramArchive.h:152
void setResShaderArchive_(ResShaderArchive res_archive, sead::Heap *heap)
Definition aglShaderProgramArchive.cpp:243
void createWithOption(ResBinaryShaderArchive res_binary_archive, ResShaderArchive res_archive, u32 flag, sead::Heap *heap)
Definition aglShaderProgramArchive.cpp:111
bool isValid() const
Definition aglShaderProgramArchive.h:92
void destroyResFile_()
Definition aglShaderProgramArchive.cpp:99
virtual ~ShaderProgramArchive()
Definition aglShaderProgramArchive.cpp:86
sead::SafeString getName() const
Definition aglShaderProgramArchive.h:97
bool setUp_(bool)
Definition aglShaderProgramArchive.cpp:340
ResShaderArchive mResText
Definition aglShaderProgramArchive.h:148
Definition aglShaderProgram.h:16
Definition seadBuffer.h:13
Definition seadDisposer.h:12
Definition seadSafeArray.h:257
Definition seadHostIODummy.h:25
Definition aglDisplayList.cpp:5
@ cShaderType_Num
Definition aglShaderEnum.h:14
Definition seadAssert.h:44
HeapSafeStringBase< char > HeapSafeString
Definition seadSafeString.h:540
BitFlag< u16 > BitFlag16
Definition seadBitFlag.h:124
BitFlag< u32 > BitFlag32
Definition seadBitFlag.h:125
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
BitFlag< u8 > BitFlag8
Definition seadBitFlag.h:123