resources: remove legacy shader authoring path
This commit is contained in:
@@ -135,66 +135,14 @@ LoadResult BuildShaderFromIR(
|
||||
shader->AddPassKeywordDeclaration(pass.name, keywordDeclaration);
|
||||
}
|
||||
|
||||
if (!pass.backendVariants.empty()) {
|
||||
const std::vector<ShaderKeywordSet> keywordSets =
|
||||
BuildShaderKeywordVariantSets(pass.keywordDeclarations);
|
||||
for (const ShaderBackendVariantIR& backendVariant : pass.backendVariants) {
|
||||
Containers::String vertexSourceCode;
|
||||
ShaderStageVariant vertexVariant = {};
|
||||
vertexVariant.stage = ShaderType::Vertex;
|
||||
vertexVariant.backend = backendVariant.backend;
|
||||
vertexVariant.language = backendVariant.language;
|
||||
vertexVariant.entryPoint =
|
||||
backendVariant.language == ShaderLanguage::HLSL && !pass.vertexEntryPoint.Empty()
|
||||
? pass.vertexEntryPoint
|
||||
: GetDefaultEntryPoint(backendVariant.language, ShaderType::Vertex);
|
||||
vertexVariant.profile = !backendVariant.vertexProfile.Empty()
|
||||
? backendVariant.vertexProfile
|
||||
: GetDefaultProfile(backendVariant.language, backendVariant.backend, ShaderType::Vertex);
|
||||
|
||||
const Containers::String resolvedVertexPath =
|
||||
ResolveShaderDependencyPath(backendVariant.vertexSourcePath, path);
|
||||
if (!ReadShaderTextFile(resolvedVertexPath, vertexSourceCode)) {
|
||||
return LoadResult("Failed to read shader authoring vertex source: " + resolvedVertexPath);
|
||||
}
|
||||
|
||||
Containers::String fragmentSourceCode;
|
||||
ShaderStageVariant fragmentVariant = {};
|
||||
fragmentVariant.stage = ShaderType::Fragment;
|
||||
fragmentVariant.backend = backendVariant.backend;
|
||||
fragmentVariant.language = backendVariant.language;
|
||||
fragmentVariant.entryPoint =
|
||||
backendVariant.language == ShaderLanguage::HLSL && !pass.fragmentEntryPoint.Empty()
|
||||
? pass.fragmentEntryPoint
|
||||
: GetDefaultEntryPoint(backendVariant.language, ShaderType::Fragment);
|
||||
fragmentVariant.profile = !backendVariant.fragmentProfile.Empty()
|
||||
? backendVariant.fragmentProfile
|
||||
: GetDefaultProfile(backendVariant.language, backendVariant.backend, ShaderType::Fragment);
|
||||
|
||||
const Containers::String resolvedFragmentPath =
|
||||
ResolveShaderDependencyPath(backendVariant.fragmentSourcePath, path);
|
||||
if (!ReadShaderTextFile(resolvedFragmentPath, fragmentSourceCode)) {
|
||||
return LoadResult("Failed to read shader authoring fragment source: " + resolvedFragmentPath);
|
||||
}
|
||||
|
||||
for (const ShaderKeywordSet& keywordSet : keywordSets) {
|
||||
vertexVariant.requiredKeywords = keywordSet;
|
||||
vertexVariant.sourceCode = BuildKeywordVariantSource(vertexSourceCode, keywordSet);
|
||||
shader->AddPassVariant(pass.name, vertexVariant);
|
||||
|
||||
fragmentVariant.requiredKeywords = keywordSet;
|
||||
fragmentVariant.sourceCode = BuildKeywordVariantSource(fragmentSourceCode, keywordSet);
|
||||
shader->AddPassVariant(pass.name, fragmentVariant);
|
||||
}
|
||||
}
|
||||
} else if (!pass.programSource.Empty()) {
|
||||
if (!pass.programSource.Empty()) {
|
||||
Containers::String combinedSource;
|
||||
AppendAuthoringSourceBlock(combinedSource, shaderIR.sharedProgramSource);
|
||||
AppendAuthoringSourceBlock(combinedSource, subShader.sharedProgramSource);
|
||||
AppendAuthoringSourceBlock(combinedSource, pass.sharedProgramSource);
|
||||
AppendAuthoringSourceBlock(combinedSource, pass.programSource);
|
||||
const Containers::String strippedCombinedSource =
|
||||
StripUnityStyleAuthoringPragmas(combinedSource);
|
||||
StripShaderAuthoringPragmas(combinedSource);
|
||||
const std::vector<ShaderKeywordSet> keywordSets =
|
||||
BuildShaderKeywordVariantSets(pass.keywordDeclarations);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user