Index: include/core/SkPictureAnalyzer.h |
diff --git a/include/core/SkPictureAnalyzer.h b/include/core/SkPictureAnalyzer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ab731439cf8a693e179e7bc106b464613f1dc661 |
--- /dev/null |
+++ b/include/core/SkPictureAnalyzer.h |
@@ -0,0 +1,48 @@ |
+/* |
+ * Copyright 2016 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef SkPictureAnalyzer_DEFINED |
+#define SkPictureAnalyzer_DEFINED |
+ |
+#include "SkRefCnt.h" |
+#include "SkTypes.h" |
+ |
+class GrContextThreadSafeProxy; |
+class SkPicture; |
+ |
+/** \class SkPictureGpuAnalyzer |
+ |
+ Gathers GPU-related statistics for one or more SkPictures. |
+*/ |
+class SK_API SkPictureGpuAnalyzer final : public SkNoncopyable { |
+public: |
+ explicit SkPictureGpuAnalyzer(GrContextThreadSafeProxy* = nullptr); |
bsalomon
2016/05/13 16:14:27
sk_sp<GrContextThreadSafeProxy>?
f(malita)
2016/05/13 16:59:16
Done. This also forced me to think about non-SK_S
|
+ explicit SkPictureGpuAnalyzer(const sk_sp<SkPicture>& picture, |
+ GrContextThreadSafeProxy* = nullptr); |
+ |
+ /** |
+ * Process the given picture and accumulate its stats. |
+ */ |
+ void analyze(const SkPicture*); |
+ |
+ /** |
+ * Reset all accumulated stats. |
+ */ |
+ void reset(); |
+ |
+ /** |
+ * Returns true if the analyzed pictures are suitable for rendering on the GPU. |
+ */ |
+ bool suitableForGpuRasterization(const char** whyNot = nullptr) const; |
+ |
+private: |
+ uint32_t fNumSlowPaths; |
+ |
+ typedef SkNoncopyable INHERITED; |
+}; |
+ |
+#endif // SkPictureAnalyzer_DEFINED |