sead
Loading...
Searching...
No Matches
aglShaderCompileInfo.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadBuffer.h>
4#include <container/seadPtrArray.h>
5#include <heap/seadHeap.h>
6#include <prim/seadNamable.h>
7
8namespace agl {
9
10enum ShaderType;
11
13{
14public:
21
22public:
24 virtual ~ShaderCompileInfo();
25
26 void create(s32 num_macro, s32 num_variation, sead::Heap* heap);
27
29 {
30 mMacroName.clear();
31 mMacroValue.clear();
32 }
33
34 void pushBackMacro(const char* name, const char* value)
35 {
36 mMacroName.pushBack(name);
37 mMacroValue.pushBack(value);
38 }
39
40 void clearVariation();
41 void pushBackVariation(const char* name, const char* value);
42
43 void setSourceText(const sead::SafeString* text)
44 {
45 mSourceText = text;
46 }
47
49 {
50 return mSourceText;
51 }
52
54 {
55 mRawText = text;
56 }
57
59 {
60 return mRawText;
61 }
62
63 void calcCompileSource(ShaderType type, sead::BufferedSafeString* p_buffer, Target target, bool) const;
64
65 void destroy();
66
67private:
70 sead::PtrArray<const char> mMacroName;
74 sead::Buffer<u8> _40; // No idea buffer of what
75 sead::Buffer<u8> _48; // ^^
76};
77static_assert(sizeof(ShaderCompileInfo) == 0x54, "agl::ShaderCompileInfo size mismatch");
78
79}
Definition aglShaderCompileInfo.h:13
sead::BufferedSafeString * mRawText
Definition aglShaderCompileInfo.h:69
void destroy()
Definition aglShaderCompileInfo.cpp:134
void calcCompileSource(ShaderType type, sead::BufferedSafeString *p_buffer, Target target, bool) const
Definition aglShaderCompileInfo.cpp:54
Target
Definition aglShaderCompileInfo.h:16
@ cTarget_Num
Definition aglShaderCompileInfo.h:19
@ cTarget_GL
Definition aglShaderCompileInfo.h:17
@ cTarget_GX2
Definition aglShaderCompileInfo.h:18
virtual ~ShaderCompileInfo()
Definition aglShaderCompileInfo.cpp:22
void setRawText(sead::BufferedSafeString *text)
Definition aglShaderCompileInfo.h:53
void clearVariation()
Definition aglShaderCompileInfo.cpp:42
void pushBackMacro(const char *name, const char *value)
Definition aglShaderCompileInfo.h:34
sead::PtrArray< const char > mMacroName
Definition aglShaderCompileInfo.h:70
sead::PtrArray< const char > mMacroValue
Definition aglShaderCompileInfo.h:71
ShaderCompileInfo()
Definition aglShaderCompileInfo.cpp:9
void clearMacro()
Definition aglShaderCompileInfo.h:28
sead::PtrArray< const char > mVariationName
Definition aglShaderCompileInfo.h:72
const sead::SafeString * getSourceText() const
Definition aglShaderCompileInfo.h:48
void setSourceText(const sead::SafeString *text)
Definition aglShaderCompileInfo.h:43
sead::Buffer< u8 > _48
Definition aglShaderCompileInfo.h:75
sead::BufferedSafeString * getRawText() const
Definition aglShaderCompileInfo.h:58
sead::Buffer< u8 > _40
Definition aglShaderCompileInfo.h:74
const sead::SafeString * mSourceText
Definition aglShaderCompileInfo.h:68
void pushBackVariation(const char *name, const char *value)
Definition aglShaderCompileInfo.cpp:48
void create(s32 num_macro, s32 num_variation, sead::Heap *heap)
Definition aglShaderCompileInfo.cpp:27
sead::PtrArray< const char > mVariationValue
Definition aglShaderCompileInfo.h:73
Definition seadHeap.h:23
Definition seadNamable.h:9
Definition seadPtrArray.h:111
Definition aglDisplayList.cpp:5
ShaderType
Definition aglShaderEnum.h:10
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
BufferedSafeStringBase< char > BufferedSafeString
Definition seadSafeString.h:411