openMSX
Public Member Functions | List of all members
openmsx::PolyScaleRef< Pixel, Scaler > Class Template Reference

Like PolyScale above, but instead keeps a reference to the actual scaler. More...

#include <LineScalers.hh>

Inheritance diagram for openmsx::PolyScaleRef< Pixel, Scaler >:
Inheritance graph
[legend]
Collaboration diagram for openmsx::PolyScaleRef< Pixel, Scaler >:
Collaboration graph
[legend]

Public Member Functions

 PolyScaleRef (Scaler &scaler_)
 
void operator() (const Pixel *in, Pixel *out, size_t outWidth) override
 Actually scale a line. More...
 
bool isCopy () const override
 Is this scale operation actually a copy? This info can be used to (in a multi-step scale operation) immediately produce the output of the previous step in this step's output buffer, so effectively skipping this step. More...
 

Additional Inherited Members

- Protected Member Functions inherited from openmsx::PolyLineScaler< Pixel >
 ~PolyLineScaler ()
 

Detailed Description

template<typename Pixel, typename Scaler>
class openmsx::PolyScaleRef< Pixel, Scaler >

Like PolyScale above, but instead keeps a reference to the actual scaler.

Can be used when the actual scaler is expensive to construct (e.g. Blur_1on3).

Definition at line 337 of file LineScalers.hh.

Constructor & Destructor Documentation

template<typename Pixel , typename Scaler >
openmsx::PolyScaleRef< Pixel, Scaler >::PolyScaleRef ( Scaler scaler_)
inlineexplicit

Definition at line 340 of file LineScalers.hh.

Member Function Documentation

template<typename Pixel , typename Scaler >
bool openmsx::PolyScaleRef< Pixel, Scaler >::isCopy ( ) const
inlineoverridevirtual

Is this scale operation actually a copy? This info can be used to (in a multi-step scale operation) immediately produce the output of the previous step in this step's output buffer, so effectively skipping this step.

Implements openmsx::PolyLineScaler< Pixel >.

Definition at line 348 of file LineScalers.hh.

template<typename Pixel , typename Scaler >
void openmsx::PolyScaleRef< Pixel, Scaler >::operator() ( const Pixel in,
Pixel out,
size_t  outWidth 
)
inlineoverridevirtual

Actually scale a line.

Parameters
inPointer to buffer containing input line.
outPointer to buffer that should be filled with output.
outWidthThe number of pixels that should be output. Note: The number of input pixels is not explicitly specified. This depends on the actual scaler, for example Scale_2on1 requires twice as many pixels in the input than the output.

Implements openmsx::PolyLineScaler< Pixel >.

Definition at line 344 of file LineScalers.hh.


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