openMSX
|
#include <Deflicker.hh>
Public Member Functions | |
Deflicker (std::span< std::unique_ptr< RawFrame >, 4 > lastFrames) | |
virtual | ~Deflicker ()=default |
void | init () |
unsigned | getLineWidth (unsigned line) const override |
Gets the number of display pixels on the given line. More... | |
const void * | getLineInfo (unsigned line, unsigned &width, void *buf, unsigned bufWidth) const override |
Abstract implementation of getLinePtr(). More... | |
![]() | |
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... | |
Pixel | getLineColor (unsigned line) const |
Get the (single) color of the given line. More... | |
std::span< const Pixel > | getLine (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... | |
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... | |
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... | |
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... | |
Additional Inherited Members | |
![]() | |
enum | FieldType { FIELD_NONINTERLACED , FIELD_EVEN , FIELD_ODD } |
What role does this frame play in interlacing? More... | |
using | Pixel = uint32_t |
![]() | |
FrameSource ()=default | |
~FrameSource ()=default | |
void | setHeight (unsigned height_) |
virtual bool | hasContiguousStorage () const |
Returns true when two consecutive rows are also consecutive in memory. More... | |
void | scaleLine (std::span< const Pixel > in, std::span< Pixel > out) const |
Definition at line 12 of file Deflicker.hh.
openmsx::Deflicker::Deflicker | ( | std::span< std::unique_ptr< RawFrame >, 4 > | lastFrames | ) |
Definition at line 14 of file Deflicker.cc.
|
virtualdefault |
|
overridevirtual |
Abstract implementation of getLinePtr().
Pixel type is unspecified (implementations that care about the exact type should get it via some other mechanism).
line | The line number for the requested line. |
lineWidth | Output parameter, the width of the returned line in pixel units. |
buf | Buffer space that can optionally be used by the implementation. |
bufWidth | The size of the above buffer, in pixel units. |
Implements openmsx::FrameSource.
Definition at line 58 of file Deflicker.cc.
References openmsx::FrameSource::scaleLine(), VLA_SSE_ALIGNED, and xrange().
|
overridevirtual |
Gets the number of display pixels on the given line.
Implements openmsx::FrameSource.
Definition at line 25 of file Deflicker.cc.
void openmsx::Deflicker::init | ( | ) |
Definition at line 19 of file Deflicker.cc.
References openmsx::FrameSource::FIELD_NONINTERLACED, openmsx::FrameSource::getHeight(), openmsx::FrameSource::init(), and openmsx::FrameSource::setHeight().