SuperImposeScalerOutput.hh 868 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef SUPERIMPOSESCALEROUTPUT_HH
  2. #define SUPERIMPOSESCALEROUTPUT_HH
  3. #include "ScalerOutput.hh"
  4. #include "PixelOperations.hh"
  5. namespace openmsx {
  6. class RawFrame;
  7. template<typename Pixel>
  8. class SuperImposeScalerOutput final : public ScalerOutput<Pixel>
  9. {
  10. public:
  11. SuperImposeScalerOutput(ScalerOutput<Pixel>& output,
  12. const RawFrame& superImpose_,
  13. const PixelOperations<Pixel>& pixelOps_);
  14. unsigned getWidth() const override;
  15. unsigned getHeight() const override;
  16. Pixel* acquireLine(unsigned y) override;
  17. void releaseLine(unsigned y, Pixel* buf) override;
  18. void fillLine (unsigned y, Pixel color) override;
  19. private:
  20. const Pixel* getSrcLine(unsigned y, Pixel* buf);
  21. ScalerOutput<Pixel>& output;
  22. const RawFrame& superImpose;
  23. const PixelOperations<Pixel> pixelOps;
  24. };
  25. } // namespace openmsx
  26. #endif