Add shader package include dependency pipeline
This commit is contained in:
@@ -3007,7 +3007,11 @@ bool AssetDatabase::ImportShaderAsset(const SourceAssetRecord& sourceRecord,
|
||||
Shader* shader = static_cast<Shader*>(result.resource);
|
||||
PrecompileShaderVariants(absolutePath, *shader);
|
||||
std::vector<ArtifactDependencyRecord> dependencies;
|
||||
if (!CollectShaderDependencies(sourceRecord, dependencies)) {
|
||||
Containers::String dependencyError;
|
||||
if (!CollectShaderDependencies(sourceRecord, dependencies, &dependencyError)) {
|
||||
if (!dependencyError.Empty()) {
|
||||
SetLastErrorMessage(dependencyError);
|
||||
}
|
||||
delete shader;
|
||||
return false;
|
||||
}
|
||||
@@ -3493,14 +3497,18 @@ bool AssetDatabase::CollectMaterialDependencies(
|
||||
|
||||
bool AssetDatabase::CollectShaderDependencies(
|
||||
const SourceAssetRecord& sourceRecord,
|
||||
std::vector<AssetDatabase::ArtifactDependencyRecord>& outDependencies) const {
|
||||
std::vector<AssetDatabase::ArtifactDependencyRecord>& outDependencies,
|
||||
Containers::String* outError) const {
|
||||
outDependencies.clear();
|
||||
if (outError != nullptr) {
|
||||
outError->Clear();
|
||||
}
|
||||
|
||||
ShaderLoader loader;
|
||||
const Containers::String absolutePath =
|
||||
NormalizePathString(fs::path(m_projectRoot.CStr()) / sourceRecord.relativePath.CStr());
|
||||
Containers::Array<Containers::String> dependencyPaths;
|
||||
if (!loader.CollectSourceDependencies(absolutePath, dependencyPaths)) {
|
||||
if (!loader.CollectSourceDependencies(absolutePath, dependencyPaths, outError)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user