sead
Loading...
Searching...
No Matches
aglShaderHolder.h
Go to the documentation of this file.
1#pragma once
2
3#include <common/aglShaderProgramArchive.h>
4#include <container/seadPtrArray.h>
5#include <container/seadSafeArray.h>
6#include <heap/seadDisposer.h>
7#include <basis/seadAssert.h>
8
9namespace sead {
10
11class ArchiveRes;
12
13}
14
15namespace agl { namespace detail {
16
17class ShaderHolder : public sead::hostio::Node
18{
20
21public:
23 {
24 cShader_DevUtil = 0, // Archive = agl_common
25 cShader_DepthVisualize, // Archive = agl_common
26 cShader_Texture, // Archive = agl_common
27 cShader_Reduce2, // Archive = agl_common
28 cShader_Reduce4, // Archive = agl_common
29 cShader_Reduce8, // Archive = agl_common
30 cShader_Reduce16, // Archive = agl_common
31 cShader_ColorCorrection, // Archive = agl_technique
32 cShader_ColorCorrectionMap, // Archive = agl_technique
33 cShader_XluSnap, // Archive = agl_common
34 cShader_ImageFilterGaussian, // Archive = agl_common
35 cShader_ImageFilterCubic, // Archive = agl_common
36 cShader_ImageFilterBlur, // Archive = agl_common
37 cShader_TextureMultColor, // Archive = agl_common
38 cShader_Red, // Archive = agl_common
39 cShader_Green, // Archive = agl_common
40 cShader_Blue, // Archive = agl_common
41 cShader_Alpha, // Archive = agl_common
42 cShader_DepthRaw, // Archive = agl_common
43 cShader_DepthLinear, // Archive = agl_common
44 cShader_Texture2DArray, // Archive = agl_common
45 cShader_Texture3D, // Archive = agl_common
46 cShader_TextureCubeMap, // Archive = agl_common
47 cShader_TextureCubeMapArray, // Archive = agl_common
48 cShader_TextureTexCoord, // Archive = agl_common
49 cShader_TextureMultiSample1x, // Archive = agl_common
50 cShader_TextureMultiSample2x, // Archive = agl_common
51 cShader_TextureMultiSample4x, // Archive = agl_common
52 cShader_TextureMultiSample8x, // Archive = agl_common
53 cShader_AlphaModify, // Archive = agl_common
54 cShader_TextureColorDrift, // Archive = agl_common
55 cShader_ColorQuad, // Archive = agl_common
56 cShader_TopBottomColor, // Archive = agl_common
57 cShader_DrawImm, // Archive = agl_common
58 cShader_DrawFan, // Archive = agl_common
59 cShader_FrameBufferFlipY, // Archive = agl_common
60 cShader_FrameBufferNoFlip, // Archive = agl_common
61 cShader_BloomMask, // Archive = agl_technique
62 cShader_BloomGaussian, // Archive = agl_technique
63 cShader_BloomCompose, // Archive = agl_technique
64 cShader_HDRCompose, // Archive = agl_technique
65 cShader_DOFNearMask, // Archive = agl_technique
66 cShader_DOFMipmap, // Archive = agl_technique
67 cShader_DOFDepthMask, // Archive = agl_technique
68 cShader_DOFFinal, // Archive = agl_technique
69 cShader_DOFVignetting, // Archive = agl_technique
70 cShader_FXAA, // Archive = agl_technique
71 cShader_FXAAColorOnly, // Archive = agl_technique
72 cShader_FXAALuma, // Archive = agl_technique
73 cShader_FXAAReprojection, // Archive = agl_technique
74 cShader_FilterAAReprojection, // Archive = agl_technique
75 cShader_ReduceAA, // Archive = agl_technique
76 cShader_Lightmap, // Archive = agl_technique
77 cShader_LightmapClear, // Archive = agl_technique
78 cShader_LightPrePassPointLight, // Archive = agl_technique
79 cShader_LightPrePassSpotLight, // Archive = agl_technique
80 cShader_LightPrePassProjLight, // Archive = agl_technique
82 cShader_LightPrePassTBR, // Archive = agl_technique
83 cShader_LightPrePassTBRSp, // Archive = agl_technique
84 cShader_LightPrePassQuad, // Archive = agl_technique
85 cShader_LightPrePassDev, // Archive = agl_technique
86 cShader_MultiFilterReduce, // Archive = agl_technique
87 cShader_MultiFilterExpand, // Archive = agl_technique
88 cShader_StaticDepthShadow, // Archive = agl_technique
89 cShader_CubeMapGaussian, // Archive = agl_common
90 cShader_CubeMapColorCorrection, // Archive = agl_common
91 cShader_CubeMapHeadExtract, // Archive = agl_common
92 cShader_CubeMapConvoluteFirst, // Archive = agl_common
93 cShader_CubeMapConvoluteOther, // Archive = agl_common
94 cShader_CubeMapHDRCompose, // Archive = agl_common
95 cShader_CubeMapDrawIlluminant, // Archive = agl_common
96 cShader_NV12Decode, // Archive = agl_common
97 cShader_ScreenPick, // Archive = agl_technique
98 cShader_DebugCubeMap, // Archive = agl_common
99 cShader_DepthShadowDebug, // Archive = agl_technique
100 cShader_VSM, // Archive = agl_technique
101 cShader_SSAOBuffer, // Archive = agl_technique
102 cShader_SSAOBlur, // Archive = agl_technique
103 cShader_SSAOReduce, // Archive = agl_technique
104 cShader_SSAOMask, // Archive = agl_technique
105 cShader_OcclusionQuery, // Archive = agl_technique
106 cShader_OcclusionRendererClearBuf, // Archive = agl_technique
107 cShader_OcclusionRenderer, // Archive = agl_technique
108 cShader_OccludedEffectLensFlare, // Archive = agl_technique
109 cShader_TextureCompress, // Archive = agl_common
110 cShader_ShadowMask, // Archive = agl_technique
111 cShader_RadialBlur, // Archive = agl_technique
112 cShader_RadialBlurCompose, // Archive = agl_technique
113 cShader_DebugPrimitive, // Archive = agl_common
114 cShader_DebugShapeInstanced, // Archive = agl_common
115 cShader_DebugPointInstanced, // Archive = agl_common
116 cShader_DebugLineInstanced, // Archive = agl_common
117 cShader_DebugTriangleInstanced, // Archive = agl_common
119 };
120 static_assert(cShader_Num == 94);
121
129 static_assert(cArchiveType_Num == 3);
130
131public:
132 ShaderHolder();
133 virtual ~ShaderHolder();
134
135 void setCreateDisplayLists(bool create)
136 {
137 mCreateDisplayLists = create;
138 }
139
140 void initialize(sead::ArchiveRes* p_arc, sead::Heap* heap);
141
143 {
144 SEAD_ASSERT(mProgram[ shader ] != nullptr);
145 return *mProgram[shader];
146 }
147
149 {
150 return mProgramArchive[archive];
151 }
152
153private:
157};
158static_assert(sizeof(ShaderHolder) == 0x280, "agl::detail::ShaderHolder size mismatch");
159
160} }
Definition aglShaderProgramArchive.h:17
Definition aglShaderProgram.h:16
Definition aglShaderHolder.h:18
bool mCreateDisplayLists
Definition aglShaderHolder.h:156
virtual ~ShaderHolder()
Definition aglShaderHolder.cpp:18
sead::UnsafeArray< ShaderProgramArchive, cArchiveType_Num > mProgramArchive
Definition aglShaderHolder.h:155
sead::FixedPtrArray< ShaderProgram, cShader_Num > mProgram
Definition aglShaderHolder.h:154
void setCreateDisplayLists(bool create)
Definition aglShaderHolder.h:135
ShaderProgram & getShader(ShaderType shader)
Definition aglShaderHolder.h:142
void initialize(sead::ArchiveRes *p_arc, sead::Heap *heap)
Definition aglShaderHolder.cpp:22
ShaderHolder()
Definition aglShaderHolder.cpp:13
ArchiveType
Definition aglShaderHolder.h:123
@ cArchiveType_SimpleModel
Definition aglShaderHolder.h:126
@ cArchiveType_Technique
Definition aglShaderHolder.h:125
@ cArchiveType_Num
Definition aglShaderHolder.h:127
@ cArchiveType_Common
Definition aglShaderHolder.h:124
ShaderType
Definition aglShaderHolder.h:23
@ cShader_ImageFilterCubic
Definition aglShaderHolder.h:35
@ cShader_OcclusionQuery
Definition aglShaderHolder.h:105
@ cShader_CubeMapConvoluteOther
Definition aglShaderHolder.h:93
@ cShader_OcclusionRenderer
Definition aglShaderHolder.h:107
@ cShader_Num
Definition aglShaderHolder.h:118
@ cShader_TextureTexCoord
Definition aglShaderHolder.h:48
@ cShader_FXAAReprojection
Definition aglShaderHolder.h:73
@ cShader_CubeMapHDRCompose
Definition aglShaderHolder.h:94
@ cShader_DOFVignetting
Definition aglShaderHolder.h:69
@ cShader_LightPrePassDoubleSamePosWithBack
Definition aglShaderHolder.h:81
@ cShader_Alpha
Definition aglShaderHolder.h:41
@ cShader_FXAAColorOnly
Definition aglShaderHolder.h:71
@ cShader_CubeMapHeadExtract
Definition aglShaderHolder.h:91
@ cShader_TextureCubeMap
Definition aglShaderHolder.h:46
@ cShader_BloomGaussian
Definition aglShaderHolder.h:62
@ cShader_DrawImm
Definition aglShaderHolder.h:57
@ cShader_LightPrePassQuad
Definition aglShaderHolder.h:84
@ cShader_LightmapClear
Definition aglShaderHolder.h:77
@ cShader_Texture
Definition aglShaderHolder.h:26
@ cShader_MultiFilterReduce
Definition aglShaderHolder.h:86
@ cShader_Blue
Definition aglShaderHolder.h:40
@ cShader_DepthShadowDebug
Definition aglShaderHolder.h:99
@ cShader_BloomCompose
Definition aglShaderHolder.h:63
@ cShader_CubeMapConvoluteFirst
Definition aglShaderHolder.h:92
@ cShader_FrameBufferFlipY
Definition aglShaderHolder.h:59
@ cShader_OcclusionRendererClearBuf
Definition aglShaderHolder.h:106
@ cShader_MultiFilterExpand
Definition aglShaderHolder.h:87
@ cShader_Reduce8
Definition aglShaderHolder.h:29
@ cShader_DevUtil
Definition aglShaderHolder.h:24
@ cShader_DOFNearMask
Definition aglShaderHolder.h:65
@ cShader_DOFFinal
Definition aglShaderHolder.h:68
@ cShader_Green
Definition aglShaderHolder.h:39
@ cShader_FilterAAReprojection
Definition aglShaderHolder.h:74
@ cShader_FrameBufferNoFlip
Definition aglShaderHolder.h:60
@ cShader_TextureMultiSample4x
Definition aglShaderHolder.h:51
@ cShader_LightPrePassSpotLight
Definition aglShaderHolder.h:79
@ cShader_DepthVisualize
Definition aglShaderHolder.h:25
@ cShader_LightPrePassTBRSp
Definition aglShaderHolder.h:83
@ cShader_DebugTriangleInstanced
Definition aglShaderHolder.h:117
@ cShader_DepthLinear
Definition aglShaderHolder.h:43
@ cShader_LightPrePassProjLight
Definition aglShaderHolder.h:80
@ cShader_SSAOReduce
Definition aglShaderHolder.h:103
@ cShader_LightPrePassPointLight
Definition aglShaderHolder.h:78
@ cShader_SSAOBuffer
Definition aglShaderHolder.h:101
@ cShader_TextureMultiSample2x
Definition aglShaderHolder.h:50
@ cShader_RadialBlur
Definition aglShaderHolder.h:111
@ cShader_ImageFilterGaussian
Definition aglShaderHolder.h:34
@ cShader_ColorCorrection
Definition aglShaderHolder.h:31
@ cShader_TextureCompress
Definition aglShaderHolder.h:109
@ cShader_ReduceAA
Definition aglShaderHolder.h:75
@ cShader_LightPrePassTBR
Definition aglShaderHolder.h:82
@ cShader_Reduce4
Definition aglShaderHolder.h:28
@ cShader_DrawFan
Definition aglShaderHolder.h:58
@ cShader_StaticDepthShadow
Definition aglShaderHolder.h:88
@ cShader_NV12Decode
Definition aglShaderHolder.h:96
@ cShader_Texture3D
Definition aglShaderHolder.h:45
@ cShader_DebugPointInstanced
Definition aglShaderHolder.h:115
@ cShader_DOFMipmap
Definition aglShaderHolder.h:66
@ cShader_CubeMapColorCorrection
Definition aglShaderHolder.h:90
@ cShader_ScreenPick
Definition aglShaderHolder.h:97
@ cShader_TopBottomColor
Definition aglShaderHolder.h:56
@ cShader_RadialBlurCompose
Definition aglShaderHolder.h:112
@ cShader_Reduce2
Definition aglShaderHolder.h:27
@ cShader_DebugLineInstanced
Definition aglShaderHolder.h:116
@ cShader_VSM
Definition aglShaderHolder.h:100
@ cShader_AlphaModify
Definition aglShaderHolder.h:53
@ cShader_Red
Definition aglShaderHolder.h:38
@ cShader_DebugShapeInstanced
Definition aglShaderHolder.h:114
@ cShader_SSAOBlur
Definition aglShaderHolder.h:102
@ cShader_ColorQuad
Definition aglShaderHolder.h:55
@ cShader_TextureMultColor
Definition aglShaderHolder.h:37
@ cShader_ImageFilterBlur
Definition aglShaderHolder.h:36
@ cShader_FXAALuma
Definition aglShaderHolder.h:72
@ cShader_TextureCubeMapArray
Definition aglShaderHolder.h:47
@ cShader_Lightmap
Definition aglShaderHolder.h:76
@ cShader_TextureColorDrift
Definition aglShaderHolder.h:54
@ cShader_DepthRaw
Definition aglShaderHolder.h:42
@ cShader_BloomMask
Definition aglShaderHolder.h:61
@ cShader_SSAOMask
Definition aglShaderHolder.h:104
@ cShader_DebugCubeMap
Definition aglShaderHolder.h:98
@ cShader_XluSnap
Definition aglShaderHolder.h:33
@ cShader_Reduce16
Definition aglShaderHolder.h:30
@ cShader_CubeMapDrawIlluminant
Definition aglShaderHolder.h:95
@ cShader_Texture2DArray
Definition aglShaderHolder.h:44
@ cShader_OccludedEffectLensFlare
Definition aglShaderHolder.h:108
@ cShader_ShadowMask
Definition aglShaderHolder.h:110
@ cShader_FXAA
Definition aglShaderHolder.h:70
@ cShader_DebugPrimitive
Definition aglShaderHolder.h:113
@ cShader_TextureMultiSample8x
Definition aglShaderHolder.h:52
@ cShader_ColorCorrectionMap
Definition aglShaderHolder.h:32
@ cShader_HDRCompose
Definition aglShaderHolder.h:64
@ cShader_TextureMultiSample1x
Definition aglShaderHolder.h:49
@ cShader_LightPrePassDev
Definition aglShaderHolder.h:85
@ cShader_CubeMapGaussian
Definition aglShaderHolder.h:89
@ cShader_DOFDepthMask
Definition aglShaderHolder.h:67
ShaderProgramArchive & getArchive(ArchiveType archive)
Definition aglShaderHolder.h:148
Definition seadArchiveRes.h:13
Definition seadPtrArray.h:291
Definition seadHeap.h:23
Definition seadSafeArray.h:257
Definition seadHostIODummy.h:25
Definition aglPrivateResource.h:9
Definition aglDisplayList.cpp:5
Definition seadHeap.h:14
Definition seadAssert.h:44
#define SEAD_ASSERT(condition)
Definition seadAssert.h:24
#define SEAD_SINGLETON_DISPOSER(CLASS)
Definition seadDisposer.h:29