openMSX
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
openmsx::Deflicker Class Reference

#include <Deflicker.hh>

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

Public Member Functions

void init ()
 
virtual ~Deflicker ()=default
 
- Public Member Functions inherited from openmsx::FrameSource
void init (FieldType fieldType_)
 (Re)initialize an existing FrameSource. More...
 
FieldType getField () const
 Gets the role this frame plays in interlacing. More...
 
unsigned getHeight () const
 Gets the number of lines in this frame. More...
 
virtual unsigned getLineWidth (unsigned line) const =0
 Gets the number of display pixels on the given line. More...
 
unsigned getWidth () const
 Get the width of (all) lines in this frame. More...
 
template<std::unsigned_integral Pixel>
Pixel getLineColor (unsigned line) const
 Get the (single) color of the given line. More...
 
template<std::unsigned_integral Pixel>
std::span< const PixelgetLine (int line, std::span< Pixel > buf) const
 Gets a pointer to the pixels of the given line number. More...
 
virtual const void * getLineInfo (unsigned line, unsigned &lineWidth, void *buf, unsigned bufWidth) const =0
 Abstract implementation of getLinePtr(). More...
 
template<std::unsigned_integral Pixel>
std::span< const Pixel, 320 > getLinePtr320_240 (unsigned line, std::span< Pixel, 320 > buf) const
 Get a pointer to a given line in this frame, the frame is scaled to 320x240 pixels. More...
 
template<std::unsigned_integral Pixel>
std::span< const Pixel, 640 > getLinePtr640_480 (unsigned line, std::span< Pixel, 640 > buf) const
 Get a pointer to a given line in this frame, the frame is scaled to 640x480 pixels. More...
 
template<std::unsigned_integral Pixel>
std::span< const Pixel, 960 > getLinePtr960_720 (unsigned line, std::span< Pixel, 960 > buf) const
 Get a pointer to a given line in this frame, the frame is scaled to 960x720 pixels. More...
 
const PixelFormatgetPixelFormat () const
 

Static Public Member Functions

static std::unique_ptr< Deflickercreate (const PixelFormat &format, std::span< std::unique_ptr< RawFrame >, 4 > lastFrames)
 

Protected Member Functions

 Deflicker (const PixelFormat &format, std::span< std::unique_ptr< RawFrame >, 4 > lastFrames)
 
unsigned getLineWidth (unsigned line) const override
 Gets the number of display pixels on the given line. More...
 
- Protected Member Functions inherited from openmsx::FrameSource
 FrameSource (const PixelFormat &format)
 
 ~FrameSource ()=default
 
void setHeight (unsigned height_)
 
virtual bool hasContiguousStorage () const
 Returns true when two consecutive rows are also consecutive in memory. More...
 
template<std::unsigned_integral Pixel>
void scaleLine (std::span< const Pixel > in, std::span< Pixel > out) const
 

Protected Attributes

std::span< std::unique_ptr< RawFrame >, 4 > lastFrames
 

Additional Inherited Members

- Public Types inherited from openmsx::FrameSource
enum  FieldType { FIELD_NONINTERLACED , FIELD_EVEN , FIELD_ODD }
 What role does this frame play in interlacing? More...
 

Detailed Description

Definition at line 12 of file Deflicker.hh.

Constructor & Destructor Documentation

◆ ~Deflicker()

virtual openmsx::Deflicker::~Deflicker ( )
virtualdefault

◆ Deflicker()

openmsx::Deflicker::Deflicker ( const PixelFormat format,
std::span< std::unique_ptr< RawFrame >, 4 >  lastFrames 
)
protected

Definition at line 51 of file Deflicker.cc.

References openmsx::DiskImageUtils::format().

Member Function Documentation

◆ create()

std::unique_ptr< Deflicker > openmsx::Deflicker::create ( const PixelFormat format,
std::span< std::unique_ptr< RawFrame >, 4 >  lastFrames 
)
static

◆ getLineWidth()

unsigned openmsx::Deflicker::getLineWidth ( unsigned  line) const
overrideprotectedvirtual

Gets the number of display pixels on the given line.

Returns
line width (=1 for a vertical border line)

Implements openmsx::FrameSource.

Definition at line 64 of file Deflicker.cc.

References lastFrames.

◆ init()

void openmsx::Deflicker::init ( )

Member Data Documentation

◆ lastFrames

std::span<std::unique_ptr<RawFrame>, 4> openmsx::Deflicker::lastFrames
protected

Definition at line 29 of file Deflicker.hh.

Referenced by create(), getLineWidth(), and init().


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