Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: cc/playback/display_item_list_unittest.cc

Issue 1982893002: [blimp] Add SkPicture caching support. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge origin/master Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/playback/display_item_list.h" 5 #include "cc/playback/display_item_list.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "cc/output/filter_operation.h" 12 #include "cc/output/filter_operation.h"
13 #include "cc/output/filter_operations.h" 13 #include "cc/output/filter_operations.h"
14 #include "cc/playback/clip_display_item.h" 14 #include "cc/playback/clip_display_item.h"
15 #include "cc/playback/clip_path_display_item.h" 15 #include "cc/playback/clip_path_display_item.h"
16 #include "cc/playback/compositing_display_item.h" 16 #include "cc/playback/compositing_display_item.h"
17 #include "cc/playback/display_item_list_settings.h" 17 #include "cc/playback/display_item_list_settings.h"
18 #include "cc/playback/drawing_display_item.h" 18 #include "cc/playback/drawing_display_item.h"
19 #include "cc/playback/filter_display_item.h" 19 #include "cc/playback/filter_display_item.h"
20 #include "cc/playback/float_clip_display_item.h" 20 #include "cc/playback/float_clip_display_item.h"
21 #include "cc/playback/transform_display_item.h" 21 #include "cc/playback/transform_display_item.h"
22 #include "cc/proto/display_item.pb.h" 22 #include "cc/proto/display_item.pb.h"
23 #include "cc/test/fake_client_picture_cache.h"
24 #include "cc/test/fake_engine_picture_cache.h"
23 #include "cc/test/fake_image_serialization_processor.h" 25 #include "cc/test/fake_image_serialization_processor.h"
24 #include "cc/test/skia_common.h" 26 #include "cc/test/skia_common.h"
27 #include "testing/gmock/include/gmock/gmock.h"
25 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
26 #include "third_party/skia/include/core/SkBitmap.h" 29 #include "third_party/skia/include/core/SkBitmap.h"
27 #include "third_party/skia/include/core/SkCanvas.h" 30 #include "third_party/skia/include/core/SkCanvas.h"
28 #include "third_party/skia/include/core/SkColor.h" 31 #include "third_party/skia/include/core/SkColor.h"
29 #include "third_party/skia/include/core/SkPictureRecorder.h" 32 #include "third_party/skia/include/core/SkPictureRecorder.h"
30 #include "third_party/skia/include/core/SkSurface.h" 33 #include "third_party/skia/include/core/SkSurface.h"
31 #include "third_party/skia/include/core/SkXfermode.h" 34 #include "third_party/skia/include/core/SkXfermode.h"
32 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" 35 #include "third_party/skia/include/effects/SkColorMatrixFilter.h"
33 #include "third_party/skia/include/effects/SkImageSource.h" 36 #include "third_party/skia/include/effects/SkImageSource.h"
34 #include "third_party/skia/include/utils/SkPictureUtils.h" 37 #include "third_party/skia/include/utils/SkPictureUtils.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 kVisualRect, recorder.finishRecordingAsPicture()); 79 kVisualRect, recorder.finishRecordingAsPicture());
77 } 80 }
78 81
79 void ValidateDisplayItemListSerialization(const gfx::Size& layer_size, 82 void ValidateDisplayItemListSerialization(const gfx::Size& layer_size,
80 scoped_refptr<DisplayItemList> list) { 83 scoped_refptr<DisplayItemList> list) {
81 list->Finalize(); 84 list->Finalize();
82 85
83 std::unique_ptr<FakeImageSerializationProcessor> 86 std::unique_ptr<FakeImageSerializationProcessor>
84 fake_image_serialization_processor = 87 fake_image_serialization_processor =
85 base::WrapUnique(new FakeImageSerializationProcessor); 88 base::WrapUnique(new FakeImageSerializationProcessor);
89 std::unique_ptr<EnginePictureCache> fake_engine_picture_cache_uniq =
vmpstr 2016/06/24 18:58:32 in cc, we usually do std::unique_ptr<Foo> foo = .
nyquist 2016/06/24 20:31:23 Done.
90 fake_image_serialization_processor->CreateEnginePictureCache();
91 FakeEnginePictureCache* fake_engine_picture_cache =
92 static_cast<FakeEnginePictureCache*>(
93 fake_engine_picture_cache_uniq.get());
94 std::unique_ptr<ClientPictureCache> fake_client_picture_cache =
95 fake_image_serialization_processor->CreateClientPictureCache();
96
97 fake_engine_picture_cache->MarkAllSkPicturesAsUsed(list.get());
86 98
87 // Serialize and deserialize the DisplayItemList. 99 // Serialize and deserialize the DisplayItemList.
88 proto::DisplayItemList proto; 100 proto::DisplayItemList proto;
89 list->ToProtobuf(&proto, fake_image_serialization_processor.get()); 101 list->ToProtobuf(&proto);
102
103 std::vector<uint32_t> actual_picture_ids;
90 scoped_refptr<DisplayItemList> new_list = DisplayItemList::CreateFromProto( 104 scoped_refptr<DisplayItemList> new_list = DisplayItemList::CreateFromProto(
91 proto, fake_image_serialization_processor.get()); 105 proto, fake_client_picture_cache.get(), &actual_picture_ids);
106
107 EXPECT_THAT(actual_picture_ids,
108 testing::UnorderedElementsAreArray(
109 fake_engine_picture_cache->GetAllUsedPictureIds()));
92 110
93 EXPECT_TRUE( 111 EXPECT_TRUE(
94 AreDisplayListDrawingResultsSame(gfx::Rect(layer_size), list, new_list)); 112 AreDisplayListDrawingResultsSame(gfx::Rect(layer_size), list, new_list));
95 } 113 }
96 114
97 } // namespace 115 } // namespace
98 116
99 TEST(DisplayItemListTest, SerializeDisplayItemListSettings) { 117 TEST(DisplayItemListTest, SerializeDisplayItemListSettings) {
100 DisplayItemListSettings settings; 118 DisplayItemListSettings settings;
101 settings.use_cached_picture = false; 119 settings.use_cached_picture = false;
(...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 646
629 value = list->AsValue(false)->ToString(); 647 value = list->AsValue(false)->ToString();
630 EXPECT_EQ(value.find("\"items\":"), std::string::npos); 648 EXPECT_EQ(value.find("\"items\":"), std::string::npos);
631 EXPECT_NE(value.find("\"layer_rect\":[0,0,0,0]"), std::string::npos); 649 EXPECT_NE(value.find("\"layer_rect\":[0,0,0,0]"), std::string::npos);
632 // There should be no skp64 entry present as the items aren't included and the 650 // There should be no skp64 entry present as the items aren't included and the
633 // layer rect is empty. 651 // layer rect is empty.
634 EXPECT_EQ(value.find("\"skp64\":"), std::string::npos); 652 EXPECT_EQ(value.find("\"skp64\":"), std::string::npos);
635 } 653 }
636 654
637 } // namespace cc 655 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698