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..fa8cdb1fd18b8c890ec3b65a70ed6ca91d64b0d3 |
| --- /dev/null |
| +++ b/include/core/SkPictureAnalyzer.h |
| @@ -0,0 +1,52 @@ |
| +/* |
| + * 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" |
| + |
| +#if SK_SUPPORT_GPU |
| +#include "GrContext.h" |
| + |
| +class SkPicture; |
| + |
| +/** \class SkPictureGpuAnalyzer |
| + |
| + Gathers GPU-related statistics for one or more SkPictures. |
| +*/ |
| +class SK_API SkPictureGpuAnalyzer final : public SkNoncopyable { |
| +public: |
| + explicit SkPictureGpuAnalyzer(sk_sp<GrContextThreadSafeProxy> = nullptr); |
|
reed1
2016/05/13 19:35:47
Are we really ref-ing the ctx? Do we need the anal
f(malita)
2016/05/13 19:46:45
Hmm, good question: the current use pattern doesn'
|
| + explicit SkPictureGpuAnalyzer(const sk_sp<SkPicture>& picture, |
| + sk_sp<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 // SK_SUPPORT_GPU |
| + |
| +#endif // SkPictureAnalyzer_DEFINED |