Merge pull request #6980 from aws-lumberyard-dev/Atom/guthadam/atom_tools_fix_ap_connection_and_thumbnails

Atom Tools: move asset processor connection to fix thumbnails
This commit is contained in:
Guthrie Adams
2022-01-18 15:23:34 -06:00
committed by GitHub
2 changed files with 8 additions and 13 deletions
@@ -16,7 +16,6 @@
#include <AzCore/UserSettings/UserSettingsProvider.h>
#include <AzFramework/Application/Application.h>
#include <AzFramework/Asset/AssetSystemBus.h>
#include <AzQtComponents/Application/AzQtApplication.h>
#include <AzQtComponents/Components/StyleManager.h>
@@ -34,7 +33,6 @@ namespace AtomToolsFramework
: public AzFramework::Application
, public AzQtComponents::AzQtApplication
, protected AzToolsFramework::AssetDatabase::AssetDatabaseRequestsBus::Handler
, protected AzFramework::AssetSystemStatusBus::Handler
, protected AzToolsFramework::EditorPythonConsoleNotificationBus::Handler
, protected AZ::UserSettingsOwnerRequestBus::Handler
, protected AtomToolsMainWindowNotificationBus::Handler
@@ -77,11 +75,6 @@ namespace AtomToolsFramework
void Destroy() override;
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// AzFramework::AssetSystemStatusBus::Handler overrides...
void AssetSystemAvailable() override;
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// AZ::ComponentApplication overrides...
void QueryApplicationType(AZ::ApplicationTypeQuery& appType) const override;
@@ -107,6 +100,7 @@ namespace AtomToolsFramework
virtual void LoadSettings();
virtual void UnloadSettings();
virtual void ConnectToAssetProcessor();
virtual void CompileCriticalAssets();
virtual void ProcessCommandLine(const AZ::CommandLine& commandLine);
@@ -174,7 +174,6 @@ namespace AtomToolsFramework
void AtomToolsApplication::StartCommon(AZ::Entity* systemEntity)
{
AzFramework::AssetSystemStatusBus::Handler::BusConnect();
AzToolsFramework::EditorPythonConsoleNotificationBus::Handler::BusConnect();
Base::StartCommon(systemEntity);
@@ -182,6 +181,8 @@ namespace AtomToolsFramework
const bool clearLogFile = GetSettingOrDefault("/O3DE/AtomToolsFramework/Application/ClearLogOnStart", false);
m_traceLogger.OpenLogFile(GetBuildTargetName() + ".log", clearLogFile);
ConnectToAssetProcessor();
AzToolsFramework::AssetDatabase::AssetDatabaseRequestsBus::Handler::BusConnect();
AzToolsFramework::AssetBrowser::AssetDatabaseLocationNotificationBus::Broadcast(
&AzToolsFramework::AssetBrowser::AssetDatabaseLocationNotifications::OnDatabaseInitialized);
@@ -239,7 +240,7 @@ namespace AtomToolsFramework
return AZStd::vector<AZStd::string>({});
}
void AtomToolsApplication::AssetSystemAvailable()
void AtomToolsApplication::ConnectToAssetProcessor()
{
bool connectedToAssetProcessor = false;
@@ -248,18 +249,19 @@ namespace AtomToolsFramework
// and able to negotiate a connection when running a debug build
// and to negotiate a connection
auto targetName = GetBuildTargetName();
const auto targetName = GetBuildTargetName();
AzFramework::AssetSystem::ConnectionSettings connectionSettings;
AzFramework::AssetSystem::ReadConnectionSettingsFromSettingsRegistry(connectionSettings);
connectionSettings.m_connectionDirection =
AzFramework::AssetSystem::ConnectionSettings::ConnectionDirection::ConnectToAssetProcessor;
connectionSettings.m_connectionIdentifier = GetBuildTargetName();
connectionSettings.m_connectionIdentifier = targetName;
connectionSettings.m_loggingCallback = [targetName]([[maybe_unused]] AZStd::string_view logData)
{
AZ_UNUSED(targetName); // Prevent unused warning in release builds
AZ_TracePrintf(targetName.c_str(), "%.*s", aznumeric_cast<int>(logData.size()), logData.data());
};
AzFramework::AssetSystemRequestBus::BroadcastResult(
connectedToAssetProcessor, &AzFramework::AssetSystemRequestBus::Events::EstablishAssetProcessorConnection, connectionSettings);
@@ -267,8 +269,6 @@ namespace AtomToolsFramework
{
CompileCriticalAssets();
}
AzFramework::AssetSystemStatusBus::Handler::BusDisconnect();
}
void AtomToolsApplication::CompileCriticalAssets()
@@ -305,6 +305,7 @@ namespace AtomToolsFramework
}
AZ::ComponentApplicationLifecycle::SignalEvent(*m_settingsRegistry, "CriticalAssetsCompiled", R"({})");
// Reload the assetcatalog.xml at this point again
// Start Monitoring Asset changes over the network and load the AssetCatalog
auto LoadCatalog = [settingsRegistry = m_settingsRegistry.get()](AZ::Data::AssetCatalogRequests* assetCatalogRequests)