openMSX
|
Represents the output window/screen of openMSX. More...
#include <Display.hh>
Public Types | |
using | Layers = std::vector< Layer * > |
Public Member Functions | |
Display (Reactor &reactor) | |
~Display () | |
void | createVideoSystem () |
VideoSystem & | getVideoSystem () |
CliComm & | getCliComm () const |
RenderSettings & | getRenderSettings () |
OSDGUI & | getOSDGUI () |
CommandConsole & | getCommandConsole () |
void | repaint () |
Redraw the display. More... | |
void | repaintDelayed (uint64_t delta) |
void | repaintImpl () |
void | repaintImpl (OutputSurface &surface) |
void | addLayer (Layer &layer) |
void | removeLayer (Layer &layer) |
void | attach (VideoSystemChangeListener &listener) |
void | detach (VideoSystemChangeListener &listener) |
Layer * | findActiveLayer () const |
const Layers & | getAllLayers () const |
OutputSurface * | getOutputSurface () |
std::string | getWindowTitle () |
![]() | |
EventListener (const EventListener &)=delete | |
EventListener & | operator= (const EventListener &)=delete |
virtual int | signalEvent (const Event &event)=0 |
This method gets called when an event you are subscribed to occurs. More... | |
Additional Inherited Members | |
![]() | |
EventListener ()=default | |
~EventListener ()=default | |
Represents the output window/screen of openMSX.
A display contains several layers.
Definition at line 31 of file Display.hh.
using openmsx::Display::Layers = std::vector<Layer*> |
Definition at line 35 of file Display.hh.
|
explicit |
Definition at line 37 of file Display.cc.
References openmsx::CircularBuffer< T, MAXSIZE >::addFront(), openmsx::Subject< T >::attach(), openmsx::EXPOSE, openmsx::FINISH_FRAME, openmsx::FOCUS, openmsx::Reactor::getEventDistributor(), openmsx::RenderSettings::getFullScreenSetting(), openmsx::RenderSettings::getRendererSetting(), openmsx::RenderSettings::getScaleFactorSetting(), openmsx::Timer::getTime(), openmsx::MACHINE_LOADED, openmsx::EventDistributor::registerEventListener(), repeat(), and openmsx::SWITCH_RENDERER.
openmsx::Display::~Display | ( | ) |
Definition at line 72 of file Display.cc.
References openmsx::Subject< T >::detach(), openmsx::EXPOSE, openmsx::FINISH_FRAME, openmsx::FOCUS, openmsx::Reactor::getEventDistributor(), openmsx::RenderSettings::getFullScreenSetting(), openmsx::RenderSettings::getRendererSetting(), openmsx::RenderSettings::getScaleFactorSetting(), openmsx::MACHINE_LOADED, openmsx::SWITCH_RENDERER, and openmsx::EventDistributor::unregisterEventListener().
void openmsx::Display::addLayer | ( | Layer & | layer | ) |
Definition at line 380 of file Display.cc.
References ranges::find_if(), openmsx::Layer::getZ(), and openmsx::Layer::setDisplay().
Referenced by openmsx::SDLVideoSystem::SDLVideoSystem(), and openmsx::VideoLayer::VideoLayer().
void openmsx::Display::attach | ( | VideoSystemChangeListener & | listener | ) |
Definition at line 131 of file Display.cc.
References contains().
Referenced by openmsx::VDP::VDP(), and openmsx::Video9000::Video9000().
void openmsx::Display::createVideoSystem | ( | ) |
Definition at line 97 of file Display.cc.
References openmsx::RenderSettings::getRenderer(), and openmsx::RenderSettings::UNINITIALIZED.
void openmsx::Display::detach | ( | VideoSystemChangeListener & | listener | ) |
Definition at line 137 of file Display.cc.
References move_pop_back(), and rfind_unguarded().
Referenced by openmsx::LaserdiscPlayer::~LaserdiscPlayer(), openmsx::V9990::~V9990(), openmsx::VDP::~VDP(), and openmsx::Video9000::~Video9000().
Layer * openmsx::Display::findActiveLayer | ( | ) | const |
Definition at line 142 of file Display.cc.
References ranges::find_if(), and openmsx::Layer::isActive().
|
inline |
Definition at line 63 of file Display.hh.
CliComm & openmsx::Display::getCliComm | ( | ) | const |
Definition at line 126 of file Display.cc.
References openmsx::Reactor::getCliComm().
Referenced by openmsx::PostProcessor::getCliComm(), and openmsx::OSDTopWidget::showAllErrors().
|
inline |
Definition at line 46 of file Display.hh.
Referenced by openmsx::RendererFactory::createVideoSystem().
|
inline |
Definition at line 45 of file Display.hh.
Referenced by openmsx::SDLVideoSystem::SDLVideoSystem(), and openmsx::OSDImageBasedWidget::setError().
OutputSurface * openmsx::Display::getOutputSurface | ( | ) |
Definition at line 113 of file Display.cc.
Referenced by openmsx::OSDImageBasedWidget::getRenderedSize().
|
inline |
Definition at line 44 of file Display.hh.
Referenced by openmsx::RendererFactory::createLDRenderer(), openmsx::RendererFactory::createRenderer(), openmsx::RendererFactory::createV9990Renderer(), openmsx::RendererFactory::createVideoSystem(), openmsx::SDLGLVisibleSurface::SDLGLVisibleSurface(), openmsx::VDP::VDP(), openmsx::VisibleSurface::VisibleSurface(), openmsx::SDLGLVisibleSurface::~SDLGLVisibleSurface(), and openmsx::VisibleSurface::~VisibleSurface().
VideoSystem & openmsx::Display::getVideoSystem | ( | ) |
Definition at line 107 of file Display.cc.
Referenced by openmsx::GetClipboardCommand::execute(), and openmsx::SetClipboardCommand::execute().
string openmsx::Display::getWindowTitle | ( | ) |
Definition at line 220 of file Display.cc.
References openmsx::Version::full(), openmsx::Reactor::getMotherBoard(), openmsx::Version::RELEASE, and strAppend().
void openmsx::Display::removeLayer | ( | Layer & | layer | ) |
Definition at line 388 of file Display.cc.
References rfind_unguarded().
Referenced by openmsx::SDLVideoSystem::~SDLVideoSystem(), and openmsx::VideoLayer::~VideoLayer().
void openmsx::Display::repaint | ( | ) |
Redraw the display.
The repaintImpl() methods are for internal and VideoSystem/VisibleSurface use only.
Definition at line 364 of file Display.cc.
void openmsx::Display::repaintDelayed | ( | uint64_t | delta | ) |
Definition at line 371 of file Display.cc.
References openmsx::RTSchedulable::isPendingRT(), and openmsx::RTSchedulable::scheduleRT().
Referenced by openmsx::GLSnow::paint(), and openmsx::OSDGUI::refresh().
void openmsx::Display::repaintImpl | ( | ) |
Definition at line 324 of file Display.cc.
References openmsx::CircularBuffer< T, MAXSIZE >::addFront(), openmsx::RTSchedulable::cancelRT(), openmsx::Timer::getTime(), openmsx::CircularBuffer< T, MAXSIZE >::removeBack(), and repaintImpl().
Referenced by openmsx::SDLVideoSystem::repaint(), repaintImpl(), and openmsx::SDLVideoSystem::takeScreenShot().
void openmsx::Display::repaintImpl | ( | OutputSurface & | surface | ) |
Definition at line 355 of file Display.cc.
References openmsx::Layer::COVER_NONE, and end().