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  [[nodiscard]] virtual std::unique_ptr<Rasterizer> createRasterizer(VDP& vdp) = 0;
31 
37  [[nodiscard]] virtual std::unique_ptr<V9990Rasterizer> createV9990Rasterizer(
38  V9990& vdp) = 0;
39 
40 #if COMPONENT_LASERDISC
41  [[nodiscard]] virtual std::unique_ptr<LDRasterizer> createLDRasterizer(
42  LaserdiscPlayer &ld) = 0;
43 #endif
44 
57  [[nodiscard]] 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  [[nodiscard]] virtual OutputSurface* getOutputSurface() = 0;
77  virtual void showCursor(bool show) = 0;
78  virtual void repaint() = 0;
79 
80 protected:
81  VideoSystem() = default;
82 };
83 
84 } // namespace openmsx
85 
86 #endif
openmsx::VideoSystem::repaint
virtual void repaint()=0
openmsx::VDP
Unified implementation of MSX Video Display Processors (VDPs).
Definition: VDP.hh:63
openmsx::VideoSystem::flush
virtual void flush()=0
Finish pending drawing operations and make them visible to the user.
openmsx::VideoSystem::takeScreenShot
virtual void takeScreenShot(const std::string &filename, bool withOsd)
Take a screenshot.
Definition: VideoSystem.cc:11
openmsx::VideoSystem
Video back-end system.
Definition: VideoSystem.hh:21
openmsx::LaserdiscPlayer
Definition: LaserdiscPlayer.hh:28
openmsx::VideoSystem::getOutputSurface
virtual OutputSurface * getOutputSurface()=0
TODO.
openmsx::VideoSystem::createRasterizer
virtual std::unique_ptr< Rasterizer > createRasterizer(VDP &vdp)=0
Create the rasterizer selected by the current renderer setting.
openmsx::V9990
V9990
Definition: V9990.cc:963
openmsx::VideoSystem::VideoSystem
VideoSystem()=default
openmsx::VideoSystem::createV9990Rasterizer
virtual std::unique_ptr< V9990Rasterizer > createV9990Rasterizer(V9990 &vdp)=0
Create the V9990 rasterizer selected by the current renderer setting.
openmsx::filename
constexpr const char *const filename
Definition: FirmwareSwitch.cc:10
openmsx::LaserdiscPlayer
LaserdiscPlayer
Definition: LaserdiscPlayer.cc:1135
openmsx::VideoSystem::updateWindowTitle
virtual void updateWindowTitle()
Called when the window title string has changed.
Definition: VideoSystem.cc:18
components.hh
openmsx::VideoSystem::checkSettings
virtual bool checkSettings()
Requests that this renderer checks its settings against the current RenderSettings.
Definition: VideoSystem.cc:6
openmsx::VDP
VDP
Definition: VDP.cc:1918
openmsx::VideoSystem::~VideoSystem
virtual ~VideoSystem()=default
openmsx::OutputSurface
A frame buffer where pixels can be written to.
Definition: OutputSurface.hh:20
openmsx::VideoSystem::showCursor
virtual void showCursor(bool show)=0
openmsx
This file implemented 3 utility functions:
Definition: Autofire.cc:5
openmsx::VideoSystem::createLDRasterizer
virtual std::unique_ptr< LDRasterizer > createLDRasterizer(LaserdiscPlayer &ld)=0
openmsx::V9990
Implementation of the Yamaha V9990 VDP as used in the GFX9000 cartridge by Sunrise.
Definition: V9990.hh:31