LDPixelRenderer.hh 870 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef LDPIXELRENDERER_HH
  2. #define LDPIXELRENDERER_HH
  3. #include "LDRenderer.hh"
  4. #include <memory>
  5. namespace openmsx {
  6. class MSXMotherBoard;
  7. class EventDistributor;
  8. class Display;
  9. class LDRasterizer;
  10. class LaserdiscPlayer;
  11. /** Generic implementation of a pixel-based Renderer.
  12. * Uses a Rasterizer to plot actual pixels for a specific video system.
  13. */
  14. class LDPixelRenderer final : public LDRenderer
  15. {
  16. public:
  17. LDPixelRenderer(LaserdiscPlayer& ld, Display& display);
  18. ~LDPixelRenderer() override;
  19. // Renderer interface:
  20. void frameStart(EmuTime::param time) override;
  21. void frameEnd() override;
  22. void drawBlank(int r, int g, int b) override;
  23. RawFrame* getRawFrame() override;
  24. private:
  25. bool isActive() const;
  26. MSXMotherBoard& motherboard;
  27. EventDistributor& eventDistributor;
  28. const std::unique_ptr<LDRasterizer> rasterizer;
  29. };
  30. } // namespace openmsx
  31. #endif