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

Polymorphic wrapper around another line scaler. More...

#include <LineScalers.hh>

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

Public Member Functions

 PolyScale ()
 
 PolyScale (PixelOperations< Pixel > pixelOps)
 
void operator() (std::span< const Pixel > in, std::span< Pixel > out) 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...
 
virtual void operator() (std::span< const Pixel > in, std::span< Pixel > out)=0
 Actually scale a line. More...
 
virtual bool isCopy () const =0
 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 ()=default
 

Detailed Description

template<std::unsigned_integral Pixel, typename Scaler>
class openmsx::PolyScale< Pixel, Scaler >

Polymorphic wrapper around another line scaler.

This version directly contains (and thus constructs) the wrapped Line Scaler.

Definition at line 312 of file LineScalers.hh.

Constructor & Destructor Documentation

◆ PolyScale() [1/2]

template<std::unsigned_integral Pixel, typename Scaler >
openmsx::PolyScale< Pixel, Scaler >::PolyScale ( )
inline

Definition at line 315 of file LineScalers.hh.

◆ PolyScale() [2/2]

template<std::unsigned_integral Pixel, typename Scaler >
openmsx::PolyScale< Pixel, Scaler >::PolyScale ( PixelOperations< Pixel pixelOps)
inlineexplicit

Definition at line 319 of file LineScalers.hh.

Member Function Documentation

◆ isCopy()

template<std::unsigned_integral Pixel, typename Scaler >
bool openmsx::PolyScale< 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 327 of file LineScalers.hh.

◆ operator()()

template<std::unsigned_integral Pixel, typename Scaler >
void openmsx::PolyScale< Pixel, Scaler >::operator() ( std::span< const Pixel in,
std::span< Pixel out 
)
inlineoverridevirtual

Actually scale a line.

Parameters
inBuffer containing input line.
outBuffer that should be filled with output. Note: The relative size of the input and output depends on the actual scaler. For example Scale_2on1 requires twice as many pixels in the input than in the output.

Implements openmsx::PolyLineScaler< Pixel >.

Definition at line 323 of file LineScalers.hh.


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