示例#1
0
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];
            }
        }
    }
}
示例#2
0
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];
            }
        }
    }
}
示例#3
0
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);
}