diff options
Diffstat (limited to 'chromium/third_party/skia/src/utils/SkEventTracer.cpp')
-rw-r--r-- | chromium/third_party/skia/src/utils/SkEventTracer.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/chromium/third_party/skia/src/utils/SkEventTracer.cpp b/chromium/third_party/skia/src/utils/SkEventTracer.cpp new file mode 100644 index 00000000000..65e83723959 --- /dev/null +++ b/chromium/third_party/skia/src/utils/SkEventTracer.cpp @@ -0,0 +1,59 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkEventTracer.h" +#include "SkOnce.h" + +class SkDefaultEventTracer: public SkEventTracer { + virtual SkEventTracer::Handle + addTraceEvent(char phase, + const uint8_t* categoryEnabledFlag, + const char* name, + uint64_t id, + int numArgs, + const char** argNames, + const uint8_t* argTypes, + const uint64_t* argValues, + uint8_t flags) SK_OVERRIDE { return 0; } + + virtual void + updateTraceEventDuration(const uint8_t* categoryEnabledFlag, + const char* name, + SkEventTracer::Handle handle) SK_OVERRIDE {}; + + virtual const uint8_t* getCategoryGroupEnabled(const char* name) SK_OVERRIDE { + static uint8_t no = 0; + return &no; + }; + virtual const char* getCategoryGroupName( + const uint8_t* categoryEnabledFlag) SK_OVERRIDE { + static const char* dummy = "dummy"; + return dummy; + }; +}; + +SkEventTracer* SkEventTracer::gInstance; + +static void cleanup_tracer() { + // calling SetInstance will delete the existing instance. + SkEventTracer::SetInstance(NULL); +} + +static void intialize_default_tracer(SkEventTracer* current_instance) { + if (NULL == current_instance) { + SkEventTracer::SetInstance(SkNEW(SkDefaultEventTracer)); + } + atexit(cleanup_tracer); +} + + +SkEventTracer* SkEventTracer::GetInstance() { + SK_DECLARE_STATIC_ONCE(once); + SkOnce(&once, intialize_default_tracer, SkEventTracer::gInstance); + SkASSERT(NULL != SkEventTracer::gInstance); + return SkEventTracer::gInstance; +} |