1#ifndef SDLRASTERIZER_HH
2#define SDLRASTERIZER_HH
36 std::unique_ptr<PostProcessor> postProcessor);
45 [[nodiscard]]
bool isActive()
override;
46 void reset()
override;
50 void setPalette(
unsigned index,
int grb)
override;
57 void drawBorder(
int fromX,
int fromY,
int limitX,
int limitY)
override;
60 int displayX,
int displayY,
61 int displayWidth,
int displayHeight)
override;
64 int displayX,
int displayY,
65 int displayWidth,
int displayHeight)
override;
69 inline void renderBitmapLine(std::span<Pixel> buf,
unsigned vramLine);
79 void precalcPalette();
85 void precalcColorIndex0(
DisplayMode mode,
bool transparency,
86 const RawFrame* superimposing,
byte bgcolorIndex);
89 std::pair<Pixel, Pixel> getBorderColors();
110 const std::unique_ptr<PostProcessor> postProcessor;
114 std::unique_ptr<RawFrame> workFrame;
144 std::array<Pixel, 16 * 2> palFg;
145 std::array<Pixel, 16> palBg;
149 std::array<Pixel, 16> palGraphic7Sprites;
154 std::array<std::array<std::array<Pixel, 8>, 8>, 8> V9938_COLORS;
159 std::array<Pixel, 256> PALETTE256;
163 std::array<Pixel, 32768> V9958_COLORS;
Utility class for converting VRAM contents to host pixels.
Utility class for converting VRAM contents to host pixels.
Represents a VDP display mode.
Represents the output window/screen of openMSX.
Generic Gang-of-Four Observer class, templatized edition.
A frame buffer where pixels can be written to.
A post processor builds the frame that is displayed from the MSX frame, while applying effects such a...
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Class containing all settings for renderers.
Rasterizer using a frame buffer approach: it writes pixels to a single rectangular pixel buffer.
PostProcessor * getPostProcessor() const override
See VDP::getPostProcessor().
bool isActive() override
Will the output of this Rasterizer be displayed? There is no point in producing a frame that will not...
void setBackgroundColor(byte index) override
Changes the background color.
SDLRasterizer & operator=(const SDLRasterizer &)=delete
void drawDisplay(int fromX, int fromY, int displayX, int displayY, int displayWidth, int displayHeight) override
Render a rectangle of display pixels on the host screen.
void setPalette(unsigned index, int grb) override
Change an entry in the palette.
void frameEnd() override
Indicates the end of the current frame.
SDLRasterizer(const SDLRasterizer &)=delete
void setBorderMask(bool masked) override
void frameStart(EmuTime::param time) override
Indicates the start of a new frame.
void setHorizontalAdjust(int adjust) override
void setDisplayMode(DisplayMode mode) override
Precalc several values that depend on the display mode.
SDLRasterizer(SDLRasterizer &&)=delete
~SDLRasterizer() override
void drawBorder(int fromX, int fromY, int limitX, int limitY) override
Render a rectangle of border pixels on the host screen.
void drawSprites(int fromX, int fromY, int displayX, int displayY, int displayWidth, int displayHeight) override
Render a rectangle of sprite pixels on the host screen.
void reset() override
Resynchronize with VDP: all cached states are flushed.
bool isRecording() const override
Is video recording active?
SDLRasterizer & operator=(SDLRasterizer &&)=delete
void setTransparency(bool enabled) override
void setSuperimposeVideoFrame(const RawFrame *videoSource) override
void setHorizontalScrollLow(byte scroll) override
Utility class for converting VRAM contents to host pixels.
Manages VRAM contents and synchronizes the various users of the VRAM.
Unified implementation of MSX Video Display Processors (VDPs).
This file implemented 3 utility functions: