• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2015 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "nanobenchAndroid.h"
9 
10 /* These functions are only compiled in the Android Framework. */
11 
HWUITarget(const Config & c,Benchmark * bench)12 HWUITarget::HWUITarget(const Config& c, Benchmark* bench) : Target(c) { }
13 
setup()14 void HWUITarget::setup() {
15     this->renderer.fence();
16 }
17 
beginTiming(SkCanvas * canvas)18 SkCanvas* HWUITarget::beginTiming(SkCanvas* canvas) {
19     SkCanvas* targetCanvas = this->renderer.prepareToDraw();
20     if (targetCanvas) {
21         this->fc.reset(targetCanvas);
22         canvas = &this->fc;
23         // This might minimally distort timing, but canvas isn't valid outside the timer.
24         canvas->clear(SK_ColorWHITE);
25     }
26 
27     return canvas;
28 }
29 
endTiming()30 void HWUITarget::endTiming() {
31     this->renderer.finishDrawing();
32 }
33 
fence()34 void HWUITarget::fence() {
35     this->renderer.fence();
36 }
37 
needsFrameTiming(int * frameLag) const38 bool HWUITarget::needsFrameTiming(int* frameLag) const {
39     extern int FLAGS_gpuFrameLag;
40     *frameLag = FLAGS_gpuFrameLag;
41     return true;
42 }
43 
init(SkImageInfo info,Benchmark * bench)44 bool HWUITarget::init(SkImageInfo info, Benchmark* bench) {
45     this->renderer.initialize(bench->getSize().x(), bench->getSize().y());
46     return true;
47 }
48 
capturePixels(SkBitmap * bmp)49 bool HWUITarget::capturePixels(SkBitmap* bmp) {
50     return this->renderer.capturePixels(bmp);
51 }
52 
53 
54