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

This class represents a frame that is the (per-pixel) alpha-blend of two other frames. More...

#include <SuperImposedFrame.hh>

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

Public Member Functions

void init (const FrameSource *top, const FrameSource *bottom)
 
- Public Member Functions inherited from openmsx::FrameSource
virtual ~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<typename Pixel >
const Pixel getLineColor (unsigned line) const
 Get the (single) color of the given line. More...
 
template<typename Pixel >
const PixelgetLinePtr (int line, unsigned width, Pixel *buf) const
 Gets a pointer to the pixels of the given line number. More...
 
template<typename Pixel >
const PixelgetMultiLinePtr (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 PixelgetLinePtr320_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 PixelgetLinePtr640_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 PixelgetLinePtr960_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 SDL_PixelFormat & getSDLPixelFormat () const
 

Static Public Member Functions

static std::unique_ptr
< SuperImposedFrame
create (const SDL_PixelFormat &format)
 

Protected Member Functions

 SuperImposedFrame (const SDL_PixelFormat &format)
 
- Protected Member Functions inherited from openmsx::FrameSource
 FrameSource (const SDL_PixelFormat &format)
 
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 FrameSourcetop
 
const FrameSourcebottom
 

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

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.

Constructor & Destructor Documentation

openmsx::SuperImposedFrame::SuperImposedFrame ( const SDL_PixelFormat &  format)
protected

Definition at line 47 of file SuperImposedFrame.cc.

Member Function Documentation

std::unique_ptr< SuperImposedFrame > openmsx::SuperImposedFrame::create ( const SDL_PixelFormat &  format)
static

Definition at line 31 of file SuperImposedFrame.cc.

References UNREACHABLE.

Referenced by openmsx::PostProcessor::PostProcessor().

void openmsx::SuperImposedFrame::init ( const FrameSource top,
const FrameSource bottom 
)

Member Data Documentation

const FrameSource* openmsx::SuperImposedFrame::bottom
protected

Definition at line 25 of file SuperImposedFrame.hh.

Referenced by init().

const FrameSource* openmsx::SuperImposedFrame::top
protected

Definition at line 24 of file SuperImposedFrame.hh.

Referenced by init().


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