summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/utils/SkEventTracer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/utils/SkEventTracer.cpp')
-rw-r--r--chromium/third_party/skia/src/utils/SkEventTracer.cpp59
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;
+}