1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2011 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "Timer.h"
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include <stdio.h>
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotSkString HumanizeMs(double ms) {
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms > 60e+3)  return SkStringPrintf("%.3gm", ms/60e+3);
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms >  1e+3)  return SkStringPrintf("%.3gs",  ms/1e+3);
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms <  1e-3)  return SkStringPrintf("%.3gns", ms*1e+6);
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifdef SK_BUILD_FOR_WIN
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms < 1)      return SkStringPrintf("%.3gus", ms*1e+3);
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#else
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms < 1)      return SkStringPrintf("%.3gµs", ms*1e+3);
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    return SkStringPrintf("%.3gms", ms);
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotint HumanizeMs(char* s, int len, double ms) {
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms > 60e+3)  return snprintf(s, len, "%.3gm", ms / 60e+3);
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms >  1e+3)  return snprintf(s, len, "%.3gs", ms / 1e+3);
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms <  1e-3)  return snprintf(s, len, "%.3gns", ms*1e+6);
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifdef SK_BUILD_FOR_WIN
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms < 1)      return snprintf(s, len, "%.3gus", ms*1e+3);
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#else
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    if (ms < 1)      return snprintf(s, len, "%.3gµs", ms*1e+3);
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    return snprintf(s, len, "%.3gms", ms);
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
33