|
@@ -3072,19 +3072,38 @@ void InputLoop()
|
|
|
/* HandleMouseEvents was already called for this tick */
|
|
|
HandleMouseEvents();
|
|
|
HandleAutoscroll();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Dispatch OnRealtimeTick event over all windows
|
|
|
*/
|
|
|
void CallWindowRealtimeTickEvent(uint delta_ms)
|
|
|
{
|
|
|
Window *w;
|
|
|
FOR_ALL_WINDOWS_FROM_FRONT(w) {
|
|
|
w->OnRealtimeTick(delta_ms);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Update the continuously changing contents of the windows, such as the viewports
|
|
|
*/
|
|
|
void UpdateWindows()
|
|
|
{
|
|
|
static uint32 last_realtime_tick = _realtime_tick;
|
|
|
uint delta_ms = _realtime_tick - last_realtime_tick;
|
|
|
last_realtime_tick = _realtime_tick;
|
|
|
|
|
|
if (delta_ms == 0) return;
|
|
|
|
|
|
PerformanceMeasurer framerate(PFE_DRAWING);
|
|
|
PerformanceAccumulator::Reset(PFE_DRAWWORLD);
|
|
|
|
|
|
CallWindowRealtimeTickEvent(delta_ms);
|
|
|
|
|
|
Window *w;
|
|
|
|
|
|
static int highlight_timer = 1;
|
|
|
if (--highlight_timer == 0) {
|
|
|
highlight_timer = 15;
|
|
|
_window_highlight_colour = !_window_highlight_colour;
|
|
@@ -3260,19 +3279,19 @@ void InvalidateWindowClassesData(WindowC
|
|
|
w->InvalidateData(data, gui_scope);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Dispatch WE_TICK event over all windows
|
|
|
* Dispatch OnTick event over all windows
|
|
|
*/
|
|
|
void CallWindowTickEvent()
|
|
|
void CallWindowGameTickEvent()
|
|
|
{
|
|
|
Window *w;
|
|
|
FOR_ALL_WINDOWS_FROM_FRONT(w) {
|
|
|
w->OnTick();
|
|
|
w->OnGameTick();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Try to delete a non-vital window.
|
|
|
* Non-vital windows are windows other than the game selection, main toolbar,
|