openMSX
Deflicker.hh
Go to the documentation of this file.
1#ifndef DEFLICKER_HH
2#define DEFLICKER_HH
3
4#include "FrameSource.hh"
5
6#include <memory>
7#include <span>
8
9namespace openmsx {
10
11class RawFrame;
12
13class Deflicker final : public FrameSource
14{
15public:
16 explicit Deflicker(std::span<std::unique_ptr<RawFrame>, 4> lastFrames);
17 Deflicker(const Deflicker&) = default;
18 Deflicker(Deflicker&&) = default;
19 Deflicker& operator=(const Deflicker&) = default;
21 ~Deflicker() = default;
22
23 void init();
24
25 [[nodiscard]] unsigned getLineWidth(unsigned line) const override;
26 [[nodiscard]] std::span<const Pixel> getUnscaledLine(
27 unsigned line, std::span<Pixel> helpBuf) const override;
28
29private:
30 std::span<std::unique_ptr<RawFrame>, 4> lastFrames;
31};
32
33} // namespace openmsx
34
35#endif
Deflicker(Deflicker &&)=default
Deflicker(const Deflicker &)=default
~Deflicker()=default
Deflicker & operator=(Deflicker &&)=default
std::span< const Pixel > getUnscaledLine(unsigned line, std::span< Pixel > helpBuf) const override
Get a specific line, with the 'native' line-width.
Definition Deflicker.cc:62
Deflicker & operator=(const Deflicker &)=default
unsigned getLineWidth(unsigned line) const override
Gets the number of display pixels on the given line.
Definition Deflicker.cc:29
Interface for getting lines from a video frame.
This file implemented 3 utility functions:
Definition Autofire.cc:11