openMSX
SuperImposedVideoFrame.hh
Go to the documentation of this file.
1 #ifndef SUPERIMPOSEDVIDEOFRAME_HH
2 #define SUPERIMPOSEDVIDEOFRAME_HH
3 
4 #include "FrameSource.hh"
5 #include "PixelOperations.hh"
6 #include <concepts>
7 
8 namespace openmsx {
9 
20 template<std::unsigned_integral Pixel>
21 class SuperImposedVideoFrame final : public FrameSource
22 {
23 public:
24  SuperImposedVideoFrame(const FrameSource& src, const FrameSource& super,
25  const PixelOperations<Pixel>& pixelOps);
26 
27  // FrameSource
28  [[nodiscard]] unsigned getLineWidth(unsigned line) const override;
29  [[nodiscard]] const void* getLineInfo(
30  unsigned line, unsigned& width,
31  void* buf, unsigned bufWidth) const override;
32 
33 private:
34  const FrameSource& src;
35  const FrameSource& super;
36  PixelOperations<Pixel> pixelOps;
37 };
38 
39 } // namespace openmsx
40 
41 #endif
Interface for getting lines from a video frame.
Definition: FrameSource.hh:17
This class represents a frame that is the (per-pixel) alpha-blend of a (laser-disc) video frame and a...
SuperImposedVideoFrame(const FrameSource &src, const FrameSource &super, const PixelOperations< Pixel > &pixelOps)
const void * getLineInfo(unsigned line, unsigned &width, void *buf, unsigned bufWidth) const override
Abstract implementation of getLinePtr().
unsigned getLineWidth(unsigned line) const override
Gets the number of display pixels on the given line.
This file implemented 3 utility functions:
Definition: Autofire.cc:9