3
0

ShaderManagementConsoleRequestBus.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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/std/containers/vector.h>
  10. #include <AzCore/EBus/EBus.h>
  11. #include <AzCore/Asset/AssetCommon.h>
  12. #include <Atom/RPI.Edit/Shader/ShaderVariantListSourceData.h>
  13. #include <Atom/RPI.Reflect/Material/ShaderCollection.h>
  14. namespace ShaderManagementConsole
  15. {
  16. //! ShaderManagementConsoleRequestBus provides
  17. class ShaderManagementConsoleRequests
  18. : public AZ::EBusTraits
  19. {
  20. public:
  21. static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single;
  22. static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single;
  23. //! Returns a shader file's asset id and relative filepath
  24. virtual AZ::Data::AssetInfo GetSourceAssetInfo(const AZStd::string& sourceAssetFileName) = 0;
  25. //! Returns a list of material AssetIds that use the shader file.
  26. virtual AZStd::vector<AZ::Data::AssetId> FindMaterialAssetsUsingShader (const AZStd::string& shaderFilePath) = 0;
  27. //! Returns a list of shader items contained within an instantiated material source's shader collection.
  28. virtual AZStd::vector<AZ::RPI::ShaderCollection::Item> GetMaterialInstanceShaderItems(const AZ::Data::AssetId& assetId) = 0;
  29. //! Return the id of all built material assets
  30. virtual AZStd::vector<AZ::Data::AssetId> GetAllMaterialAssetIds() = 0;
  31. //! A wrapper to call GetFullSourcePathFromRelativeProductPath from python
  32. virtual AZStd::string GetFullSourcePathFromRelativeProductPath(const AZStd::string& relativeProductPath) = 0;
  33. //! A wrapper to call GenerateRelativeSourcePath from python
  34. virtual AZStd::string GenerateRelativeSourcePath(const AZStd::string& fullShaderPath) = 0;
  35. };
  36. using ShaderManagementConsoleRequestBus = AZ::EBus<ShaderManagementConsoleRequests>;
  37. } // namespace ShaderManagementConsole