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]; } } } }
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]; } } } }
int main(int argc, char *argv[]) { int ch; char *fn; /* Report stack usage at end if compile option is set */ __REPORT_STACK(); /* Parse the command-line options */ while ((ch = getopt(argc, argv, "bc")) != -1) switch (ch) { case 'c': cflag = 1; break; case 'b': bflag = 1; break; case '?': default: usage(); } argc -= optind; argv = argv + optind; if (!*argv) usage(); else { /* Start up the resource manager */ ResourceStartUp(userid()); /* Parse the command-line filenames */ while (*argv) { fn = *argv++; ReadResources(fn); if (*argv && !bflag) (void)printf("\n"); } /* Shut down the resource manager */ /* (which closes open resource files) */ ResourceShutDown(); } exit(rval); }