SDLVisibleSurface.hh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef SDLVISIBLESURFACE_HH
  2. #define SDLVISIBLESURFACE_HH
  3. #include "SDLVisibleSurfaceBase.hh"
  4. namespace openmsx {
  5. class SDLVisibleSurface final : public SDLVisibleSurfaceBase
  6. {
  7. public:
  8. SDLVisibleSurface(unsigned width, unsigned height,
  9. Display& display,
  10. RTScheduler& rtScheduler,
  11. EventDistributor& eventDistributor,
  12. InputEventGenerator& inputEventGenerator,
  13. CliComm& cliComm,
  14. VideoSystem& videoSystem);
  15. static void saveScreenshotSDL(const SDLOutputSurface& output,
  16. const std::string& filename);
  17. // OutputSurface
  18. void saveScreenshot(const std::string& filename) override;
  19. void flushFrameBuffer() override;
  20. void clearScreen() override;
  21. // VisibleSurface
  22. void finish() override;
  23. std::unique_ptr<Layer> createSnowLayer() override;
  24. std::unique_ptr<Layer> createConsoleLayer(
  25. Reactor& reactor, CommandConsole& console) override;
  26. std::unique_ptr<Layer> createOSDGUILayer(OSDGUI& gui) override;
  27. std::unique_ptr<OutputSurface> createOffScreenSurface() override;
  28. private:
  29. SDLRendererPtr renderer;
  30. SDLSurfacePtr surface;
  31. SDLTexturePtr texture;
  32. };
  33. } // namespace openmsx
  34. #endif