void LoadShaderInfo(const uint32_t ui32MajorVersion, const uint32_t ui32MinorVersion, const ReflectionChunks* psChunks, ShaderInfo* psInfo) { const uint32_t* pui32Inputs = psChunks->pui32Inputs; const uint32_t* pui32Inputs11 = psChunks->pui32Inputs11; const uint32_t* pui32Resources = psChunks->pui32Resources; const uint32_t* pui32Interfaces = psChunks->pui32Interfaces; const uint32_t* pui32Outputs = psChunks->pui32Outputs; const uint32_t* pui32Outputs11 = psChunks->pui32Outputs11; const uint32_t* pui32OutputsWithStreams = psChunks->pui32OutputsWithStreams; const uint32_t* pui32PatchConstants = psChunks->pui32PatchConstants; psInfo->eTessOutPrim = TESSELLATOR_OUTPUT_UNDEFINED; psInfo->eTessPartitioning = TESSELLATOR_PARTITIONING_UNDEFINED; psInfo->ui32MajorVersion = ui32MajorVersion; psInfo->ui32MinorVersion = ui32MinorVersion; if(pui32Inputs) ReadInputSignatures(pui32Inputs, psInfo, 0); if(pui32Inputs11) ReadInputSignatures(pui32Inputs11, psInfo, 1); if(pui32Resources) ReadResources(pui32Resources, psInfo); if(pui32Interfaces) ReadInterfaces(pui32Interfaces, psInfo); if(pui32Outputs) ReadOutputSignatures(pui32Outputs, psInfo, 0, 0); if(pui32Outputs11) ReadOutputSignatures(pui32Outputs11, psInfo, 1, 1); if(pui32OutputsWithStreams) ReadOutputSignatures(pui32OutputsWithStreams, psInfo, 0, 1); if(pui32PatchConstants) ReadPatchConstantSignatures(pui32PatchConstants, psInfo, 0, 0); { uint32_t i; for(i=0; i<psInfo->ui32NumConstantBuffers; ++i) { bstring cbufName = bfromcstr(&psInfo->psConstantBuffers[i].Name[0]); bstring cbufThisPointer = bfromcstr("$ThisPointer"); if(bstrcmp(cbufName, cbufThisPointer) == 0) { psInfo->psThisPointerConstBuffer = &psInfo->psConstantBuffers[i]; } } } }
void LoadShaderInfo(const uint32_t ui32MajorVersion, const uint32_t ui32MinorVersion, const uint32_t* pui32Inputs, const uint32_t* pui32Resources, const uint32_t* pui32Interfaces, ShaderInfo* psInfo) { psInfo->eTessOutPrim = TESSELLATOR_OUTPUT_UNDEFINED; psInfo->eTessPartitioning = TESSELLATOR_PARTITIONING_UNDEFINED; psInfo->ui32MajorVersion = ui32MajorVersion; psInfo->ui32MinorVersion = ui32MinorVersion; if(pui32Inputs) ReadInputSignatures(pui32Inputs, psInfo); if(pui32Resources) ReadResources(pui32Resources, psInfo); if(pui32Interfaces) ReadInterfaces(pui32Interfaces, psInfo); { uint32_t i; for(i=0; i<psInfo->ui32NumConstantBuffers;++i) { bstring cbufName = bfromcstr(&psInfo->psConstantBuffers[i].Name[0]); bstring cbufThisPointer = bfromcstr("$ThisPointer"); if(bstrcmp(cbufName, cbufThisPointer) == 0) { psInfo->psThisPointerConstBuffer = &psInfo->psConstantBuffers[i]; } } } }