本文整理汇总了C++中CPUTAssetLibraryDX11::GetConstantBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ CPUTAssetLibraryDX11::GetConstantBuffer方法的具体用法?C++ CPUTAssetLibraryDX11::GetConstantBuffer怎么用?C++ CPUTAssetLibraryDX11::GetConstantBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPUTAssetLibraryDX11
的用法示例。
在下文中一共展示了CPUTAssetLibraryDX11::GetConstantBuffer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
//-----------------------------------------------------------------------------
void CPUTMaterialDX11::BindConstantBuffers( CPUTShaderParameters ¶ms, const CPUTModel *pModel, int meshIndex )
{
CPUTConfigEntry *pValue;
CPUTAssetLibraryDX11 *pAssetLibrary = (CPUTAssetLibraryDX11*)CPUTAssetLibrary::GetAssetLibrary();
for(params.mConstantBufferCount=0; params.mConstantBufferCount < params.mConstantBufferParameterCount; params.mConstantBufferCount++)
{
cString constantBufferName;
UINT constantBufferCount = params.mConstantBufferCount;
cString tagName = params.mpConstantBufferParameterName[constantBufferCount];
{
pValue = mConfigBlock.GetValueByName(tagName);
if( !pValue->IsValid() )
{
// We didn't find our property in the file. Is it in the global config block?
pValue = mGlobalProperties.GetValueByName(tagName);
}
ASSERT( pValue->IsValid(), L"Can't find constant buffer '" + tagName + L"'." ); // TODO: fix message
constantBufferName = pValue->ValueAsString();
}
UINT bindPoint = params.mpConstantBufferParameterBindPoint[constantBufferCount];
ASSERT( bindPoint < CPUT_MATERIAL_MAX_CONSTANT_BUFFER_SLOTS, _L("Constant buffer bind point out of range.") );
const CPUTModel *pWhichModel = NULL;
int whichMesh = -1;
if( constantBufferName[0] == '@' )
{
pWhichModel = pModel;
whichMesh = meshIndex;
} else if( constantBufferName[0] == '#' )
{
pWhichModel = pModel;
}
if( !mpConstantBuffer[constantBufferCount] )
{
if( pWhichModel )
{
mpConstantBuffer[constantBufferCount] = pAssetLibrary->GetConstantBuffer( constantBufferName, pWhichModel, whichMesh );
} else
{
mpConstantBuffer[constantBufferCount] = pAssetLibrary->GetConstantBuffer( constantBufferName );
}
ASSERT( mpConstantBuffer[constantBufferCount], _L("Failed getting constant buffer ") + constantBufferName);
}
// If has constant buffer, then add to mppBindConstantBuffer
params.mppBindConstantBuffers[bindPoint] = ((CPUTBufferDX11*)mpConstantBuffer[constantBufferCount])->GetNativeBuffer();
if( params.mppBindConstantBuffers[bindPoint] ) { params.mppBindConstantBuffers[bindPoint]->AddRef();}
}
}