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

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: Addressed comments from vmpstr, including adding //cc/blimp 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
« no previous file with comments | « cc/playback/display_item_list.cc ('k') | cc/playback/display_item_proto_factory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 =
90 fake_image_serialization_processor->CreateEnginePictureCache();
91 FakeEnginePictureCache* fake_engine_picture_cache_ptr =
92 static_cast<FakeEnginePictureCache*>(fake_engine_picture_cache.get());
93 std::unique_ptr<ClientPictureCache> fake_client_picture_cache =
94 fake_image_serialization_processor->CreateClientPictureCache();
95
96 fake_engine_picture_cache_ptr->MarkAllSkPicturesAsUsed(list.get());
86 97
87 // Serialize and deserialize the DisplayItemList. 98 // Serialize and deserialize the DisplayItemList.
88 proto::DisplayItemList proto; 99 proto::DisplayItemList proto;
89 list->ToProtobuf(&proto, fake_image_serialization_processor.get()); 100 list->ToProtobuf(&proto);
101
102 std::vector<uint32_t> actual_picture_ids;
90 scoped_refptr<DisplayItemList> new_list = DisplayItemList::CreateFromProto( 103 scoped_refptr<DisplayItemList> new_list = DisplayItemList::CreateFromProto(
91 proto, fake_image_serialization_processor.get()); 104 proto, fake_client_picture_cache.get(), &actual_picture_ids);
92 105
93 EXPECT_TRUE( 106 EXPECT_THAT(actual_picture_ids,
94 AreDisplayListDrawingResultsSame(gfx::Rect(layer_size), list, new_list)); 107 testing::UnorderedElementsAreArray(
108 fake_engine_picture_cache_ptr->GetAllUsedPictureIds()));
109
110 EXPECT_TRUE(AreDisplayListDrawingResultsSame(gfx::Rect(layer_size),
111 list.get(), new_list.get()));
95 } 112 }
96 113
97 } // namespace 114 } // namespace
98 115
99 TEST(DisplayItemListTest, SerializeDisplayItemListSettings) { 116 TEST(DisplayItemListTest, SerializeDisplayItemListSettings) {
100 DisplayItemListSettings settings; 117 DisplayItemListSettings settings;
101 settings.use_cached_picture = false; 118 settings.use_cached_picture = false;
102 119
103 { 120 {
104 proto::DisplayItemListSettings proto; 121 proto::DisplayItemListSettings proto;
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 645
629 value = list->AsValue(false)->ToString(); 646 value = list->AsValue(false)->ToString();
630 EXPECT_EQ(value.find("\"items\":"), std::string::npos); 647 EXPECT_EQ(value.find("\"items\":"), std::string::npos);
631 EXPECT_NE(value.find("\"layer_rect\":[0,0,0,0]"), std::string::npos); 648 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 649 // There should be no skp64 entry present as the items aren't included and the
633 // layer rect is empty. 650 // layer rect is empty.
634 EXPECT_EQ(value.find("\"skp64\":"), std::string::npos); 651 EXPECT_EQ(value.find("\"skp64\":"), std::string::npos);
635 } 652 }
636 653
637 } // namespace cc 654 } // namespace cc
OLDNEW
« no previous file with comments | « cc/playback/display_item_list.cc ('k') | cc/playback/display_item_proto_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698