13template<std::
unsigned_
integral Pixel>
16 std::unique_ptr<PostProcessor> postProcessor_)
17 : postProcessor(
std::move(postProcessor_))
18 , workFrame(
std::make_unique<
RawFrame>(screen.getPixelFormat(), 640, 480))
22template<std::
unsigned_
integral Pixel>
25template<std::
unsigned_
integral Pixel>
28 return postProcessor.get();
31template<std::
unsigned_
integral Pixel>
34 workFrame = postProcessor->rotateFrames(std::move(workFrame), time);
37template<std::
unsigned_
integral Pixel>
43 auto background =
static_cast<Pixel>(workFrame->getPixelFormat().map(r,
g, b));
44 for (
auto y :
xrange(480)) {
45 workFrame->setBlank(y, background);
49template<std::
unsigned_
integral 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)