Viewport: Cache landscape pixels in map mode

Avoid invalidating landscape pixels for non-landscape updates
(vehicles, overlays, etc.)
This commit is contained in:
Jonathan G Rennison
2020-10-01 23:11:15 +01:00
parent 8071976b0e
commit a474e71243
23 changed files with 268 additions and 143 deletions

View File

@@ -115,24 +115,28 @@ public:
virtual void SetPixel(void *video, int x, int y, uint8 colour) = 0;
/**
* Draw a sequence of pixels on the video-buffer.
* Draw a rectangle of pixels on the video-buffer.
* @param video The destination pointer (video-buffer).
* @param x The x position within video-buffer.
* @param y The y position within video-buffer.
* @param colours A 8bpp colour mapping buffer.
* @param width The length of the line.
* @param lines The number of lines.
* @param width The length of the lines.
* @param pitch The pitch of the colours buffer
*/
virtual void SetLine(void *video, int x, int y, uint8 *colours, uint width) = 0;
virtual void SetRect(void *video, int x, int y, const uint8 *colours, uint lines, uint width, uint pitch) = 0;
/**
* Draw a sequence of pixels on the video-buffer (no LookupColourInPalette).
* Draw a rectangle of pixels on the video-buffer (no LookupColourInPalette).
* @param video The destination pointer (video-buffer).
* @param x The x position within video-buffer.
* @param y The y position within video-buffer.
* @param colours A 32bpp colour buffer.
* @param width The length of the line.
* @param lines The number of lines.
* @param width The length of the lines.
* @param pitch The pitch of the colours buffer.
*/
virtual void SetLine32(void *video, int x, int y, uint32 *colours, uint width) { NOT_REACHED(); };
virtual void SetRect32(void *video, int x, int y, const uint32 *colours, uint lines, uint width, uint pitch) { NOT_REACHED(); };
/**
* Make a single horizontal line in a single colour on the video-buffer.