diff options
author | chrishtr <chrishtr@chromium.org> | 2015-12-03 09:43:20 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-03 17:44:26 +0000 |
commit | e8384fae6b671dc545561a2734873755e807b27d (patch) | |
tree | 1c60a2a88d857bb8ecdd8c5d956062396e274b5f | |
parent | cabad394cf3cd7cacd97ecc4a4365b651dac69b8 (diff) | |
download | chromium_src-e8384fae6b671dc545561a2734873755e807b27d.zip chromium_src-e8384fae6b671dc545561a2734873755e807b27d.tar.gz chromium_src-e8384fae6b671dc545561a2734873755e807b27d.tar.bz2 |
Remove the clip parameter from ContentLayerClient.
The API now specifies that ContentLayerClient decides its own PaintableRegion().
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1489713004
Cr-Commit-Position: refs/heads/master@{#363005}
-rw-r--r-- | cc/blink/web_content_layer_impl.cc | 3 | ||||
-rw-r--r-- | cc/blink/web_content_layer_impl.h | 1 | ||||
-rw-r--r-- | cc/debug/rasterize_and_record_benchmark.cc | 3 | ||||
-rw-r--r-- | cc/layers/content_layer_client.h | 1 | ||||
-rw-r--r-- | cc/layers/picture_image_layer.cc | 9 | ||||
-rw-r--r-- | cc/layers/picture_image_layer.h | 1 | ||||
-rw-r--r-- | cc/layers/picture_image_layer_unittest.cc | 2 | ||||
-rw-r--r-- | cc/layers/picture_layer_unittest.cc | 3 | ||||
-rw-r--r-- | cc/playback/display_list_recording_source.cc | 3 | ||||
-rw-r--r-- | cc/test/fake_content_layer_client.cc | 18 | ||||
-rw-r--r-- | cc/test/fake_content_layer_client.h | 1 | ||||
-rw-r--r-- | cc/test/solid_color_content_layer_client.cc | 2 | ||||
-rw-r--r-- | cc/test/solid_color_content_layer_client.h | 1 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_common_unittest.cc | 1 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_pixeltest_masks.cc | 20 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_pixeltest_tiles.cc | 6 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_unittest.cc | 6 | ||||
-rw-r--r-- | ui/compositor/layer.cc | 4 | ||||
-rw-r--r-- | ui/compositor/layer.h | 1 |
19 files changed, 35 insertions, 51 deletions
diff --git a/cc/blink/web_content_layer_impl.cc b/cc/blink/web_content_layer_impl.cc index 0a5fffe..0eb381f 100644 --- a/cc/blink/web_content_layer_impl.cc +++ b/cc/blink/web_content_layer_impl.cc @@ -64,13 +64,12 @@ gfx::Rect WebContentLayerImpl::PaintableRegion() { scoped_refptr<cc::DisplayItemList> WebContentLayerImpl::PaintContentsToDisplayList( - const gfx::Rect& clip, cc::ContentLayerClient::PaintingControlSetting painting_control) { cc::DisplayItemListSettings settings; settings.use_cached_picture = UseCachedPictureRaster(); scoped_refptr<cc::DisplayItemList> display_list = - cc::DisplayItemList::Create(clip, settings); + cc::DisplayItemList::Create(PaintableRegion(), settings); if (client_) { WebDisplayItemListImpl list(display_list.get()); client_->paintContents(&list, PaintingControlToWeb(painting_control)); diff --git a/cc/blink/web_content_layer_impl.h b/cc/blink/web_content_layer_impl.h index 228e6ef..6a075ae 100644 --- a/cc/blink/web_content_layer_impl.h +++ b/cc/blink/web_content_layer_impl.h @@ -36,7 +36,6 @@ class WebContentLayerImpl : public blink::WebContentLayer, // ContentLayerClient implementation. gfx::Rect PaintableRegion() override; scoped_refptr<cc::DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_control) override; bool FillsBoundsCompletely() const override; size_t GetApproximateUnsharedMemoryUsage() const override; diff --git a/cc/debug/rasterize_and_record_benchmark.cc b/cc/debug/rasterize_and_record_benchmark.cc index cb1c36a..5624fb1c 100644 --- a/cc/debug/rasterize_and_record_benchmark.cc +++ b/cc/debug/rasterize_and_record_benchmark.cc @@ -157,8 +157,7 @@ void RasterizeAndRecordBenchmark::RunOnDisplayListLayer( kTimeCheckInterval); do { - display_list = painter->PaintContentsToDisplayList(visible_layer_rect, - painting_control); + display_list = painter->PaintContentsToDisplayList(painting_control); if (display_list->ShouldBeAnalyzedForSolidColor()) { gfx::Size layer_size = layer->paint_properties().bounds; skia::AnalysisCanvas canvas(layer_size.width(), layer_size.height()); diff --git a/cc/layers/content_layer_client.h b/cc/layers/content_layer_client.h index 66c45046..6c9983b 100644 --- a/cc/layers/content_layer_client.h +++ b/cc/layers/content_layer_client.h @@ -30,7 +30,6 @@ class CC_EXPORT ContentLayerClient { virtual gfx::Rect PaintableRegion() = 0; virtual scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_status) = 0; // If true the layer may skip clearing the background before rasterizing, diff --git a/cc/layers/picture_image_layer.cc b/cc/layers/picture_image_layer.cc index f6b360dd..cde9ccd 100644 --- a/cc/layers/picture_image_layer.cc +++ b/cc/layers/picture_image_layer.cc @@ -54,7 +54,6 @@ gfx::Rect PictureImageLayer::PaintableRegion() { } scoped_refptr<DisplayItemList> PictureImageLayer::PaintContentsToDisplayList( - const gfx::Rect& clip, ContentLayerClient::PaintingControlSetting painting_control) { DCHECK(image_); DCHECK_GT(image_->width(), 0); @@ -65,10 +64,11 @@ scoped_refptr<DisplayItemList> PictureImageLayer::PaintContentsToDisplayList( DisplayItemListSettings settings; settings.use_cached_picture = true; scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, settings); + DisplayItemList::Create(PaintableRegion(), settings); SkPictureRecorder recorder; - SkCanvas* canvas = recorder.beginRecording(gfx::RectToSkRect(clip)); + SkCanvas* canvas = + recorder.beginRecording(gfx::RectToSkRect(PaintableRegion())); SkScalar content_to_layer_scale_x = SkFloatToScalar(static_cast<float>(bounds().width()) / image_->width()); @@ -83,7 +83,8 @@ scoped_refptr<DisplayItemList> PictureImageLayer::PaintContentsToDisplayList( skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecordingAsPicture()); - auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>(clip); + auto* item = + display_list->CreateAndAppendItem<DrawingDisplayItem>(PaintableRegion()); item->SetNew(std::move(picture)); display_list->Finalize(); diff --git a/cc/layers/picture_image_layer.h b/cc/layers/picture_image_layer.h index cb48c96..146ce83 100644 --- a/cc/layers/picture_image_layer.h +++ b/cc/layers/picture_image_layer.h @@ -28,7 +28,6 @@ class CC_EXPORT PictureImageLayer : public PictureLayer, ContentLayerClient { // ContentLayerClient implementation. scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, ContentLayerClient::PaintingControlSetting painting_control) override; bool FillsBoundsCompletely() const override; size_t GetApproximateUnsharedMemoryUsage() const override; diff --git a/cc/layers/picture_image_layer_unittest.cc b/cc/layers/picture_image_layer_unittest.cc index e5924ca..b03ea22 100644 --- a/cc/layers/picture_image_layer_unittest.cc +++ b/cc/layers/picture_image_layer_unittest.cc @@ -40,7 +40,7 @@ TEST(PictureImageLayerTest, PaintContentsToDisplayList) { scoped_refptr<DisplayItemList> display_list = layer->PaintContentsToDisplayList( - layer_rect, ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); unsigned char actual_pixels[4 * 200 * 200] = {0}; DrawDisplayList(actual_pixels, layer_rect, display_list); diff --git a/cc/layers/picture_layer_unittest.cc b/cc/layers/picture_layer_unittest.cc index 4f61722..97751fd 100644 --- a/cc/layers/picture_layer_unittest.cc +++ b/cc/layers/picture_layer_unittest.cc @@ -27,9 +27,8 @@ class MockContentLayerClient : public ContentLayerClient { public: gfx::Rect PaintableRegion() override { return gfx::Rect(); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { - return DisplayItemList::Create(clip, DisplayItemListSettings()); + return DisplayItemList::Create(gfx::Rect(), DisplayItemListSettings()); } bool FillsBoundsCompletely() const override { return false; }; size_t GetApproximateUnsharedMemoryUsage() const override { return 0; } diff --git a/cc/playback/display_list_recording_source.cc b/cc/playback/display_list_recording_source.cc index 603bbde..8f0cab0 100644 --- a/cc/playback/display_list_recording_source.cc +++ b/cc/playback/display_list_recording_source.cc @@ -114,8 +114,7 @@ bool DisplayListRecordingSource::UpdateAndExpandInvalidation( // TODO(vmpstr): Add a slow_down_recording_scale_factor_for_debug_ to be able // to slow down recording. - display_list_ = - painter->PaintContentsToDisplayList(recorded_viewport_, painting_control); + display_list_ = painter->PaintContentsToDisplayList(painting_control); painter_reported_memory_usage_ = painter->GetApproximateUnsharedMemoryUsage(); DetermineIfSolidColor(); diff --git a/cc/test/fake_content_layer_client.cc b/cc/test/fake_content_layer_client.cc index 5078a65..6370a2e 100644 --- a/cc/test/fake_content_layer_client.cc +++ b/cc/test/fake_content_layer_client.cc @@ -43,19 +43,16 @@ gfx::Rect FakeContentLayerClient::PaintableRegion() { scoped_refptr<DisplayItemList> FakeContentLayerClient::PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_control) { // Cached picture is used because unit tests expect to be able to // use GatherPixelRefs. DisplayItemListSettings settings; settings.use_cached_picture = true; scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, settings); + DisplayItemList::Create(PaintableRegion(), settings); SkPictureRecorder recorder; skia::RefPtr<SkCanvas> canvas; skia::RefPtr<SkPicture> picture; - auto* item = display_list->CreateAndAppendItem<ClipDisplayItem>(clip); - item->SetNew(clip, std::vector<SkRRect>()); for (RectPaintVector::const_iterator it = draw_rects_.begin(); it != draw_rects_.end(); ++it) { @@ -73,8 +70,8 @@ FakeContentLayerClient::PaintContentsToDisplayList( for (ImageVector::const_iterator it = draw_images_.begin(); it != draw_images_.end(); ++it) { if (!it->transform.IsIdentity()) { - auto* item = - display_list->CreateAndAppendItem<TransformDisplayItem>(clip); + auto* item = display_list->CreateAndAppendItem<TransformDisplayItem>( + PaintableRegion()); item->SetNew(it->transform); } canvas = skia::SharePtr( @@ -82,15 +79,17 @@ FakeContentLayerClient::PaintContentsToDisplayList( canvas->drawImage(it->image.get(), it->point.x(), it->point.y(), &it->paint); picture = skia::AdoptRef(recorder.endRecordingAsPicture()); - auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>(clip); + auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>( + PaintableRegion()); item->SetNew(std::move(picture)); if (!it->transform.IsIdentity()) { - display_list->CreateAndAppendItem<EndTransformDisplayItem>(clip); + display_list->CreateAndAppendItem<EndTransformDisplayItem>( + PaintableRegion()); } } if (fill_with_nonsolid_color_) { - gfx::Rect draw_rect = clip; + gfx::Rect draw_rect = PaintableRegion(); bool red = true; while (!draw_rect.IsEmpty()) { SkPaint paint; @@ -106,7 +105,6 @@ FakeContentLayerClient::PaintContentsToDisplayList( } } - display_list->CreateAndAppendItem<EndClipDisplayItem>(clip); display_list->Finalize(); return display_list; diff --git a/cc/test/fake_content_layer_client.h b/cc/test/fake_content_layer_client.h index a73cfa3..00d562d 100644 --- a/cc/test/fake_content_layer_client.h +++ b/cc/test/fake_content_layer_client.h @@ -40,7 +40,6 @@ class FakeContentLayerClient : public ContentLayerClient { gfx::Rect PaintableRegion() override; scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_control) override; bool FillsBoundsCompletely() const override; size_t GetApproximateUnsharedMemoryUsage() const override; diff --git a/cc/test/solid_color_content_layer_client.cc b/cc/test/solid_color_content_layer_client.cc index bd6e3b7..c3518c3 100644 --- a/cc/test/solid_color_content_layer_client.cc +++ b/cc/test/solid_color_content_layer_client.cc @@ -21,9 +21,9 @@ gfx::Rect SolidColorContentLayerClient::PaintableRegion() { scoped_refptr<DisplayItemList> SolidColorContentLayerClient::PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_control) { SkPictureRecorder recorder; + gfx::Rect clip(PaintableRegion()); skia::RefPtr<SkCanvas> canvas = skia::SharePtr(recorder.beginRecording(gfx::RectToSkRect(clip))); diff --git a/cc/test/solid_color_content_layer_client.h b/cc/test/solid_color_content_layer_client.h index a615eb4..1176abe 100644 --- a/cc/test/solid_color_content_layer_client.h +++ b/cc/test/solid_color_content_layer_client.h @@ -20,7 +20,6 @@ class SolidColorContentLayerClient : public ContentLayerClient { // ContentLayerClient implementation. scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_control) override; bool FillsBoundsCompletely() const override; size_t GetApproximateUnsharedMemoryUsage() const override; diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc index a4211cb..6a554db 100644 --- a/cc/trees/layer_tree_host_common_unittest.cc +++ b/cc/trees/layer_tree_host_common_unittest.cc @@ -63,7 +63,6 @@ class MockContentLayerClient : public ContentLayerClient { ~MockContentLayerClient() override {} gfx::Rect PaintableRegion() override { return gfx::Rect(); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { NOTIMPLEMENTED(); return nullptr; diff --git a/cc/trees/layer_tree_host_pixeltest_masks.cc b/cc/trees/layer_tree_host_pixeltest_masks.cc index 5068c71..c8b5875 100644 --- a/cc/trees/layer_tree_host_pixeltest_masks.cc +++ b/cc/trees/layer_tree_host_pixeltest_masks.cc @@ -35,7 +35,6 @@ class MaskContentLayerClient : public ContentLayerClient { gfx::Rect PaintableRegion() override { return gfx::Rect(bounds_); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { SkPictureRecorder recorder; skia::RefPtr<SkCanvas> canvas = skia::SharePtr( @@ -58,8 +57,9 @@ class MaskContentLayerClient : public ContentLayerClient { } scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, DisplayItemListSettings()); - auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>(clip); + DisplayItemList::Create(PaintableRegion(), DisplayItemListSettings()); + auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>( + PaintableRegion()); skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecordingAsPicture()); @@ -113,7 +113,7 @@ TEST_P(LayerTreeHostMasksPixelTest, ImageMaskOfLayer) { MaskContentLayerClient client(mask_bounds); scoped_refptr<DisplayItemList> mask_display_list = client.PaintContentsToDisplayList( - gfx::Rect(mask_bounds), ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); mask_display_list->Raster(canvas, nullptr, gfx::Rect(mask_bounds), 1.0f); skia::RefPtr<const SkImage> image = skia::AdoptRef(surface->newImageSnapshot()); @@ -315,7 +315,6 @@ class CheckerContentLayerClient : public ContentLayerClient { size_t GetApproximateUnsharedMemoryUsage() const override { return 0; } gfx::Rect PaintableRegion() override { return gfx::Rect(bounds_); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { SkPictureRecorder recorder; skia::RefPtr<SkCanvas> canvas = skia::SharePtr( @@ -337,8 +336,9 @@ class CheckerContentLayerClient : public ContentLayerClient { } scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, DisplayItemListSettings()); - auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>(clip); + DisplayItemList::Create(PaintableRegion(), DisplayItemListSettings()); + auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>( + PaintableRegion()); skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecordingAsPicture()); @@ -363,7 +363,6 @@ class CircleContentLayerClient : public ContentLayerClient { size_t GetApproximateUnsharedMemoryUsage() const override { return 0; } gfx::Rect PaintableRegion() override { return gfx::Rect(bounds_); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { SkPictureRecorder recorder; skia::RefPtr<SkCanvas> canvas = skia::SharePtr( @@ -379,8 +378,9 @@ class CircleContentLayerClient : public ContentLayerClient { paint); scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, DisplayItemListSettings()); - auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>(clip); + DisplayItemList::Create(PaintableRegion(), DisplayItemListSettings()); + auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>( + PaintableRegion()); skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecordingAsPicture()); item->SetNew(std::move(picture)); diff --git a/cc/trees/layer_tree_host_pixeltest_tiles.cc b/cc/trees/layer_tree_host_pixeltest_tiles.cc index 60fb852..ec2303a 100644 --- a/cc/trees/layer_tree_host_pixeltest_tiles.cc +++ b/cc/trees/layer_tree_host_pixeltest_tiles.cc @@ -107,12 +107,11 @@ class BlueYellowClient : public ContentLayerClient { gfx::Rect PaintableRegion() override { return gfx::Rect(size_); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting painting_status) override { DisplayItemListSettings settings; settings.use_cached_picture = false; scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, settings); + DisplayItemList::Create(PaintableRegion(), settings); SkPictureRecorder recorder; skia::RefPtr<SkCanvas> canvas = skia::SharePtr( @@ -134,7 +133,8 @@ class BlueYellowClient : public ContentLayerClient { skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecordingAsPicture()); - auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>(clip); + auto* item = display_list->CreateAndAppendItem<DrawingDisplayItem>( + PaintableRegion()); item->SetNew(std::move(picture)); display_list->Finalize(); diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc index 2f58470..152b873 100644 --- a/cc/trees/layer_tree_host_unittest.cc +++ b/cc/trees/layer_tree_host_unittest.cc @@ -1571,7 +1571,6 @@ class TestOpacityChangeLayerDelegate : public ContentLayerClient { return gfx::Rect(test_layer_->bounds()); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { // Set layer opacity to 0. if (test_layer_) @@ -1579,7 +1578,7 @@ class TestOpacityChangeLayerDelegate : public ContentLayerClient { // Return a dummy display list. scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, DisplayItemListSettings()); + DisplayItemList::Create(PaintableRegion(), DisplayItemListSettings()); return display_list; } bool FillsBoundsCompletely() const override { return false; } @@ -2179,13 +2178,12 @@ class LayerTreeHostTestChangeLayerPropertiesInPaintContents gfx::Rect PaintableRegion() override { return gfx::Rect(layer_->bounds()); } scoped_refptr<DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, PaintingControlSetting picture_control) override { layer_->SetBounds(gfx::Size(2, 2)); // Return a dummy display list. scoped_refptr<DisplayItemList> display_list = - DisplayItemList::Create(clip, DisplayItemListSettings()); + DisplayItemList::Create(PaintableRegion(), DisplayItemListSettings()); return display_list; } diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc index 2ec6de9..aa46790 100644 --- a/ui/compositor/layer.cc +++ b/ui/compositor/layer.cc @@ -755,18 +755,16 @@ gfx::Rect Layer::PaintableRegion() { } scoped_refptr<cc::DisplayItemList> Layer::PaintContentsToDisplayList( - const gfx::Rect& clip, ContentLayerClient::PaintingControlSetting painting_control) { TRACE_EVENT1("ui", "Layer::PaintContentsToDisplayList", "name", name_); gfx::Rect local_bounds(bounds().size()); gfx::Rect invalidation( gfx::IntersectRects(damaged_region_.bounds(), local_bounds)); - DCHECK(clip.Contains(invalidation)); ClearDamagedRects(); cc::DisplayItemListSettings settings; settings.use_cached_picture = false; scoped_refptr<cc::DisplayItemList> display_list = - cc::DisplayItemList::Create(clip, settings); + cc::DisplayItemList::Create(PaintableRegion(), settings); if (delegate_) { delegate_->OnPaintLayer( PaintContext(display_list.get(), device_scale_factor_, invalidation)); diff --git a/ui/compositor/layer.h b/ui/compositor/layer.h index 5d997ae..89562b9 100644 --- a/ui/compositor/layer.h +++ b/ui/compositor/layer.h @@ -349,7 +349,6 @@ class COMPOSITOR_EXPORT Layer // ContentLayerClient gfx::Rect PaintableRegion() override; scoped_refptr<cc::DisplayItemList> PaintContentsToDisplayList( - const gfx::Rect& clip, ContentLayerClient::PaintingControlSetting painting_control) override; bool FillsBoundsCompletely() const override; size_t GetApproximateUnsharedMemoryUsage() const override; |