diff options
author | joshualitt <joshualitt@chromium.org> | 2015-09-30 12:11:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-30 12:11:07 -0700 |
commit | 8a6697af95b340aad6dee7e6228048fa305c1e59 (patch) | |
tree | 08b4c39b0bc264940ff65b97a83c95d3d9bc1bbf /bench/Benchmark.cpp | |
parent | 7fac5af5e9310826721ff416bdbe71294d607b2a (diff) |
Fix for nexus 5 crashing in GL benches
GLBenches do not expect gl state to change between onPerCanvasPreDraw and *PostDraw, but we do a clear and sometimes we clear as draw. This causes us to bind vertex objects / programs / etc.
This change creates two new virtual methods which are called right before and immediately after timing.
BUG=skia:
Review URL: https://codereview.chromium.org/1379853003
Diffstat (limited to 'bench/Benchmark.cpp')
-rw-r--r-- | bench/Benchmark.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bench/Benchmark.cpp b/bench/Benchmark.cpp index bf622b0683..98fec2e7aa 100644 --- a/bench/Benchmark.cpp +++ b/bench/Benchmark.cpp @@ -33,14 +33,22 @@ SkIPoint Benchmark::getSize() { return this->onGetSize(); } -void Benchmark::preDraw() { - this->onPreDraw(); +void Benchmark::delayedSetup() { + this->onDelayedSetup(); } void Benchmark::perCanvasPreDraw(SkCanvas* canvas) { this->onPerCanvasPreDraw(canvas); } +void Benchmark::preDraw(SkCanvas* canvas) { + this->onPreDraw(canvas); +} + +void Benchmark::postDraw(SkCanvas* canvas) { + this->onPostDraw(canvas); +} + void Benchmark::perCanvasPostDraw(SkCanvas* canvas) { this->onPerCanvasPostDraw(canvas); } |