openMSX
|
This class represents a frame that is the (per-pixel) alpha-blend of two other frames. More...
#include <SuperImposedFrame.hh>
Public Member Functions | |
void | init (const FrameSource *top, const FrameSource *bottom) |
virtual | ~SuperImposedFrame ()=default |
![]() | |
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<typename Pixel > | |
Pixel | getLineColor (unsigned line) const |
Get the (single) color of the given line. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr (int line, unsigned width, Pixel *buf) const |
Gets a pointer to the pixels of the given line number. More... | |
template<typename Pixel > | |
const Pixel * | getMultiLinePtr (int line, unsigned numLines, unsigned &actualLines, unsigned width, Pixel *buf) const |
Similar to the above getLinePtr() method, but now tries to get multiple lines at once. More... | |
virtual const void * | getLineInfo (unsigned line, unsigned &lineWidth, void *buf, unsigned bufWidth) const =0 |
Abstract implementation of getLinePtr(). More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr320_240 (unsigned line, Pixel *buf) const |
Get a pointer to a given line in this frame, the frame is scaled to 320x240 pixels. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr640_480 (unsigned line, Pixel *buf) const |
Get a pointer to a given line in this frame, the frame is scaled to 640x480 pixels. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr960_720 (unsigned line, Pixel *buf) const |
Get a pointer to a given line in this frame, the frame is scaled to 960x720 pixels. More... | |
virtual unsigned | getRowLength () const |
Returns the distance (in pixels) between two consecutive lines. More... | |
const PixelFormat & | getPixelFormat () const |
Static Public Member Functions | |
static std::unique_ptr< SuperImposedFrame > | create (const PixelFormat &format) |
Protected Member Functions | |
SuperImposedFrame (const PixelFormat &format) | |
![]() | |
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<typename Pixel > | |
void | scaleLine (const Pixel *in, Pixel *out, unsigned inWidth, unsigned outWidth) const |
Protected Attributes | |
const FrameSource * | top |
const FrameSource * | bottom |
Additional Inherited Members | |
![]() | |
enum | FieldType { FIELD_NONINTERLACED , FIELD_EVEN , FIELD_ODD } |
What role does this frame play in interlacing? More... | |
This class represents a frame that is the (per-pixel) alpha-blend of two other frames.
When the two input frames have a different resolution. The result will have the highest resolution of the two inputs (in other words, the lower resolution frame gets upscaled to the higher resolution).
Definition at line 14 of file SuperImposedFrame.hh.
|
virtualdefault |
|
explicitprotected |
Definition at line 47 of file SuperImposedFrame.cc.
References openmsx::DiskImageUtils::format().
|
static |
Definition at line 31 of file SuperImposedFrame.cc.
References openmsx::DiskImageUtils::format(), and UNREACHABLE.
Referenced by openmsx::PostProcessor::PostProcessor().
void openmsx::SuperImposedFrame::init | ( | const FrameSource * | top, |
const FrameSource * | bottom | ||
) |
Definition at line 52 of file SuperImposedFrame.cc.
References bottom, openmsx::FrameSource::getHeight(), gl::max(), openmsx::FrameSource::setHeight(), and top.
|
protected |
Definition at line 27 of file SuperImposedFrame.hh.
Referenced by init().
|
protected |
Definition at line 26 of file SuperImposedFrame.hh.
Referenced by init().