openMSX
|
#include <VideoLayer.hh>
Public Types | |
enum | Video9000Active { INACTIVE , ACTIVE_FRONT , ACTIVE_BACK } |
![]() | |
enum | ZIndex { Z_DUMMY = -1 , Z_BACKGROUND = 0 , Z_MSX_PASSIVE = 30 , Z_MSX_ACTIVE = 40 , Z_OSDGUI = 50 , Z_CONSOLE = 100 } |
Determines stacking order of layers: layers with higher Z-indices are closer to the viewer. More... | |
enum | Coverage { COVER_FULL , COVER_PARTIAL , COVER_NONE } |
Describes how much of the screen is currently covered by a particular layer. More... | |
Public Member Functions | |
VideoLayer (const VideoLayer &)=delete | |
VideoLayer & | operator= (const VideoLayer &)=delete |
int | getVideoSource () const |
Returns the ID for this VideoLayer. More... | |
int | getVideoSourceSetting () const |
virtual void | takeRawScreenShot (unsigned height, const std::string &filename)=0 |
Create a raw (=non-post-processed) screenshot. More... | |
void | setVideo9000Active (int video9000Source_, Video9000Active active) |
bool | needRender () const |
bool | needRecord () const |
![]() | |
virtual | ~Layer ()=default |
virtual void | paint (OutputSurface &output)=0 |
Paint this layer. More... | |
ZIndex | getZ () const |
Query the Z-index of this layer. More... | |
bool | isActive () const |
Coverage | getCoverage () const |
Query the coverage of this layer. More... | |
void | setDisplay (LayerListener &display_) |
Store pointer to Display. More... | |
Protected Member Functions | |
VideoLayer (MSXMotherBoard &motherBoard, const std::string &videoSource) | |
~VideoLayer () override | |
void | update (const Setting &setting) noexcept override |
![]() | |
Layer (Coverage coverage_=COVER_NONE, ZIndex z_=Z_DUMMY) | |
Construct a layer. More... | |
void | setCoverage (Coverage coverage_) |
Changes the current coverage of this layer. More... | |
void | setZ (ZIndex z) |
Changes the current Z-index of this layer. More... | |
![]() | |
Observer ()=default | |
~Observer ()=default | |
Observer (const Observer &)=delete | |
Observer & | operator= (const Observer &)=delete |
virtual void | update (const Setting &subject) noexcept=0 |
virtual void | subjectDeleted (const Setting &) |
Definition at line 17 of file VideoLayer.hh.
Enumerator | |
---|---|
INACTIVE | |
ACTIVE_FRONT | |
ACTIVE_BACK |
Definition at line 41 of file VideoLayer.hh.
|
delete |
|
protected |
Definition at line 13 of file VideoLayer.cc.
References openmsx::Display::addLayer(), openmsx::Subject< T >::attach(), openmsx::MSXMotherBoard::getMSXEventDistributor(), and openmsx::MSXEventDistributor::registerEventListener().
|
overrideprotected |
Definition at line 30 of file VideoLayer.cc.
References openmsx::Subject< T >::detach(), openmsx::MSXMotherBoard::getMSXEventDistributor(), openmsx::Display::removeLayer(), and openmsx::MSXEventDistributor::unregisterEventListener().
int openmsx::VideoLayer::getVideoSource | ( | ) | const |
Returns the ID for this VideoLayer.
These IDs are globally unique. The 'videosource' setting uses these IDs as possible values.
Definition at line 39 of file VideoLayer.cc.
References openmsx::VideoSourceActivator::getID().
Referenced by needRecord(), and needRender().
int openmsx::VideoLayer::getVideoSourceSetting | ( | ) | const |
Definition at line 43 of file VideoLayer.cc.
References openmsx::VideoSourceSetting::getSource().
bool openmsx::VideoLayer::needRecord | ( | ) | const |
Definition at line 91 of file VideoLayer.cc.
References ACTIVE_FRONT, openmsx::VideoSourceSetting::getSource(), and getVideoSource().
Referenced by openmsx::PostProcessor::rotateFrames().
bool openmsx::VideoLayer::needRender | ( | ) | const |
Definition at line 81 of file VideoLayer.cc.
References openmsx::VideoSourceSetting::getSource(), getVideoSource(), and INACTIVE.
|
delete |
|
inline |
Definition at line 42 of file VideoLayer.hh.
|
pure virtual |
Create a raw (=non-post-processed) screenshot.
The 'height' parameter should be either '240' or '480'. The current image will be scaled to '320x240' or '640x480' and written to a png file.
Implemented in openmsx::PostProcessor.
|
overrideprotectedvirtualnoexcept |
Implements openmsx::Observer< Setting >.
Definition at line 48 of file VideoLayer.cc.
References setting.
Referenced by openmsx::GLPostProcessor::update().