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..1a0746196db9c8f98da7b13e2ada7bd4d035c4c3 |
| --- /dev/null |
| +++ b/include/core/SkPictureAnalyzer.h |
| @@ -0,0 +1,47 @@ |
| +/* |
| + * 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 GrContext; |
| +class SkPicture; |
| + |
| +/** \class SkPictureGpuAnalyzer |
| + |
| + Gathers GPU-related statistics for one or more SkPictures. |
| +*/ |
| +class SK_API SkPictureGpuAnalyzer final : public SkNoncopyable { |
| +public: |
| + SkPictureGpuAnalyzer(); |
| + explicit SkPictureGpuAnalyzer(const sk_sp<SkPicture>& picture); |
| + |
| + /** |
| + * 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(GrContext*, const char** whyNot = nullptr) const; |
|
bsalomon
2016/05/12 20:59:02
Should we take the GrContext* in the constructor i
f(malita)
2016/05/12 21:15:19
Done.
|
| + |
| +private: |
| + uint32_t fNumSlowPaths; |
| + |
| + typedef SkNoncopyable INHERITED; |
| +}; |
| + |
| +#endif // SkPictureAnalyzer_DEFINED |