GLSL to SPIR-V의 런타임 컴파일 중인include directive를 잘 몰라서 직접 바꿨습니다.

4272 단어 C++glsltech
GLSL to SPR-V 실행 시간 컴파일
  • glslang
  • shaderc
  • 의 두 가지 시도가 있었지만, include directive를 포함하면 제대로 조정할 수 없습니다.누가 나에게 정확한 조작 방법에 대한 해설을 줄 수 있겠는가...

    바꾸다


    어쨌든 이번에는 컴파일하기 전에include directive를 교체했습니다.
    코드는 다음과 같습니다.사용std::regex,std::string::replace 등 모든 것을 간단하게 순환처리#include.
    std::string include(const std::string& filepath, const std::string& sourceText)
    {
        using std::filesystem::path;
        path dir = path{ filepath }.parent_path();
    
        std::string included = sourceText;
        std::regex regex{ "#include \"(.*)\"" };
        std::smatch results;
        while (std::regex_search(included, results, regex)) {
            path includePath = dir / results[1].str();
            std::string includeText = ReadFile(includePath.string());
            included.replace(results.position(), results.length(), includeText);
        }
        return included;
    }
    

    좋은 웹페이지 즐겨찾기