aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkTraceEventCommon.h
diff options
context:
space:
mode:
authorGravatar Derek Sollenberger <djsollen@google.com>2017-08-17 12:34:54 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-08-17 16:57:33 +0000
commit559f534759f616f1d9a173e0045acead5ee4cae1 (patch)
tree47f1aaecfb6479d031180852d21a61274c5d24c5 /src/core/SkTraceEventCommon.h
parent0741818e7ab4e9ea8505b8a8687412f0e3804c65 (diff)
Add atrace events for bitmap uploads to Android framework builds.
Change-Id: I736d82ab4ab66860a03f839bedc4f7614d38c6e6 Reviewed-on: https://skia-review.googlesource.com/35840 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
Diffstat (limited to 'src/core/SkTraceEventCommon.h')
-rw-r--r--src/core/SkTraceEventCommon.h36
1 files changed, 27 insertions, 9 deletions
diff --git a/src/core/SkTraceEventCommon.h b/src/core/SkTraceEventCommon.h
index 92777264eb..35368f5eb2 100644
--- a/src/core/SkTraceEventCommon.h
+++ b/src/core/SkTraceEventCommon.h
@@ -54,26 +54,42 @@
#error "Another copy of this file has already been included."
#endif
-#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
-
-// If profiling Skia within the Android framework, setting this to 1 will route all Skia
-// tracing events to ATrace.
-#ifndef SK_TRACE_EVENTS_IN_FRAMEWORK
-#define SK_TRACE_EVENTS_IN_FRAMEWORK 0
-#endif
-
#define TRACE_EMPTY do {} while (0)
-#if SK_TRACE_EVENTS_IN_FRAMEWORK
+#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
#include <utils/Trace.h>
struct SkAndroidFrameworkTraceUtil {
+
SkAndroidFrameworkTraceUtil(const char* name) {
ATRACE_BEGIN(name);
}
+ SkAndroidFrameworkTraceUtil(bool, const char* fmt, ...) {
+ if (CC_LIKELY(!ATRACE_ENABLED())) return;
+
+ const int BUFFER_SIZE = 256;
+ va_list ap;
+ char buf[BUFFER_SIZE];
+
+ va_start(ap, fmt);
+ vsnprintf(buf, BUFFER_SIZE, fmt, ap);
+ va_end(ap);
+
+ ATRACE_BEGIN(buf);
+ }
~SkAndroidFrameworkTraceUtil() { ATRACE_END(); }
};
+#define ATRACE_ANDROID_FRAMEWORK(fmt, ...) SkAndroidFrameworkTraceUtil __trace(true, fmt, ##__VA_ARGS__)
+
+// If profiling Skia within the Android framework, setting this to 1 will route all Skia
+// tracing events to ATrace.
+#ifndef SK_TRACE_EVENTS_IN_FRAMEWORK
+#define SK_TRACE_EVENTS_IN_FRAMEWORK 0
+#endif
+
+#if SK_TRACE_EVENTS_IN_FRAMEWORK
+
// Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2
// associated arguments. In the framework, the arguments are ignored.
#define TRACE_EVENT0(category_group, name) \
@@ -135,6 +151,8 @@ struct SkAndroidFrameworkTraceUtil {
#else // !SK_BUILD_FOR_ANDROID_FRAMEWORK
+#define ATRACE_ANDROID_FRAMEWORK(fmt, ...) TRACE_EMPTY
+
// Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2
// associated arguments. If the category is not enabled, then this does nothing.
#define TRACE_EVENT0(category_group, name) \