# HG changeset patch # User Diggory Hardy # Date 1240389315 -7200 # Node ID a86f8445ccc8004cdf806f34a1dcb6999accaf10 # Parent 36df0ffe34d241b3e3ba1ae81d5f7dc2ea517c92 Reduced the number of draws occuring. diff -r 36df0ffe34d2 -r a86f8445ccc8 codeDoc/debugCodes.txt --- a/codeDoc/debugCodes.txt Sat Apr 18 21:51:03 2009 +0200 +++ b/codeDoc/debugCodes.txt Wed Apr 22 10:35:15 2009 +0200 @@ -14,6 +14,7 @@ drawGlyphCache Draw the font texture in the upper-left corner of the screen, with a pretty background. mdeWidgets Log trace messages for the creation of all widgets. SDLCalls Log a message before some SDL calls. +mdeDrawEvents Log a message each time a draw occurs. Version identifies: diff -r 36df0ffe34d2 -r a86f8445ccc8 mde/events.d --- a/mde/events.d Sat Apr 18 21:51:03 2009 +0200 +++ b/mde/events.d Wed Apr 22 10:35:15 2009 +0200 @@ -46,10 +46,10 @@ Screen.resizeEvent (event.resize.w, event.resize.h); imde.mainSchedule.request(imde.SCHEDULE.DRAW); break; - case SDL_ACTIVEEVENT: - case SDL_VIDEOEXPOSE: + case SDL_VIDEOEXPOSE: // screen's been modified, we need to redraw imde.mainSchedule.request(imde.SCHEDULE.DRAW); - break; + case SDL_ACTIVEEVENT: // mouse focus gained/lost, etc. + break; default: try { if (!input.send (event)) diff -r 36df0ffe34d2 -r a86f8445ccc8 mde/gui/WMScreen.d --- a/mde/gui/WMScreen.d Sat Apr 18 21:51:03 2009 +0200 +++ b/mde/gui/WMScreen.d Wed Apr 22 10:35:15 2009 +0200 @@ -70,6 +70,8 @@ /** Draw the gui. */ void draw() { synchronized(mutex) { + debug (mdeDrawEvents) + logger.trace ("drawing"); if (child) child.draw; if (childIPPW) diff -r 36df0ffe34d2 -r a86f8445ccc8 mde/gui/widget/Floating.d --- a/mde/gui/widget/Floating.d Sat Apr 18 21:51:03 2009 +0200 +++ b/mde/gui/widget/Floating.d Wed Apr 22 10:35:15 2009 +0200 @@ -176,9 +176,10 @@ if (lx >= 0 && lx < w && ly >= 0 && ly < h) { - sWOrder[j..$-1] = sWOrder[j+1..$].dup; + /+ code to raise widget + sWOrder[j..$-1] = sWOrder[j+1..$].dup; sWOrder[$-1] = i; - mgr.requestRedraw; + mgr.requestRedraw; +/ if (lx >= border.x1 && lx < w-border.x2 && ly >= border.y1 && ly < h-border.y2) return subWidgets[i].getWidget (cx,cy);