MainRenderer.h 927 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef ANKI_RENDERER_MAIN_RENDERER_H
  2. #define ANKI_RENDERER_MAIN_RENDERER_H
  3. #include "anki/renderer/Renderer.h"
  4. #include "anki/renderer/Deformer.h"
  5. #include "anki/util/Singleton.h"
  6. namespace anki {
  7. /// Main onscreen renderer
  8. class MainRenderer: public Renderer
  9. {
  10. public:
  11. MainRenderer()
  12. {}
  13. ~MainRenderer();
  14. /// The same as Renderer::init but with additional initialization.
  15. /// @see Renderer::init
  16. void init(const RendererInitializer& initializer);
  17. void render(SceneGraph& scene);
  18. /// Save the color buffer to a tga (lossless & uncompressed & slow)
  19. /// or jpeg (lossy & compressed fast)
  20. /// @param filename The file to save
  21. void takeScreenshot(const char* filename);
  22. private:
  23. std::unique_ptr<Deformer> deformer;
  24. ShaderProgramResourcePointer blitProg;
  25. void takeScreenshotTga(const char* filename);
  26. void initGl();
  27. };
  28. typedef Singleton<MainRenderer> MainRendererSingleton;
  29. } // end namespace anki
  30. #endif