|
@@ -144,25 +144,6 @@ namespace OpenXRVkBuilders
|
|
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
- static AZStd::string GetInteractionProfileAssetSourcePath(const OpenXRVk::OpenXRActionSetsAsset& actionSetsAsset)
|
|
|
- {
|
|
|
- const auto& sourceUuid = actionSetsAsset.m_interactionProfilesAsset.GetId().m_guid;
|
|
|
- bool foundSource = false;
|
|
|
- AZ::Data::AssetInfo sourceAssetInfo;
|
|
|
- AZStd::string sourceWatchFolder;
|
|
|
- AzToolsFramework::AssetSystemRequestBus::BroadcastResult(foundSource, &AzToolsFramework::AssetSystemRequestBus::Events::GetSourceInfoBySourceUUID,
|
|
|
- sourceUuid, sourceAssetInfo, sourceWatchFolder);
|
|
|
- AZStd::string sourcePath;
|
|
|
- if (foundSource)
|
|
|
- {
|
|
|
- constexpr bool caseInsensitive = false;
|
|
|
- constexpr bool normalize = true;
|
|
|
- AZ::StringFunc::Path::Join(sourceWatchFolder.c_str(), sourceAssetInfo.m_relativePath.c_str(), sourcePath, caseInsensitive, normalize);
|
|
|
- }
|
|
|
- return sourcePath;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
void OpenXRAssetsBuilder::CreateActionSetsAssetJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const
|
|
|
{
|
|
|
// Make sure the InteractionProfiles asset referenced in this ActionSets asset exists. and if so,
|
|
@@ -179,10 +160,9 @@ namespace OpenXRVkBuilders
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- auto interactionProfileSourcePath = GetInteractionProfileAssetSourcePath(*actionSetsAssetPtr.get());
|
|
|
- if (interactionProfileSourcePath.empty())
|
|
|
+ if (!actionSetsAssetPtr->m_interactionProfilesAsset.GetId().IsValid())
|
|
|
{
|
|
|
- AZ_Error(LogName, false, "An ActionSets source asset requires a valid InteractionProfiles source asset.");
|
|
|
+ AZ_Error(LogName, false, "Need a valid InteractionPRofile Asset UUID to setup the job dependency.");
|
|
|
response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed;
|
|
|
return;
|
|
|
}
|
|
@@ -198,7 +178,7 @@ namespace OpenXRVkBuilders
|
|
|
jobDescriptor.SetPlatformIdentifier(platformInfo.m_identifier.c_str());
|
|
|
|
|
|
AssetBuilderSDK::SourceFileDependency sourceFileDependency{};
|
|
|
- sourceFileDependency.m_sourceFileDependencyPath = interactionProfileSourcePath;
|
|
|
+ sourceFileDependency.m_sourceFileDependencyUUID = actionSetsAssetPtr->m_interactionProfilesAsset.GetId().m_guid;
|
|
|
auto jobDependency = AssetBuilderSDK::JobDependency(InteractionProfilesAssetJobKey, platformInfo.m_identifier,
|
|
|
AssetBuilderSDK::JobDependencyType::Order, sourceFileDependency);
|
|
|
jobDescriptor.m_jobDependencyList.emplace_back(AZStd::move(jobDependency));
|
|
@@ -234,6 +214,26 @@ namespace OpenXRVkBuilders
|
|
|
}
|
|
|
|
|
|
|
|
|
+ static AZStd::string GetInteractionProfileAssetSourcePath(const OpenXRVk::OpenXRActionSetsAsset& actionSetsAsset)
|
|
|
+ {
|
|
|
+ const auto& sourceUuid = actionSetsAsset.m_interactionProfilesAsset.GetId().m_guid;
|
|
|
+ bool foundSource = false;
|
|
|
+ AZ::Data::AssetInfo sourceAssetInfo;
|
|
|
+ AZStd::string sourceWatchFolder;
|
|
|
+ AzToolsFramework::AssetSystemRequestBus::BroadcastResult(foundSource, &AzToolsFramework::AssetSystemRequestBus::Events::GetSourceInfoBySourceUUID,
|
|
|
+ sourceUuid, sourceAssetInfo, sourceWatchFolder);
|
|
|
+ AZStd::string sourcePath;
|
|
|
+ if (foundSource)
|
|
|
+ {
|
|
|
+ constexpr bool caseInsensitive = false;
|
|
|
+ constexpr bool normalize = true;
|
|
|
+ AZ::StringFunc::Path::Join(sourceWatchFolder.c_str(), sourceAssetInfo.m_relativePath.c_str(), sourcePath, caseInsensitive, normalize);
|
|
|
+ }
|
|
|
+
|
|
|
+ return sourcePath;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
void OpenXRAssetsBuilder::ProcessActionSetsAssetJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const
|
|
|
{
|
|
|
auto actionSetsAssetPtr = LoadAssetAsUniquePtr<OpenXRVk::OpenXRActionSetsAsset>(request.m_fullPath);
|