openMSX
|
Rasterizer using SDL. More...
#include <FBPostProcessor.hh>
Public Member Functions | |
FBPostProcessor (MSXMotherBoard &motherBoard, Display &display, OutputSurface &screen, const std::string &videoSource, unsigned maxWidth, unsigned height, bool canDoInterlace) | |
~FBPostProcessor () override | |
FBPostProcessor (const FBPostProcessor &)=delete | |
FBPostProcessor & | operator= (const FBPostProcessor &)=delete |
void | paint (OutputSurface &output) override |
Paint this layer. More... | |
std::unique_ptr< RawFrame > | rotateFrames (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 | |
~PostProcessor () override | |
virtual std::unique_ptr< RawFrame > | rotateFrames (std::unique_ptr< RawFrame > finishedFrame, EmuTime::param time) |
Sets up the "abcdFrame" variables for a new frame. More... | |
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... | |
FrameSource * | getPaintFrame () const |
Get the frame that would be displayed. More... | |
void | takeRawScreenShot (unsigned height, const std::string &filename) override |
Create a raw (=non-post-processed) screenshot. More... | |
CliComm & | getCliComm () |
Public Member Functions inherited from openmsx::VideoLayer | |
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 |
Public Member Functions inherited from openmsx::Layer | |
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... | |
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) | |
~VideoLayer () override | |
void | update (const Setting &setting) noexcept 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 ()=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 &) |
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 | |
RenderSettings & | renderSettings |
Render settings. More... | |
OutputSurface & | screen |
The surface which is visible to the user. More... | |
std::array< std::unique_ptr< RawFrame >, 4 > | lastFrames |
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< DoubledFrame > | interlacedFrame |
Each line of the last frame twice, to get double vertical resolution. More... | |
std::unique_ptr< Deflicker > | deflicker |
Combine the last 4 frames into one 'flicker-free' frame. More... | |
std::unique_ptr< SuperImposedFrame > | superImposedFrame |
Result of superimposing 2 frames. More... | |
FrameSource * | paintFrame = nullptr |
Represents a frame as it should be displayed. More... | |
AviRecorder * | recorder = nullptr |
Video recorder, nullptr when not recording. More... | |
const RawFrame * | superImposeVideoFrame = nullptr |
Video frame on which to superimpose the (VDP) output. More... | |
const FrameSource * | superImposeVdpFrame = nullptr |
int | interleaveCount = 0 |
int | lastFramesCount = 0 |
unsigned | maxWidth |
unsigned | height |
Rasterizer using SDL.
Definition at line 21 of file FBPostProcessor.hh.
openmsx::FBPostProcessor< Pixel >::FBPostProcessor | ( | MSXMotherBoard & | motherBoard, |
Display & | display, | ||
OutputSurface & | screen, | ||
const std::string & | videoSource, | ||
unsigned | maxWidth, | ||
unsigned | height, | ||
bool | canDoInterlace | ||
) |
Definition at line 235 of file FBPostProcessor.cc.
References openmsx::Subject< T >::attach(), openmsx::OutputSurface::getLogicalWidth(), openmsx::RenderSettings::getNoiseSetting(), openmsx::PostProcessor::renderSettings, and openmsx::PostProcessor::screen.
|
override |
Definition at line 251 of file FBPostProcessor.cc.
|
delete |
|
delete |
|
overridevirtual |
Paint this layer.
Implements openmsx::Layer.
Definition at line 257 of file FBPostProcessor.cc.
References openmsx::StretchScalerOutputFactory< Pixel >::create(), openmsx::ScalerFactory< Pixel >::createScaler(), and g.
|
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.
finishedFrame | Frame that has just become available. |
time | The moment in time the frame becomes available. Used to calculate the framerate for recording (depends on PAL/NTSC, frameskip). |
Reimplemented from openmsx::PostProcessor.
Definition at line 335 of file FBPostProcessor.cc.
References global_urng(), openmsx::PostProcessor::rotateFrames(), and xrange().