SlowClearPass.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 <Atom/RPI.Public/Pass/SlowClearPass.h>
  9. #include <Atom/RPI.Public/Pass/PassUtils.h>
  10. #include <Atom/RPI.Reflect/Pass/SlowClearPassData.h>
  11. namespace AZ
  12. {
  13. namespace RPI
  14. {
  15. Ptr<SlowClearPass> SlowClearPass::Create(const PassDescriptor& descriptor)
  16. {
  17. Ptr<SlowClearPass> pass = aznew SlowClearPass(descriptor);
  18. return pass;
  19. }
  20. SlowClearPass::SlowClearPass(const PassDescriptor& descriptor)
  21. : RenderPass(descriptor)
  22. {
  23. const SlowClearPassData* passData = PassUtils::GetPassData<SlowClearPassData>(descriptor);
  24. if (passData != nullptr)
  25. {
  26. m_clearValue = passData->m_clearValue;
  27. }
  28. }
  29. void SlowClearPass::SetClearValue(float red, float green, float blue, float alpha)
  30. {
  31. m_clearValue = RHI::ClearValue::CreateVector4Float(red, green, blue, alpha);
  32. }
  33. void SlowClearPass::InitializeInternal()
  34. {
  35. RenderPass::InitializeInternal();
  36. // Set clear value
  37. AZ_Assert(GetInputOutputCount() > 0, "SlowClearPass: Missing InputOutput binding!");
  38. RPI::PassAttachmentBinding& binding = GetInputOutputBinding(0);
  39. binding.m_unifiedScopeDesc.m_loadStoreAction.m_clearValue = m_clearValue;
  40. }
  41. } // namespace RPI
  42. } // namespace AZ