/* * Created by Brett on 08/02/23. * Licensed under GNU General Public License V3.0 * See LICENSE file for license detail */ #ifndef BLT_TESTS_LOADER_H #define BLT_TESTS_LOADER_H #include #include #include #include #include #include #include namespace blt::fs { std::vector getLinesFromFile(const std::string& path); std::vector recursiveShaderInclude(const std::string& path, const std::string& include_header = "#include"); static inline std::string loadShaderFile(const std::string& path) { std::stringstream stringStream; auto lines = recursiveShaderInclude(path); for (const auto& line : lines) { // now process the defines, if they exist // if (line.starts_with("#define")) { // auto defineParts = String::split(line, " "); // // create a new define statement in the defines place but with the respective value. // if (defines.contains(defineParts[1])) { // stringStream << "#define "; // stringStream << defineParts[1] << " "; // stringStream << defines[defineParts[1]]; // stringStream << "\n"; // continue; // } // } stringStream << line; stringStream << "\n"; } //tlog << stringStream.str(); return stringStream.str(); } } #endif //BLT_TESTS_LOADER_H