PostProcessBase.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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/RenderPipeline.h>
  9. #include <Atom/RPI.Public/Scene.h>
  10. #include <Atom/RPI.Public/View.h>
  11. #include <PostProcess/PostProcessBase.h>
  12. #include <PostProcess/PostProcessFeatureProcessor.h>
  13. namespace AZ
  14. {
  15. namespace Render
  16. {
  17. PostProcessBase::PostProcessBase(PostProcessFeatureProcessor* featureProcessor)
  18. : m_featureProcessor(featureProcessor)
  19. { }
  20. RPI::Scene* PostProcessBase::GetParentScene() const
  21. {
  22. if (m_featureProcessor)
  23. {
  24. return m_featureProcessor->GetParentScene();
  25. }
  26. return nullptr;
  27. }
  28. RPI::ShaderResourceGroup* PostProcessBase::GetSceneSrg() const
  29. {
  30. if (GetParentScene())
  31. {
  32. return GetParentScene()->GetShaderResourceGroup().get();
  33. }
  34. return nullptr;
  35. }
  36. AZ::Data::Instance<AZ::RPI::ShaderResourceGroup> PostProcessBase::GetDefaultViewSrg() const
  37. {
  38. if (GetParentScene() &&
  39. GetParentScene()->GetDefaultRenderPipeline() &&
  40. GetParentScene()->GetDefaultRenderPipeline()->GetDefaultView())
  41. {
  42. return GetParentScene()->GetDefaultRenderPipeline()->GetDefaultView()->GetShaderResourceGroup();
  43. }
  44. return nullptr;
  45. }
  46. }
  47. }