3
0

EditorStatePassSystemUtils.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. #include <Pass/State/EditorStateBase.h>
  9. #pragma once
  10. namespace AZ::Render
  11. {
  12. inline constexpr const char* const StatePassTemplatePassClassName = "EditorStateParentPass";
  13. inline constexpr const char* const BufferCopyStatePassTemplatePassClassName = "EditorStateBufferCopyPass";
  14. //! Returns the name for the mask pass template for the specified draw list.
  15. Name GetMaskPassTemplateNameForDrawList(const Name& drawList);
  16. //! Returns the name for the mask pass for the specified draw list.
  17. Name GetMaskPassNameForDrawList(const Name& drawList);
  18. //! Returns the name for the buffer copy pass template for the specified editor state.
  19. Name GetBufferCopyPassTemplateName(const EditorStateBase& state);
  20. //! Returns the name for the buffer copy pass for the specified editor state.
  21. Name GetBufferCopyPassNameForState(const EditorStateBase& state);
  22. //! Creates and adds to the Atom pass system the parent pass template for the specified editor state.
  23. void CreateAndAddStateParentPassTemplate(const EditorStateBase& state);
  24. //! Creates and adds to the Atom pass system the buffer copy pass template for the specified editor state.
  25. void CreateAndAddBufferCopyPassTemplate(const EditorStateBase& state);
  26. //! Creates and adds to the Atom pass system the pass template for the mask with the specified draw list.
  27. void CreateAndAddMaskPassTemplate(const Name& drawList);
  28. //! Creates the mask pass templates from the list of editor state parent passes and returns the drawlists used by the masks.
  29. AZStd::unordered_set<Name> CreateMaskPassTemplatesFromEditorStates(const EditorStateList& editorStates);
  30. } // namespace AZ::Render