41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "ShaderIR.h"
|
|
|
|
#include <string>
|
|
#include <unordered_set>
|
|
#include <vector>
|
|
|
|
namespace XCEngine {
|
|
namespace Resources {
|
|
|
|
void AppendAuthoringSourceBlock(
|
|
Containers::String& target,
|
|
const Containers::String& sourceBlock);
|
|
|
|
void CollectQuotedIncludeDependencyPaths(
|
|
const Containers::String& sourcePath,
|
|
const Containers::String& sourceText,
|
|
std::unordered_set<std::string>& seenPaths,
|
|
Containers::Array<Containers::String>& outDependencies);
|
|
|
|
Containers::String StripShaderAuthoringPragmas(const Containers::String& sourceText);
|
|
|
|
std::vector<ShaderKeywordSet> BuildShaderKeywordVariantSets(
|
|
const Containers::Array<ShaderKeywordDeclaration>& declarations);
|
|
|
|
Containers::String BuildKeywordVariantSource(
|
|
const Containers::String& baseSource,
|
|
const ShaderKeywordSet& requiredKeywords);
|
|
|
|
bool LooksLikeShaderAuthoring(const std::string& sourceText);
|
|
|
|
bool ParseShaderAuthoring(
|
|
const Containers::String& path,
|
|
const std::string& sourceText,
|
|
ShaderIR& outDesc,
|
|
Containers::String* outError);
|
|
|
|
} // namespace Resources
|
|
} // namespace XCEngine
|