GLSL to SPIR-V의 런타임 컴파일 중인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;
}
Reference
이 문제에 관하여(GLSL to SPIR-V의 런타임 컴파일 중인include directive를 잘 몰라서 직접 바꿨습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nishiki/articles/88ceefdac97baf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)