/* * Copyright (c) Contributors to the Open 3D Engine Project * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include #include #include #include #include #include namespace AZ { namespace Render { class EditorPostFxSystemComponent : public AzToolsFramework::Components::EditorComponentBase , private PostFxLayerCategoriesProviderRequestBus::Handler , private AzFramework::AssetCatalogEventBus::Handler { public: AZ_EDITOR_COMPONENT(EditorPostFxSystemComponent, "{D86D2F88-ACDC-49B3-89D3-AE2EC5B8FEBC}"); static void Reflect(AZ::ReflectContext* context); void Init() override; void Activate() override; void Deactivate() override; // PostFxLayerCategoriesProviderRequestBus Override void GetLayerCategories(PostFx::LayerCategoriesMap& layerCategories) const override; // AssetCatalogEventBus Overrides void OnCatalogLoaded(const char* catalogFile) override; void OnCatalogAssetChanged(const AZ::Data::AssetId& assetId) override; void OnCatalogAssetAdded(const AZ::Data::AssetId& assetId) override; void OnCatalogAssetRemoved(const AZ::Data::AssetId& assetId, const AZ::Data::AssetInfo& assetInfo) override; void UpdateLayerCategoriesAssetMap(const AZ::Data::AssetId& assetId); // Asset handler registration void RegisterAssethandlers(); void UnregisterAssethandlers(); AzFramework::GenericAssetHandler* m_postFxLayerCategoriesAsset = nullptr; AZStd::unordered_map> m_layerCategoriesAssetMap; }; } }