| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | 2 // Use of this source code is governed by a BSD-style license that can be | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 #ifndef CC_RESOURCES_DISPLAY_LIST_RASTER_SOURCE_H_ | 
|  | 6 #define CC_RESOURCES_DISPLAY_LIST_RASTER_SOURCE_H_ | 
|  | 7 | 
|  | 8 #include <vector> | 
|  | 9 | 
|  | 10 #include "base/memory/scoped_ptr.h" | 
|  | 11 #include "cc/base/cc_export.h" | 
|  | 12 #include "cc/debug/rendering_stats_instrumentation.h" | 
|  | 13 #include "cc/resources/display_list_recording_source.h" | 
|  | 14 #include "cc/resources/raster_source.h" | 
|  | 15 #include "skia/ext/analysis_canvas.h" | 
|  | 16 #include "skia/ext/refptr.h" | 
|  | 17 #include "third_party/skia/include/core/SkPicture.h" | 
|  | 18 | 
|  | 19 namespace cc { | 
|  | 20 class DisplayItemList; | 
|  | 21 | 
|  | 22 class CC_EXPORT DisplayListRasterSource : public RasterSource { | 
|  | 23  public: | 
|  | 24   static scoped_refptr<DisplayListRasterSource> Create(); | 
|  | 25   static scoped_refptr<DisplayListRasterSource> | 
|  | 26   CreateFromDisplayListRecordingSource(const DisplayListRecordingSource* other); | 
|  | 27 | 
|  | 28   // RasterSource overrides. | 
|  | 29   void PlaybackToCanvas(SkCanvas* canvas, | 
|  | 30                         const gfx::Rect& canvas_rect, | 
|  | 31                         float contents_scale) const override; | 
|  | 32   void PlaybackToSharedCanvas(SkCanvas* canvas, | 
|  | 33                               const gfx::Rect& canvas_rect, | 
|  | 34                               float contents_scale) const override; | 
|  | 35   void PerformSolidColorAnalysis( | 
|  | 36       const gfx::Rect& content_rect, | 
|  | 37       float contents_scale, | 
|  | 38       RasterSource::SolidColorAnalysis* analysis) const override; | 
|  | 39   bool IsSolidColor() const override; | 
|  | 40   SkColor GetSolidColor() const override; | 
|  | 41   gfx::Size GetSize() const override; | 
|  | 42   void GatherPixelRefs(const gfx::Rect& content_rect, | 
|  | 43                        float contents_scale, | 
|  | 44                        std::vector<SkPixelRef*>* pixel_refs) const override; | 
|  | 45   bool CoversRect(const gfx::Rect& content_rect, | 
|  | 46                   float contents_scale) const override; | 
|  | 47   bool HasRecordings() const override; | 
|  | 48   void SetShouldAttemptToUseDistanceFieldText() override; | 
|  | 49   void SetBackgoundColor(SkColor background_color) override; | 
|  | 50   void SetRequiresClear(bool requires_clear) override; | 
|  | 51   bool ShouldAttemptToUseDistanceFieldText() const override; | 
|  | 52   void DidBeginTracing() override; | 
|  | 53   void AsValueInto(base::debug::TracedValue* array) const override; | 
|  | 54   skia::RefPtr<SkPicture> GetFlattenedPicture() override; | 
|  | 55   size_t GetPictureMemoryUsage() const override; | 
|  | 56   bool CanUseLCDText() const override; | 
|  | 57 | 
|  | 58  protected: | 
|  | 59   DisplayListRasterSource(); | 
|  | 60   explicit DisplayListRasterSource(const DisplayListRecordingSource* other); | 
|  | 61   ~DisplayListRasterSource() override; | 
|  | 62 | 
|  | 63   scoped_refptr<DisplayItemList> display_list_; | 
|  | 64   SkColor background_color_; | 
|  | 65   bool requires_clear_; | 
|  | 66   bool can_use_lcd_text_; | 
|  | 67   bool is_solid_color_; | 
|  | 68   SkColor solid_color_; | 
|  | 69   gfx::Rect recorded_viewport_; | 
|  | 70   gfx::Size size_; | 
|  | 71   bool clear_canvas_with_debug_color_; | 
|  | 72   int slow_down_raster_scale_factor_for_debug_; | 
|  | 73 | 
|  | 74  private: | 
|  | 75   // Called when analyzing a tile. We can use AnalysisCanvas as | 
|  | 76   // SkDrawPictureCallback, which allows us to early out from analysis. | 
|  | 77   void RasterForAnalysis(skia::AnalysisCanvas* canvas, | 
|  | 78                          const gfx::Rect& canvas_rect, | 
|  | 79                          float contents_scale) const; | 
|  | 80 | 
|  | 81   void RasterCommon(SkCanvas* canvas, | 
|  | 82                     SkDrawPictureCallback* callback, | 
|  | 83                     const gfx::Rect& canvas_rect, | 
|  | 84                     float contents_scale, | 
|  | 85                     bool is_analysis) const; | 
|  | 86 | 
|  | 87   bool should_attempt_to_use_distance_field_text_; | 
|  | 88 | 
|  | 89   DISALLOW_COPY_AND_ASSIGN(DisplayListRasterSource); | 
|  | 90 }; | 
|  | 91 | 
|  | 92 }  // namespace cc | 
|  | 93 | 
|  | 94 #endif  // CC_RESOURCES_DISPLAY_LIST_RASTER_SOURCE_H_ | 
| OLD | NEW | 
|---|