Chromium Code Reviews| 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 |