MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / createConstantBuffers

Method createConstantBuffers

Source/Falcor/Core/API/ParameterBlock.cpp:185–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185void ParameterBlock::createConstantBuffers(const ShaderVar& var)
186{
187 auto pType = var.getType();
188 if (pType->getResourceRangeCount() == 0)
189 return;
190
191 switch (pType->getKind())
192 {
193 case ReflectionType::Kind::Struct:
194 {
195 auto pStructType = pType->asStructType();
196 uint32_t memberCount = pStructType->getMemberCount();
197 for (uint32_t i = 0; i < memberCount; ++i)
198 createConstantBuffers(var[i]);
199 }
200 break;
201 case ReflectionType::Kind::Resource:
202 {
203 auto pResourceType = pType->asResourceType();
204 switch (pResourceType->getType())
205 {
206 case ReflectionResourceType::Type::ConstantBuffer:
207 {
208 auto pCB = ParameterBlock::create(ref<Device>(mpDevice), pResourceType->getParameterBlockReflector());
209 var.setParameterBlock(pCB);
210 }
211 break;
212
213 default:
214 break;
215 }
216 }
217 break;
218
219 default:
220 break;
221 }
222}
223
224void ParameterBlock::prepareResource(CopyContext* pContext, Resource* pResource, bool isUav)
225{

Callers

nothing calls this directly

Calls 5

asStructTypeMethod · 0.80
asResourceTypeMethod · 0.80
createFunction · 0.70
getTypeMethod · 0.45
setParameterBlockMethod · 0.45

Tested by

no test coverage detected