1
0
Fork 0

(svn r12692) -Codechange: swap to functions to remove a function declaration.

release/0.7
rubidium 2008-04-13 18:59:32 +00:00
parent 668e218600
commit 87ddcb0d5a
1 changed files with 33 additions and 39 deletions

View File

@ -250,33 +250,6 @@ static void DispatchMouseWheelEvent(Window *w, int widget, int wheel)
} }
} }
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. * Generate repaint events for the visible part of window *wz within the rectangle.
* *
@ -288,8 +261,6 @@ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom)
* @param top Top 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 right Right edge of the rectangle that should be repainted
* @param bottom Bottom 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) static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom)
{ {
@ -333,16 +304,39 @@ static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right
} }
} }
{ DrawPixelInfo *dp = _cur_dpi;
DrawPixelInfo *dp = _cur_dpi; dp->width = right - left;
dp->width = right - left; dp->height = bottom - top;
dp->height = bottom - top; dp->left = left - (*wz)->left;
dp->left = left - (*wz)->left; dp->top = top - (*wz)->top;
dp->top = top - (*wz)->top; dp->pitch = _screen.pitch;
dp->pitch = _screen.pitch; dp->dst_ptr = BlitterFactoryBase::GetCurrentBlitter()->MoveTo(_screen.dst_ptr, left, top);
dp->dst_ptr = BlitterFactoryBase::GetCurrentBlitter()->MoveTo(_screen.dst_ptr, left, top); dp->zoom = ZOOM_LVL_NORMAL;
dp->zoom = ZOOM_LVL_NORMAL; CallWindowEventNP(*wz, WE_PAINT);
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);
}
} }
} }