DirectX12PlatformEmitter.h 1000 B

12345678910111213141516171819202122232425262728
  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 <AzslcPlatformEmitter.h>
  10. namespace AZ::ShaderCompiler
  11. {
  12. // PlatformEmitter is not a Backend by design. It's a supplement to CodeEmitter, not a replacement
  13. struct DirectX12PlatformEmitter : PlatformEmitter
  14. {
  15. public:
  16. //! This method will be called once and only once when the platform emitter registers itself to the system.
  17. //! Returns a singleton object of this class.
  18. static const PlatformEmitter* RegisterPlatformEmitter() noexcept(false);
  19. [[nodiscard]]
  20. string GetRootSig(const CodeEmitter& codeEmitter, const RootSigDesc& rootSig, const Options& options, BindingPair::Set signatureQuery) const override final;
  21. private:
  22. DirectX12PlatformEmitter() : PlatformEmitter {} {};
  23. };
  24. }