openMSX
Public Member Functions | List of all members
openmsx::FBPostProcessor< Pixel > Class Template Reference

Rasterizer using SDL. More...

#include <FBPostProcessor.hh>

Inheritance diagram for openmsx::FBPostProcessor< Pixel >:
Inheritance graph
[legend]
Collaboration diagram for openmsx::FBPostProcessor< Pixel >:
Collaboration graph
[legend]

Public Member Functions

 FBPostProcessor (MSXMotherBoard &motherBoard, Display &display, OutputSurface &screen, const std::string &videoSource, unsigned maxWidth, unsigned height, bool canDoInterlace)
 
virtual ~FBPostProcessor ()
 
virtual void paint (OutputSurface &output)
 Paint this layer. More...
 
virtual std::unique_ptr< RawFramerotateFrames (std::unique_ptr< RawFrame > finishedFrame, FrameSource::FieldType field, EmuTime::param time)
 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...
 
virtual void takeRawScreenShot (unsigned height, const std::string &filename)
 Create a raw (=non-postprocessed) screenshot. More...
 
CliCommgetCliComm ()
 
- Public Member Functions inherited from openmsx::VideoLayer
virtual ~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...
 

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...
 
- 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)
 
- 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 >
virtual ~Observer ()
 
virtual void subjectDeleted (const Setting &)
 
- 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< RawFramecurrFrame
 The last finished frame, ready to be displayed. More...
 
std::unique_ptr< RawFrameprevFrame
 The frame before currFrame, ready to be displayed. More...
 
std::unique_ptr
< DeinterlacedFrame
deinterlacedFrame
 Combined currFrame and prevFrame. More...
 
std::unique_ptr< DoubledFrameinterlacedFrame
 Each line of currFrame twice, to get double vertical resolution. 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
 

Detailed Description

template<class Pixel>
class openmsx::FBPostProcessor< Pixel >

Rasterizer using SDL.

Definition at line 18 of file FBPostProcessor.hh.

Constructor & Destructor Documentation

template<class Pixel >
openmsx::FBPostProcessor< Pixel >::FBPostProcessor ( MSXMotherBoard motherBoard,
Display display,
OutputSurface screen,
const std::string &  videoSource,
unsigned  maxWidth,
unsigned  height,
bool  canDoInterlace 
)
template<class Pixel >
openmsx::FBPostProcessor< Pixel >::~FBPostProcessor ( )
virtual

Definition at line 253 of file FBPostProcessor.cc.

References openmsx::Subject< T >::detach().

Member Function Documentation

template<class Pixel >
void openmsx::FBPostProcessor< Pixel >::paint ( OutputSurface output)
virtual
template<class Pixel >
std::unique_ptr< RawFrame > openmsx::FBPostProcessor< Pixel >::rotateFrames ( std::unique_ptr< RawFrame finishedFrame,
FrameSource::FieldType  field,
EmuTime::param  time 
)
virtual

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.
fieldSpecifies what role (if any) the new frame plays in interlacing.
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 336 of file FBPostProcessor.cc.

References openmsx::PostProcessor::rotateFrames(), and xrange().


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