Mercurial > hg > openttd
changeset 8922:96ef28eae8dc draft
(svn r12692) -Codechange: swap to functions to remove a function declaration.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 13 Apr 2008 18:59:32 +0000 |
parents | 0dbe48edb654 |
children | 44d3c60b6ca2 |
files | src/window.cpp |
diffstat | 1 files changed, 33 insertions(+), 39 deletions(-) [+] |
line wrap: on
line diff
--- a/src/window.cpp +++ b/src/window.cpp @@ -250,33 +250,6 @@ } } -static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom); - -/** - * From a rectangle that needs redrawing, find the windows that intersect with the rectangle. - * These windows should be re-painted. - * @param left Left edge of the rectangle that should be repainted - * @param top Top edge of the rectangle that should be repainted - * @param right Right edge of the rectangle that should be repainted - * @param bottom Bottom edge of the rectangle that should be repainted - */ -void DrawOverlappedWindowForAll(int left, int top, int right, int bottom) -{ - Window* const *wz; - DrawPixelInfo bk; - _cur_dpi = &bk; - - FOR_ALL_WINDOWS(wz) { - const Window *w = *wz; - if (right > w->left && - bottom > w->top && - left < w->left + w->width && - top < w->top + w->height) { - DrawOverlappedWindow(wz, left, top, right, bottom); - } - } -} - /** * Generate repaint events for the visible part of window *wz within the rectangle. * @@ -288,8 +261,6 @@ * @param top Top edge of the rectangle that should be repainted * @param right Right edge of the rectangle that should be repainted * @param bottom Bottom edge of the rectangle that should be repainted - * - * @todo Swap this function to above DrawOverlappedWindowForAll() to eliminate the forward declaration */ static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom) { @@ -333,16 +304,39 @@ } } - { - DrawPixelInfo *dp = _cur_dpi; - dp->width = right - left; - dp->height = bottom - top; - dp->left = left - (*wz)->left; - dp->top = top - (*wz)->top; - dp->pitch = _screen.pitch; - dp->dst_ptr = BlitterFactoryBase::GetCurrentBlitter()->MoveTo(_screen.dst_ptr, left, top); - dp->zoom = ZOOM_LVL_NORMAL; - CallWindowEventNP(*wz, WE_PAINT); + DrawPixelInfo *dp = _cur_dpi; + dp->width = right - left; + dp->height = bottom - top; + dp->left = left - (*wz)->left; + dp->top = top - (*wz)->top; + dp->pitch = _screen.pitch; + dp->dst_ptr = BlitterFactoryBase::GetCurrentBlitter()->MoveTo(_screen.dst_ptr, left, top); + dp->zoom = ZOOM_LVL_NORMAL; + CallWindowEventNP(*wz, WE_PAINT); +} + +/** + * From a rectangle that needs redrawing, find the windows that intersect with the rectangle. + * These windows should be re-painted. + * @param left Left edge of the rectangle that should be repainted + * @param top Top edge of the rectangle that should be repainted + * @param right Right edge of the rectangle that should be repainted + * @param bottom Bottom edge of the rectangle that should be repainted + */ +void DrawOverlappedWindowForAll(int left, int top, int right, int bottom) +{ + Window* const *wz; + DrawPixelInfo bk; + _cur_dpi = &bk; + + FOR_ALL_WINDOWS(wz) { + const Window *w = *wz; + if (right > w->left && + bottom > w->top && + left < w->left + w->width && + top < w->top + w->height) { + DrawOverlappedWindow(wz, left, top, right, bottom); + } } }