13 template<
typename Pixel>
16 std::unique_ptr<PostProcessor> postProcessor_)
17 : postProcessor(std::move(postProcessor_))
18 , workFrame(std::make_unique<
RawFrame>(screen.getPixelFormat(), 640, 480))
22 template<
typename Pixel>
25 template<
typename Pixel>
28 return postProcessor.get();
31 template<
typename Pixel>
34 workFrame = postProcessor->rotateFrames(std::move(workFrame), time);
37 template<
typename Pixel>
43 auto background =
static_cast<Pixel>(workFrame->getPixelFormat().map(r,
g, b));
44 for (
auto y :
xrange(480)) {
45 workFrame->setBlank(y, background);
49 template<
typename Pixel>
52 return workFrame.get();
60 #if HAVE_32BPP || COMPONENT_GL
Rasterizer using a frame buffer approach: it writes pixels to a single rectangular pixel buffer.
LDSDLRasterizer(OutputSurface &screen, std::unique_ptr< PostProcessor > postProcessor)
void drawBlank(int r, int g, int b) override
void frameStart(EmuTime::param time) override
PostProcessor * getPostProcessor() const override
RawFrame * getRawFrame() override
~LDSDLRasterizer() override
A frame buffer where pixels can be written to.
Abstract base class for post processors.
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
This file implemented 3 utility functions:
constexpr auto xrange(T e)