ImGuiMaterialDetails.h 912 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. struct ImGuiContext;
  10. #include<AtomCore/Instance/Instance.h>
  11. namespace AZ
  12. {
  13. namespace RPI
  14. {
  15. class Material;
  16. }
  17. }
  18. namespace AtomSampleViewer
  19. {
  20. //! Provides a dialog that shows technical details about individual materials, for example the list of
  21. //! shaders, the shader options requested, and which shader variant was selected.
  22. class ImGuiMaterialDetails
  23. {
  24. public:
  25. void SetMaterial(AZ::Data::Instance<AZ::RPI::Material> material);
  26. void OpenDialog();
  27. void Tick();
  28. private:
  29. AZ::Data::Instance<AZ::RPI::Material> m_material;
  30. bool m_dialogIsOpen = false;
  31. };
  32. } // namespace AtomSampleViewer