aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/EditView.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2018-04-26 08:19:32 +1000
committerNeil <nyamatongwe@gmail.com>2018-04-26 08:19:32 +1000
commitf4fdffef1425b7a4293a90fb96219a58b2158019 (patch)
treec23cc3904df927a7b9dfb1bbddcf022228f1351d /src/EditView.cxx
parent9172c913efbc014349c97740476d019690e57791 (diff)
downloadscintilla-mirror-f4fdffef1425b7a4293a90fb96219a58b2158019.tar.gz
Use <chrono> for platform-independent timing and remove ElapsedTime.
Also use #if for painting measurement as there are 7 sections of code to enable.
Diffstat (limited to 'src/EditView.cxx')
-rw-r--r--src/EditView.cxx49
1 files changed, 30 insertions, 19 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx
index 8522ba419..5c9bb7ff4 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -21,6 +21,7 @@
#include <algorithm>
#include <iterator>
#include <memory>
+#include <chrono>
#include "Platform.h"
@@ -53,6 +54,7 @@
#include "EditModel.h"
#include "MarginView.h"
#include "EditView.h"
+#include "ElapsedPeriod.h"
using namespace Scintilla;
@@ -2010,11 +2012,12 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
}
// Loop on visible lines
- //double durLayout = 0.0;
- //double durPaint = 0.0;
- //double durCopy = 0.0;
- //ElapsedTime etWhole;
-
+#if defined(TIME_PAINTING)
+ double durLayout = 0.0;
+ double durPaint = 0.0;
+ double durCopy = 0.0;
+ ElapsedPeriod epWhole;
+#endif
const bool bracesIgnoreStyle = ((vsDraw.braceHighlightIndicatorSet && (model.bracesMatchStyle == STYLE_BRACELIGHT)) ||
(vsDraw.braceBadLightIndicatorSet && (model.bracesMatchStyle == STYLE_BRACEBAD)));
@@ -2044,15 +2047,18 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
// Copy this line and its styles from the document into local arrays
// and determine the x position at which each character starts.
- //ElapsedTime et;
+#if defined(TIME_PAINTING)
+ ElapsedPeriod ep;
+#endif
if (lineDoc != lineDocPrevious) {
ll.Set(0);
ll.Set(RetrieveLineLayout(lineDoc, model));
LayoutLine(model, lineDoc, surface, vsDraw, ll, model.wrapWidth);
lineDocPrevious = lineDoc;
}
- //durLayout += et.Duration(true);
-
+#if defined(TIME_PAINTING)
+ durLayout += ep.Duration(true);
+#endif
if (ll) {
ll->containsCaret = !hideSelection && (lineDoc == lineCaret);
ll->hotspot = model.GetHotSpotRange();
@@ -2077,8 +2083,9 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
}
DrawLine(surface, model, vsDraw, ll, lineDoc, visibleLine, xStart, rcLine, subLine, phase);
- //durPaint += et.Duration(true);
-
+#if defined(TIME_PAINTING)
+ durPaint += ep.Duration(true);
+#endif
// Restore the previous styles for the brace highlights in case layout is in cache.
ll->RestoreBracesHighlight(rangeLine, model.braces, bracesIgnoreStyle);
@@ -2100,7 +2107,9 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
lineWidthMaxSeen = std::max(
lineWidthMaxSeen, static_cast<int>(ll->positions[ll->numCharsInLine]));
- //durCopy += et.Duration(true);
+#if defined(TIME_PAINTING)
+ durCopy += ep.Duration(true);
+#endif
}
if (!bufferedDraw) {
@@ -2112,9 +2121,10 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
}
}
ll.Set(0);
- //if (durPaint < 0.00000001)
- // durPaint = 0.00000001;
-
+#if defined(TIME_PAINTING)
+ if (durPaint < 0.00000001)
+ durPaint = 0.00000001;
+#endif
// Right column limit indicator
PRectangle rcBeyondEOF = (vsDraw.marginInside) ? rcClient : rcArea;
rcBeyondEOF.left = static_cast<XYPOSITION>(vsDraw.textStart);
@@ -2138,11 +2148,12 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
}
}
}
- //Platform::DebugPrintf("start display %d, offset = %d\n", pdoc->Length(), xOffset);
-
- //Platform::DebugPrintf(
- //"Layout:%9.6g Paint:%9.6g Ratio:%9.6g Copy:%9.6g Total:%9.6g\n",
- //durLayout, durPaint, durLayout / durPaint, durCopy, etWhole.Duration());
+ //Platform::DebugPrintf("start display %d, offset = %d\n", model.pdoc->Length(), model.xOffset);
+#if defined(TIME_PAINTING)
+ Platform::DebugPrintf(
+ "Layout:%9.6g Paint:%9.6g Ratio:%9.6g Copy:%9.6g Total:%9.6g\n",
+ durLayout, durPaint, durLayout / durPaint, durCopy, epWhole.Duration());
+#endif
}
}