openMSX
VideoSystem.hh
Go to the documentation of this file.
1 #ifndef VIDEOSYSTEM_HH
2 #define VIDEOSYSTEM_HH
3 
4 #include <string>
5 #include <memory>
6 #include "components.hh"
7 
8 namespace openmsx {
9 
10 class Rasterizer;
11 class VDP;
12 class V9990Rasterizer;
13 class LDRasterizer;
14 class V9990;
15 class LaserdiscPlayer;
16 class OutputSurface;
17 
21 {
22 public:
23  virtual ~VideoSystem() = default;
24 
30  virtual std::unique_ptr<Rasterizer> createRasterizer(VDP& vdp) = 0;
31 
37  virtual std::unique_ptr<V9990Rasterizer> createV9990Rasterizer(
38  V9990& vdp) = 0;
39 
40 #if COMPONENT_LASERDISC
41  virtual std::unique_ptr<LDRasterizer> createLDRasterizer(
42  LaserdiscPlayer &ld) = 0;
43 #endif
44 
57  virtual bool checkSettings();
58 
61  virtual void flush() = 0;
62 
69  virtual void takeScreenShot(const std::string& filename, bool withOsd);
70 
73  virtual void updateWindowTitle();
74 
76  virtual OutputSurface* getOutputSurface() = 0;
77 
78 protected:
79  VideoSystem() = default;
80 };
81 
82 } // namespace openmsx
83 
84 #endif
Implementation of the Yamaha V9990 VDP as used in the GFX9000 cartridge by Sunrise.
Definition: V9990.hh:29
virtual ~VideoSystem()=default
virtual void updateWindowTitle()
Called when the window title string has changed.
Definition: VideoSystem.cc:18
virtual std::unique_ptr< LDRasterizer > createLDRasterizer(LaserdiscPlayer &ld)=0
virtual std::unique_ptr< V9990Rasterizer > createV9990Rasterizer(V9990 &vdp)=0
Create the V9990 rasterizer selected by the current renderer setting.
A frame buffer where pixels can be written to.
virtual bool checkSettings()
Requests that this renderer checks its settings against the current RenderSettings.
Definition: VideoSystem.cc:6
constexpr const char *const filename
Video back-end system.
Definition: VideoSystem.hh:20
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
virtual void takeScreenShot(const std::string &filename, bool withOsd)
Take a screenshot.
Definition: VideoSystem.cc:11
Unified implementation of MSX Video Display Processors (VDPs).
Definition: VDP.hh:61
virtual void flush()=0
Finish pending drawing operations and make them visible to the user.
virtual std::unique_ptr< Rasterizer > createRasterizer(VDP &vdp)=0
Create the rasterizer selected by the current renderer setting.
virtual OutputSurface * getOutputSurface()=0
TODO.