| Index: src/core/SkTime.cpp
|
| diff --git a/src/core/SkTime.cpp b/src/core/SkTime.cpp
|
| index ba8fe3e3a31e9301475fbe2efd8e41c0aead5950..e89d5b9b3a850aebfeb157aa20d974b78a396dee 100644
|
| --- a/src/core/SkTime.cpp
|
| +++ b/src/core/SkTime.cpp
|
| @@ -5,10 +5,10 @@
|
| * found in the LICENSE file.
|
| */
|
|
|
| -#include "SkOncePtr.h"
|
| #include "SkString.h"
|
| #include "SkTime.h"
|
| #include "SkTypes.h"
|
| +#include <chrono>
|
|
|
| void SkTime::DateTime::toISO8601(SkString* dst) const {
|
| if (dst) {
|
| @@ -65,37 +65,8 @@ void SkTime::GetDateTime(DateTime* dt) {
|
| }
|
| #endif // SK_BUILD_FOR_WIN32
|
|
|
| -#if defined(_MSC_VER)
|
| - // TODO: try std::chrono again with MSVC 2015?
|
| - #include <intrin.h>
|
| - SK_DECLARE_STATIC_ONCE_PTR(double, ns_per_tick);
|
| - double SkTime::GetNSecs() {
|
| - uint64_t ticks = __rdtsc();
|
| - return ticks * *ns_per_tick.get([]{
|
| - LARGE_INTEGER khz; // The docs say this returns Hz, but it returns KHz.
|
| - QueryPerformanceFrequency(&khz);
|
| - return new double(1e6 / khz.QuadPart);
|
| - });
|
| - }
|
| -#elif defined(__MACH__)
|
| - // TODO: fold into std::chrono when available?
|
| - #include <mach/mach_time.h>
|
| - SK_DECLARE_STATIC_ONCE_PTR(double, ns_per_tick);
|
| - double SkTime::GetNSecs() {
|
| - uint64_t ticks = mach_absolute_time();
|
| - return ticks * *ns_per_tick.get([]{
|
| - mach_timebase_info_data_t timebase;
|
| - (void)mach_timebase_info(&timebase);
|
| - return new double(timebase.numer * 1.0 / timebase.denom);
|
| - });
|
| - }
|
| -#else
|
| - // This std::chrono code looks great on Linux and Android,
|
| - // but MSVC 2013 returned mostly garbage (0ns times, etc).
|
| - #include <chrono>
|
| - double SkTime::GetNSecs() {
|
| - auto now = std::chrono::high_resolution_clock::now();
|
| - std::chrono::duration<double, std::nano> ns = now.time_since_epoch();
|
| - return ns.count();
|
| - }
|
| -#endif
|
| +double SkTime::GetNSecs() {
|
| + auto now = std::chrono::high_resolution_clock::now();
|
| + std::chrono::duration<double, std::nano> ns = now.time_since_epoch();
|
| + return ns.count();
|
| +}
|
|
|