BlastAssetHandler.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <AzCore/Asset/AssetManager.h>
  10. #include <AzCore/Asset/AssetTypeInfoBus.h>
  11. namespace Blast
  12. {
  13. class BlastAssetHandler
  14. : public AZ::Data::AssetHandler
  15. , public AZ::AssetTypeInfoBus::Handler
  16. {
  17. public:
  18. AZ_CLASS_ALLOCATOR(BlastAssetHandler, AZ::SystemAllocator, 0);
  19. ~BlastAssetHandler();
  20. //////////////////////////////////////////////////////////////////////////////////////////////
  21. // AZ::Data::AssetHandler
  22. AZ::Data::AssetPtr CreateAsset(const AZ::Data::AssetId& id, const AZ::Data::AssetType& type) override;
  23. LoadResult LoadAssetData(
  24. const AZ::Data::Asset<AZ::Data::AssetData>& asset, AZStd::shared_ptr<AZ::Data::AssetDataStream> stream,
  25. const AZ::Data::AssetFilterCB& assetLoadFilterCB) override;
  26. void DestroyAsset(AZ::Data::AssetPtr ptr) override;
  27. void GetHandledAssetTypes(AZStd::vector<AZ::Data::AssetType>& assetTypes) override;
  28. //////////////////////////////////////////////////////////////////////////////////////////////
  29. //////////////////////////////////////////////////////////////////////////////////////////////
  30. // AZ::AssetTypeInfoBus::Handler
  31. AZ::Data::AssetType GetAssetType() const override;
  32. const char* GetAssetTypeDisplayName() const override;
  33. const char* GetGroup() const override;
  34. const char* GetBrowserIcon() const override;
  35. void GetAssetTypeExtensions(AZStd::vector<AZStd::string>& extensions) override;
  36. //////////////////////////////////////////////////////////////////////////////////////////////
  37. void Register();
  38. void Unregister();
  39. };
  40. } // namespace Blast