openMSX
|
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are applied. More...
#include <RawFrame.hh>
Public Member Functions | |
RawFrame (const PixelFormat &format, unsigned maxWidth, unsigned height) | |
template<std::unsigned_integral Pixel> | |
Pixel * | getLinePtrDirect (unsigned y) |
unsigned | getLineWidthDirect (unsigned y) const |
void | setLineWidth (unsigned line, unsigned width) |
template<std::unsigned_integral Pixel> | |
void | setBlank (unsigned line, Pixel color) |
unsigned | getRowLength () const override |
Returns the distance (in pixels) between two consecutive lines. 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... | |
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> | |
const Pixel * | getLinePtr (int line, unsigned width, Pixel *buf) const |
Gets a pointer to the pixels of the given line number. More... | |
template<std::unsigned_integral 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... | |
template<std::unsigned_integral 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<std::unsigned_integral 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<std::unsigned_integral 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... | |
const PixelFormat & | getPixelFormat () const |
Protected Member Functions | |
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... | |
bool | hasContiguousStorage () const override |
Returns true when two consecutive rows are also consecutive in memory. More... | |
![]() | |
FrameSource (const PixelFormat &format) | |
~FrameSource ()=default | |
void | setHeight (unsigned height_) |
template<std::unsigned_integral Pixel> | |
void | scaleLine (const Pixel *in, Pixel *out, unsigned inWidth, unsigned outWidth) const |
Additional Inherited Members | |
![]() | |
enum | FieldType { FIELD_NONINTERLACED , FIELD_EVEN , FIELD_ODD } |
What role does this frame play in interlacing? More... | |
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are applied.
Definition at line 14 of file RawFrame.hh.
openmsx::RawFrame::RawFrame | ( | const PixelFormat & | format, |
unsigned | maxWidth, | ||
unsigned | height | ||
) |
Definition at line 7 of file RawFrame.cc.
References openmsx::FrameSource::FIELD_NONINTERLACED, openmsx::DiskImageUtils::format(), openmsx::FrameSource::init(), openmsx::MemBuffer< T, ALIGNMENT >::resize(), setBlank(), openmsx::FrameSource::setHeight(), and xrange().
|
overrideprotectedvirtual |
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 41 of file RawFrame.cc.
References openmsx::MemBuffer< T, ALIGNMENT >::data(), and openmsx::FrameSource::getHeight().
|
inline |
Definition at line 20 of file RawFrame.hh.
References openmsx::MemBuffer< T, ALIGNMENT >::data().
|
overrideprotectedvirtual |
Gets the number of display pixels on the given line.
Implements openmsx::FrameSource.
Definition at line 35 of file RawFrame.cc.
References openmsx::FrameSource::getHeight().
|
inline |
Definition at line 24 of file RawFrame.hh.
|
overridevirtual |
Returns the distance (in pixels) between two consecutive lines.
Is meant to be used in combination with getMultiLinePtr(). The result is only meaningful when hasContiguousStorage() returns true (also only in that case does getMultiLinePtr() return more than 1 line).
Reimplemented from openmsx::FrameSource.
Definition at line 50 of file RawFrame.cc.
|
overrideprotectedvirtual |
Returns true when two consecutive rows are also consecutive in memory.
Reimplemented from openmsx::FrameSource.
Definition at line 55 of file RawFrame.cc.
|
inline |
Definition at line 35 of file RawFrame.hh.
References openmsx::FrameSource::getHeight().
Referenced by RawFrame().
|
inline |
Definition at line 28 of file RawFrame.hh.
References openmsx::FrameSource::getHeight().