openMSX
Public Member Functions | List of all members
openmsx::DummyRenderer Class Referencefinal

Dummy Renderer. More...

#include <DummyRenderer.hh>

Inheritance diagram for openmsx::DummyRenderer:
Inheritance graph
[legend]
Collaboration diagram for openmsx::DummyRenderer:
Collaboration graph
[legend]

Public Member Functions

PostProcessorgetPostProcessor () const override
 See VDP::getPostProcessor.
 
void reInit () override
 Reinitialize Renderer state.
 
void frameStart (EmuTime::param time) override
 Signals the start of a new frame.
 
void frameEnd (EmuTime::param time) override
 Signals the end of a frame.
 
void updateTransparency (bool enabled, EmuTime::param time) override
 Informs the renderer of a VDP transparency enable/disable change.
 
void updateSuperimposing (const RawFrame *videoSource, EmuTime::param time) override
 Informs the renderer of a VDP superimposing change.
 
void updateForegroundColor (byte color, EmuTime::param time) override
 Informs the renderer of a VDP foreground color change.
 
void updateBackgroundColor (byte color, EmuTime::param time) override
 Informs the renderer of a VDP background color change.
 
void updateBlinkForegroundColor (byte color, EmuTime::param time) override
 Informs the renderer of a VDP blink foreground color change.
 
void updateBlinkBackgroundColor (byte color, EmuTime::param time) override
 Informs the renderer of a VDP blink background color change.
 
void updateBlinkState (bool enabled, EmuTime::param time) override
 Informs the renderer of a VDP blinking state change.
 
void updatePalette (unsigned index, int grb, EmuTime::param time) override
 Informs the renderer of a VDP palette change.
 
void updateVerticalScroll (int scroll, EmuTime::param time) override
 Informs the renderer of a vertical scroll change.
 
void updateHorizontalScrollLow (byte scroll, EmuTime::param time) override
 Informs the renderer of a horizontal scroll change: the lower scroll value has changed.
 
void updateHorizontalScrollHigh (byte scroll, EmuTime::param time) override
 Informs the renderer of a horizontal scroll change: the higher scroll value has changed.
 
void updateBorderMask (bool masked, EmuTime::param time) override
 Informs the renderer of a horizontal scroll change: the border mask has been enabled/disabled.
 
void updateMultiPage (bool multiPage, EmuTime::param time) override
 Informs the renderer of a horizontal scroll change: the multi page setting has changed.
 
void updateHorizontalAdjust (int adjust, EmuTime::param time) override
 Informs the renderer of a horizontal adjust change.
 
void updateDisplayEnabled (bool enabled, EmuTime::param time) override
 Informs the renderer of a VDP display enabled change.
 
void updateDisplayMode (DisplayMode mode, EmuTime::param time) override
 Informs the renderer of a VDP display mode change.
 
void updateNameBase (unsigned addr, EmuTime::param time) override
 Informs the renderer of a name table base address change.
 
void updatePatternBase (unsigned addr, EmuTime::param time) override
 Informs the renderer of a pattern table base address change.
 
void updateColorBase (unsigned addr, EmuTime::param time) override
 Informs the renderer of a color table base address change.
 
void updateSpritesEnabled (bool enabled, EmuTime::param time) override
 Informs the renderer of a VDP sprites enabled change.
 
void updateVRAM (unsigned offset, EmuTime::param time) override
 Informs the observer of a change in VRAM contents.
 
void updateWindow (bool enabled, EmuTime::param time) override
 Informs the observer that the entire VRAM window will change.
 
void paint (OutputSurface &output) override
 Paint this layer.
 
- Public Member Functions inherited from openmsx::Renderer
virtual ~Renderer ()=default
 
- Public Member Functions inherited from openmsx::Layer
virtual ~Layer ()=default
 
ZIndex getZ () const
 Query the Z-index of this layer.
 
bool isActive () const
 
Coverage getCoverage () const
 Query the coverage of this layer.
 
void setDisplay (LayerListener &display_)
 Store pointer to Display.
 

Additional Inherited Members

- Public Types inherited from openmsx::Layer
enum  ZIndex {
  Z_DUMMY = -1 , Z_BACKGROUND = 0 , Z_MSX_PASSIVE = 30 , Z_MSX_ACTIVE = 40 ,
  Z_OSDGUI = 50 , Z_IMGUI = 60
}
 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...
 
- Static Public Attributes inherited from openmsx::Renderer
static constexpr std::array< uint16_t, 16 > GRAPHIC7_SPRITE_PALETTE
 Sprite palette in Graphic 7 mode.
 
- Protected Member Functions inherited from openmsx::Renderer
 Renderer ()=default
 
- Protected Member Functions inherited from openmsx::VRAMObserver
 ~VRAMObserver ()=default
 
- Protected Member Functions inherited from openmsx::Layer
 Layer (Coverage coverage_=COVER_NONE, ZIndex z_=Z_DUMMY)
 Construct a layer.
 
void setCoverage (Coverage coverage_)
 Changes the current coverage of this layer.
 
void setZ (ZIndex z)
 Changes the current Z-index of this layer.
 

Detailed Description

Dummy Renderer.

Definition at line 11 of file DummyRenderer.hh.

Member Function Documentation

◆ frameEnd()

void openmsx::DummyRenderer::frameEnd ( EmuTime::param  time)
overridevirtual

Signals the end of a frame.

Parameters
timeThe moment in emulated time the frame ends. Note: this is the same time stamp as the start of the next frame.

Implements openmsx::Renderer.

Definition at line 16 of file DummyRenderer.cc.

◆ frameStart()

void openmsx::DummyRenderer::frameStart ( EmuTime::param  time)
overridevirtual

Signals the start of a new frame.

The Renderer can use this to get fixed-per-frame settings from the VDP, such as PAL/NTSC timing.

Parameters
timeThe moment in emulated time the frame starts.

Implements openmsx::Renderer.

Definition at line 13 of file DummyRenderer.cc.

◆ getPostProcessor()

PostProcessor * openmsx::DummyRenderer::getPostProcessor ( ) const
overridevirtual

See VDP::getPostProcessor.

Implements openmsx::Renderer.

Definition at line 6 of file DummyRenderer.cc.

◆ paint()

void openmsx::DummyRenderer::paint ( OutputSurface output)
overridevirtual

Paint this layer.

Implements openmsx::Layer.

Definition at line 86 of file DummyRenderer.cc.

◆ reInit()

void openmsx::DummyRenderer::reInit ( )
overridevirtual

Reinitialize Renderer state.

Implements openmsx::Renderer.

Definition at line 10 of file DummyRenderer.cc.

◆ updateBackgroundColor()

void openmsx::DummyRenderer::updateBackgroundColor ( byte  color,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP background color change.

Parameters
colorThe new background color.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 29 of file DummyRenderer.cc.

◆ updateBlinkBackgroundColor()

void openmsx::DummyRenderer::updateBlinkBackgroundColor ( byte  color,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP blink background color change.

Parameters
colorThe new blink background color.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 35 of file DummyRenderer.cc.

◆ updateBlinkForegroundColor()

void openmsx::DummyRenderer::updateBlinkForegroundColor ( byte  color,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP blink foreground color change.

Parameters
colorThe new blink foreground color.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 32 of file DummyRenderer.cc.

◆ updateBlinkState()

void openmsx::DummyRenderer::updateBlinkState ( bool  enabled,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP blinking state change.

Parameters
enabledThe new blink state.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 38 of file DummyRenderer.cc.

◆ updateBorderMask()

void openmsx::DummyRenderer::updateBorderMask ( bool  masked,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a horizontal scroll change: the border mask has been enabled/disabled.

Parameters
maskedtrue iff enabled.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 53 of file DummyRenderer.cc.

◆ updateColorBase()

void openmsx::DummyRenderer::updateColorBase ( unsigned  addr,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a color table base address change.

Parameters
addrThe new base address.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 74 of file DummyRenderer.cc.

◆ updateDisplayEnabled()

void openmsx::DummyRenderer::updateDisplayEnabled ( bool  enabled,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP display enabled change.

Both the regular border start/end and forced blanking by clearing the display enable bit are considered display enabled changes.

Parameters
enabledThe new display enabled state.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 62 of file DummyRenderer.cc.

◆ updateDisplayMode()

void openmsx::DummyRenderer::updateDisplayMode ( DisplayMode  mode,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP display mode change.

Parameters
modeThe new display mode.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 65 of file DummyRenderer.cc.

◆ updateForegroundColor()

void openmsx::DummyRenderer::updateForegroundColor ( byte  color,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP foreground color change.

Parameters
colorThe new foreground color.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 26 of file DummyRenderer.cc.

◆ updateHorizontalAdjust()

void openmsx::DummyRenderer::updateHorizontalAdjust ( int  adjust,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a horizontal adjust change.

Note that there is no similar method for vertical adjust updates, because vertical adjust is calculated at start of frame and then fixed.

Parameters
adjustThe new adjust value.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 59 of file DummyRenderer.cc.

◆ updateHorizontalScrollHigh()

void openmsx::DummyRenderer::updateHorizontalScrollHigh ( byte  scroll,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a horizontal scroll change: the higher scroll value has changed.

Parameters
scrollThe new scroll value.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 50 of file DummyRenderer.cc.

◆ updateHorizontalScrollLow()

void openmsx::DummyRenderer::updateHorizontalScrollLow ( byte  scroll,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a horizontal scroll change: the lower scroll value has changed.

Parameters
scrollThe new scroll value.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 47 of file DummyRenderer.cc.

◆ updateMultiPage()

void openmsx::DummyRenderer::updateMultiPage ( bool  multiPage,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a horizontal scroll change: the multi page setting has changed.

Parameters
multiPageThe new multi page flag.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 56 of file DummyRenderer.cc.

◆ updateNameBase()

void openmsx::DummyRenderer::updateNameBase ( unsigned  addr,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a name table base address change.

Parameters
addrThe new base address.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 68 of file DummyRenderer.cc.

◆ updatePalette()

void openmsx::DummyRenderer::updatePalette ( unsigned  index,
int  grb,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP palette change.

Parameters
indexThe index [0..15] in the palette that changes.
grbThe new definition for the changed palette index: bit 10..8 is green, bit 6..4 is red and bit 2..0 is blue; all other bits are zero.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 41 of file DummyRenderer.cc.

◆ updatePatternBase()

void openmsx::DummyRenderer::updatePatternBase ( unsigned  addr,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a pattern table base address change.

Parameters
addrThe new base address.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 71 of file DummyRenderer.cc.

◆ updateSpritesEnabled()

void openmsx::DummyRenderer::updateSpritesEnabled ( bool  enabled,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP sprites enabled change.

Parameters
enabledThe new sprites enabled state.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 77 of file DummyRenderer.cc.

◆ updateSuperimposing()

void openmsx::DummyRenderer::updateSuperimposing ( const RawFrame videoSource,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP superimposing change.

Parameters
videoSourceVideo that should be superimposed, nullptr if none.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 22 of file DummyRenderer.cc.

◆ updateTransparency()

void openmsx::DummyRenderer::updateTransparency ( bool  enabled,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a VDP transparency enable/disable change.

Parameters
enabledThe new transparency state.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 19 of file DummyRenderer.cc.

◆ updateVerticalScroll()

void openmsx::DummyRenderer::updateVerticalScroll ( int  scroll,
EmuTime::param  time 
)
overridevirtual

Informs the renderer of a vertical scroll change.

Parameters
scrollThe new scroll value.
timeThe moment in emulated time this change occurs.

Implements openmsx::Renderer.

Definition at line 44 of file DummyRenderer.cc.

◆ updateVRAM()

void openmsx::DummyRenderer::updateVRAM ( unsigned  offset,
EmuTime::param  time 
)
overridevirtual

Informs the observer of a change in VRAM contents.

This update is sent just before the change, so the subcomponent can update itself to the given time based on the old contents.

Parameters
offsetOffset of byte that will change, relative to window base address.
timeThe moment in emulated time this change occurs.

Implements openmsx::VRAMObserver.

Definition at line 80 of file DummyRenderer.cc.

◆ updateWindow()

void openmsx::DummyRenderer::updateWindow ( bool  enabled,
EmuTime::param  time 
)
overridevirtual

Informs the observer that the entire VRAM window will change.

This update is sent just before the change, so the subcomponent can update itself to the given time based on the old contents. This happens if the base/index masks are changed, or if the window becomes disabled. TODO: Separate enable/disable from window move?

Parameters
enabledWill the window be enabled after the change? If the observer keeps a cache which is based on VRAM contents, it is only necessary to flush the cache if the new window is enabled, because no reads are allowed from disabled windows.
timeThe moment in emulated time this change occurs.

Implements openmsx::VRAMObserver.

Definition at line 83 of file DummyRenderer.cc.


The documentation for this class was generated from the following files: