You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Tools/AssetProcessor/AssetBuilder/AssetBuilderApplication.h

51 lines
1.3 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <AzCore/std/string/string.h>
#include <AssetBuilderSDK/AssetBuilderBusses.h>
#include <AssetBuilderSDK/AssetBuilderSDK.h>
#include <AzToolsFramework/Application/ToolsApplication.h>
#include "AssetBuilderInfo.h"
#include <QCoreApplication>
struct IBuilderApplication
{
AZ_RTTI(IBuilderApplication, "{FEDD188E-D5FF-4852-B945-F82F7CC1CA5F}");
IBuilderApplication() = default;
virtual ~IBuilderApplication() = default;
virtual void InitializeBuilderComponents() = 0;
AZ_DISABLE_COPY_MOVE(IBuilderApplication);
};
class AssetBuilderApplication
: public AzToolsFramework::ToolsApplication
, public IBuilderApplication
{
public:
AssetBuilderApplication(int* argc, char*** argv);
~AssetBuilderApplication();
AZ::ComponentTypeList GetRequiredSystemComponents() const override;
void RegisterCoreComponents() override;
void StartCommon(AZ::Entity* systemEntity) override;
bool IsInDebugMode() const;
void InitializeBuilderComponents() override;
private:
void InstallCtrlHandler();
QCoreApplication m_qtApplication;
};