TemporalAA.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #pragma once
  6. #include <AnKi/Renderer/RendererObject.h>
  7. namespace anki
  8. {
  9. /// @addtogroup renderer
  10. /// @{
  11. /// Temporal AA resolve.
  12. class TemporalAA : public RendererObject
  13. {
  14. public:
  15. TemporalAA(Renderer* r);
  16. ~TemporalAA();
  17. ANKI_USE_RESULT Error init(const ConfigSet& cfg);
  18. void populateRenderGraph(RenderingContext& ctx);
  19. RenderTargetHandle getRt() const
  20. {
  21. return m_runCtx.m_renderRt;
  22. }
  23. private:
  24. Array<TexturePtr, 2> m_rtTextures;
  25. Array<Bool, 2> m_rtTexturesImportedOnce = {};
  26. ShaderProgramResourcePtr m_prog;
  27. Array<ShaderProgramPtr, 2> m_grProgs;
  28. class
  29. {
  30. public:
  31. RenderingContext* m_ctx = nullptr;
  32. RenderTargetHandle m_renderRt;
  33. RenderTargetHandle m_historyRt;
  34. } m_runCtx;
  35. ANKI_USE_RESULT Error initInternal(const ConfigSet& cfg);
  36. void run(const RenderingContext& ctx, RenderPassWorkContext& rgraphCtx);
  37. };
  38. /// @}
  39. } // end namespace anki