openMSX
Classes | Public Member Functions | Protected Member Functions | List of all members
openmsx::GLPostProcessor Class Referencefinal

Rasterizer using SDL. More...

#include <GLPostProcessor.hh>

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

Public Member Functions

 GLPostProcessor (MSXMotherBoard &motherBoard, Display &display, OutputSurface &screen, const std::string &videoSource, unsigned maxWidth, unsigned height, bool canDoInterlace)
 
 ~GLPostProcessor ()
 
void paint (OutputSurface &output) override
 Paint this layer. More...
 
std::unique_ptr< RawFramerotateFrames (std::unique_ptr< RawFrame > finishedFrame, EmuTime::param time) override
 Sets up the "abcdFrame" variables for a new frame. More...
 
- Public Member Functions inherited from openmsx::PostProcessor
virtual ~PostProcessor ()
 
void setSuperimposeVideoFrame (const RawFrame *videoSource)
 Set the Video frame on which to superimpose the 'normal' output of this PostProcessor. More...
 
void setSuperimposeVdpFrame (const FrameSource *vdpSource)
 Set the VDP frame on which to superimpose the 'normal' output of this PostProcessor. More...
 
void setRecorder (AviRecorder *recorder_)
 Start/stop recording. More...
 
bool isRecording () const
 Is recording active. More...
 
unsigned getBpp () const
 Get the number of bits per pixel for the pixels in these frames. More...
 
FrameSourcegetPaintFrame () const
 Get the frame that would be displayed. More...
 
void takeRawScreenShot (unsigned height, const std::string &filename) override
 Create a raw (=non-postprocessed) screenshot. More...
 
CliCommgetCliComm ()
 
- Public Member Functions inherited from openmsx::VideoLayer
int getVideoSource () const
 Returns the ID for this videolayer. More...
 
int getVideoSourceSetting () const
 
void setVideo9000Active (int video9000Source_, Video9000Active active)
 
bool needRender () const
 
bool needRecord () const
 
- Public Member Functions inherited from openmsx::Layer
virtual ~Layer ()
 
ZIndex getZ () const
 Query the Z-index of this layer. More...
 
Coverage getCoverage () const
 Query the coverage of this layer. More...
 
void setDisplay (LayerListener &display_)
 Store pointer to Display. More...
 

Protected Member Functions

void update (const Setting &setting) override
 
- Protected Member Functions inherited from openmsx::PostProcessor
 PostProcessor (MSXMotherBoard &motherBoard, Display &display, OutputSurface &screen, const std::string &videoSource, unsigned maxWidth, unsigned height, bool canDoInterlace)
 
- Protected Member Functions inherited from openmsx::VideoLayer
 VideoLayer (MSXMotherBoard &motherBoard, const std::string &videoSource)
 
 ~VideoLayer ()
 
void update (const Setting &setting) override
 
- Protected Member Functions inherited from openmsx::Layer
 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...
 
- Protected Member Functions inherited from openmsx::Observer< Setting >
 ~Observer ()
 
virtual void subjectDeleted (const Setting &)
 

Additional Inherited Members

- Public Types inherited from openmsx::VideoLayer
enum  Video9000Active { INACTIVE, ACTIVE_FRONT, ACTIVE_BACK }
 
- 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_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...
 
- Static Protected Member Functions inherited from openmsx::PostProcessor
static unsigned getLineWidth (FrameSource *frame, unsigned y, unsigned step)
 Returns the maximum width for lines [y..y+step). More...
 
- Protected Attributes inherited from openmsx::PostProcessor
RenderSettingsrenderSettings
 Render settings. More...
 
OutputSurfacescreen
 The surface which is visible to the user. More...
 
std::unique_ptr< RawFramelastFrames [4]
 The last 4 fully rendered (unscaled) MSX frames. More...
 
std::unique_ptr
< DeinterlacedFrame
deinterlacedFrame
 Combined the last two frames in a deinterlaced frame. More...
 
std::unique_ptr< DoubledFrameinterlacedFrame
 Each line of the last frame twice, to get double vertical resolution. More...
 
std::unique_ptr< Deflickerdeflicker
 Combine the last 4 frames into one 'flicker-free' frame. More...
 
std::unique_ptr
< SuperImposedFrame
superImposedFrame
 Result of superimposing 2 frames. More...
 
FrameSourcepaintFrame
 Represents a frame as it should be displayed. More...
 
AviRecorderrecorder
 Video recorder, nullptr when not recording. More...
 
const RawFramesuperImposeVideoFrame
 Video frame on which to superimpose the (VDP) output. More...
 
const FrameSourcesuperImposeVdpFrame
 
int interleaveCount
 
int lastFramesCount
 
int maxWidth
 
int height
 

Detailed Description

Rasterizer using SDL.

Definition at line 19 of file GLPostProcessor.hh.

Constructor & Destructor Documentation

openmsx::GLPostProcessor::GLPostProcessor ( MSXMotherBoard motherBoard,
Display display,
OutputSurface screen,
const std::string &  videoSource,
unsigned  maxWidth,
unsigned  height,
bool  canDoInterlace 
)
openmsx::GLPostProcessor::~GLPostProcessor ( )

Member Function Documentation

void openmsx::GLPostProcessor::paint ( OutputSurface output)
overridevirtual
std::unique_ptr< RawFrame > openmsx::GLPostProcessor::rotateFrames ( std::unique_ptr< RawFrame finishedFrame,
EmuTime::param  time 
)
overridevirtual

Sets up the "abcdFrame" variables for a new frame.

TODO: The point of passing the finished frame in and the new workFrame out is to be able to split off the scaler application as a separate class.

Parameters
finishedFrameFrame that has just become available.
timeThe moment in time the frame becomes available. Used to calculate the framerate for recording (depends on PAL/NTSC, frameskip).
Returns
RawFrame object that can be used for building the next frame.

Reimplemented from openmsx::PostProcessor.

Definition at line 249 of file GLPostProcessor.cc.

References openmsx::PostProcessor::rotateFrames().

void openmsx::GLPostProcessor::update ( const Setting setting)
overrideprotectedvirtual

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