diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gfx.cpp | 27 | ||||
-rw-r--r-- | src/gfx_func.h | 2 | ||||
-rw-r--r-- | src/news_gui.cpp | 2 | ||||
-rw-r--r-- | src/viewport.cpp | 2 | ||||
-rw-r--r-- | src/widget.cpp | 2 | ||||
-rw-r--r-- | src/window.cpp | 4 |
6 files changed, 24 insertions, 15 deletions
diff --git a/src/gfx.cpp b/src/gfx.cpp index a5e577205..6039946fc 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1416,6 +1416,16 @@ void DrawMouseCursor() _cursor.dirty = false; } +/** + * Repaints a specific rectangle of the screen. + * + * @param left,top,right,bottom The area of the screen that needs repainting + * @pre The rectangle should have been previously marked dirty with \c AddDirtyBlock. + * @see AddDirtyBlock + * @see DrawDirtyBlocks + * @ingroup dirty + * + */ void RedrawScreenRect(int left, int top, int right, int bottom) { assert(right <= _screen.width && bottom <= _screen.height); @@ -1438,7 +1448,9 @@ void RedrawScreenRect(int left, int top, int right, int bottom) /** * Repaints the rectangle blocks which are marked as 'dirty'. * - * @see SetDirtyBlocks + * @see AddDirtyBlock + * + * @ingroup dirty */ void DrawDirtyBlocks() { @@ -1541,21 +1553,18 @@ void DrawDirtyBlocks() } /** - * This function extends the internal _invalid_rect rectangle as it - * now contains the rectangle defined by the given parameters. Note - * the point (0,0) is top left. + * Extend the internal _invalid_rect rectangle to contain the rectangle + * defined by the given parameters. Note the point (0,0) is top left. * * @param left The left edge of the rectangle * @param top The top edge of the rectangle * @param right The right edge of the rectangle * @param bottom The bottom edge of the rectangle * @see DrawDirtyBlocks + * @ingroup dirty * - * @todo The name of the function should be called like @c AddDirtyBlock as - * it neither set a dirty rect nor add several dirty rects although - * the function name is in plural. (Progman) */ -void SetDirtyBlocks(int left, int top, int right, int bottom) +void AddDirtyBlock(int left, int top, int right, int bottom) { byte *b; int width; @@ -1600,7 +1609,7 @@ void SetDirtyBlocks(int left, int top, int right, int bottom) */ void MarkWholeScreenDirty() { - SetDirtyBlocks(0, 0, _screen.width, _screen.height); + AddDirtyBlock(0, 0, _screen.width, _screen.height); } /** diff --git a/src/gfx_func.h b/src/gfx_func.h index 0ccdabac3..0edbf722a 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -131,7 +131,7 @@ Point GetCharPosInString(const char *str, const char *ch, FontSize start_fontsiz const char *GetCharAtPosition(const char *str, int x, FontSize start_fontsize = FS_NORMAL); void DrawDirtyBlocks(); -void SetDirtyBlocks(int left, int top, int right, int bottom); +void AddDirtyBlock(int left, int top, int right, int bottom); void MarkWholeScreenDirty(); void GfxInitPalettes(); diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 01b69677e..9993645c4 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -571,7 +571,7 @@ private: if (this->viewport != nullptr) this->viewport->top += newtop - this->top; this->top = newtop; - SetDirtyBlocks(this->left, mintop, this->left + this->width, maxtop + this->height); + AddDirtyBlock(this->left, mintop, this->left + this->width, maxtop + this->height); } StringID GetCompanyMessageString() const diff --git a/src/viewport.cpp b/src/viewport.cpp index 1c9dca1ef..28345db60 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1886,7 +1886,7 @@ static void MarkViewportDirty(const ViewPort *vp, int left, int top, int right, if (top >= vp->virtual_height) return; - SetDirtyBlocks( + AddDirtyBlock( UnScaleByZoomLower(left, vp->zoom) + vp->left, UnScaleByZoomLower(top, vp->zoom) + vp->top, UnScaleByZoom(right, vp->zoom) + vp->left + 1, diff --git a/src/widget.cpp b/src/widget.cpp index eb683c412..579b7efb6 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -774,7 +774,7 @@ void NWidgetBase::SetDirty(const Window *w) const { int abs_left = w->left + this->pos_x; int abs_top = w->top + this->pos_y; - SetDirtyBlocks(abs_left, abs_top, abs_left + this->current_x, abs_top + this->current_y); + AddDirtyBlock(abs_left, abs_top, abs_left + this->current_x, abs_top + this->current_y); } /** diff --git a/src/window.cpp b/src/window.cpp index 30fa4d3d1..e7bc6d2c4 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -983,7 +983,7 @@ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom) */ void Window::SetDirty() const { - SetDirtyBlocks(this->left, this->top, this->left + this->width, this->top + this->height); + AddDirtyBlock(this->left, this->top, this->left + this->width, this->top + this->height); } /** @@ -3493,7 +3493,7 @@ static int PositionWindow(Window *w, WindowClass clss, int setting) default: w->left = 0; break; } if (w->viewport != nullptr) w->viewport->left += w->left - old_left; - SetDirtyBlocks(0, w->top, _screen.width, w->top + w->height); // invalidate the whole row + AddDirtyBlock(0, w->top, _screen.width, w->top + w->height); // invalidate the whole row return w->left; } |