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 
7 namespace openmsx {
8 
19 template <typename Pixel>
20 class SuperImposedVideoFrame final : public FrameSource
21 {
22 public:
23  SuperImposedVideoFrame(const FrameSource& src, const FrameSource& super,
24  const PixelOperations<Pixel>& pixelOps);
25 
26  // FrameSource
27  unsigned getLineWidth(unsigned line) const override;
28  const void* getLineInfo(
29  unsigned line, unsigned& width,
30  void* buf, unsigned bufWidth) const override;
31 
32 private:
33  const FrameSource& src;
34  const FrameSource& super;
35  PixelOperations<Pixel> pixelOps;
36 };
37 
38 } // namespace openmsx
39 
40 #endif
This class represents a frame that is the (per-pixel) alpha-blend of a (laser-disc) video frame and a...
Interface for getting lines from a video frame.
Definition: FrameSource.hh:14
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
SuperImposedVideoFrame(const FrameSource &src, const FrameSource &super, const PixelOperations< Pixel > &pixelOps)
unsigned getLineWidth(unsigned line) const override
Gets the number of display pixels on the given line.
const void * getLineInfo(unsigned line, unsigned &width, void *buf, unsigned bufWidth) const override
Abstract implementation of getLinePtr().