MCPcopy Create free account
hub / github.com/KhronosGroup/glslang / ProcessBlockStorage

Function ProcessBlockStorage

StandAlone/StandAlone.cpp:445–468  ·  view source on GitHub ↗

Process an optional binding base of one the forms: --argname name {uniform|buffer|push_constant}

Source from the content-addressed store, hash-verified

443// Process an optional binding base of one the forms:
444// --argname name {uniform|buffer|push_constant}
445void ProcessBlockStorage(int& argc, char**& argv, std::vector<std::pair<std::string, glslang::TBlockStorageClass>>& storage)
446{
447 if (argc < 3)
448 usage();
449
450 glslang::TBlockStorageClass blockStorage = glslang::EbsNone;
451
452 std::string strBacking(argv[2]);
453 if (strBacking == "uniform")
454 blockStorage = glslang::EbsUniform;
455 else if (strBacking == "buffer")
456 blockStorage = glslang::EbsStorageBuffer;
457 else if (strBacking == "push_constant")
458 blockStorage = glslang::EbsPushConstant;
459 else {
460 printf("%s: invalid block storage\n", strBacking.c_str());
461 usage();
462 }
463
464 storage.push_back(std::make_pair(std::string(argv[1]), blockStorage));
465
466 argc -= 2;
467 argv += 2;
468}
469
470inline bool isNonDigit(char c) {
471 // a non-digit character valid in a glsl identifier

Callers 1

ProcessArgumentsFunction · 0.85

Calls 3

usageFunction · 0.85
c_strMethod · 0.80
push_backMethod · 0.45

Tested by

no test coverage detected