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

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: git 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_image_serialization_processor.h" 23 #include "cc/test/fake_image_serialization_processor.h"
24 #include "cc/test/fake_picture_cache.h"
24 #include "cc/test/skia_common.h" 25 #include "cc/test/skia_common.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 #include "third_party/skia/include/core/SkBitmap.h" 27 #include "third_party/skia/include/core/SkBitmap.h"
27 #include "third_party/skia/include/core/SkCanvas.h" 28 #include "third_party/skia/include/core/SkCanvas.h"
28 #include "third_party/skia/include/core/SkColor.h" 29 #include "third_party/skia/include/core/SkColor.h"
29 #include "third_party/skia/include/core/SkPictureRecorder.h" 30 #include "third_party/skia/include/core/SkPictureRecorder.h"
30 #include "third_party/skia/include/core/SkSurface.h" 31 #include "third_party/skia/include/core/SkSurface.h"
31 #include "third_party/skia/include/core/SkXfermode.h" 32 #include "third_party/skia/include/core/SkXfermode.h"
32 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" 33 #include "third_party/skia/include/effects/SkColorMatrixFilter.h"
33 #include "third_party/skia/include/effects/SkImageSource.h" 34 #include "third_party/skia/include/effects/SkImageSource.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 kVisualRect, recorder.finishRecordingAsPicture()); 77 kVisualRect, recorder.finishRecordingAsPicture());
77 } 78 }
78 79
79 void ValidateDisplayItemListSerialization(const gfx::Size& layer_size, 80 void ValidateDisplayItemListSerialization(const gfx::Size& layer_size,
80 scoped_refptr<DisplayItemList> list) { 81 scoped_refptr<DisplayItemList> list) {
81 list->Finalize(); 82 list->Finalize();
82 83
83 std::unique_ptr<FakeImageSerializationProcessor> 84 std::unique_ptr<FakeImageSerializationProcessor>
84 fake_image_serialization_processor = 85 fake_image_serialization_processor =
85 base::WrapUnique(new FakeImageSerializationProcessor); 86 base::WrapUnique(new FakeImageSerializationProcessor);
87 std::unique_ptr<EnginePictureCache> fake_engine_picture_cache =
88 fake_image_serialization_processor->CreateEnginePictureCache();
89 std::unique_ptr<ClientPictureCache> fake_client_picture_cache =
90 fake_image_serialization_processor->CreateClientPictureCache();
86 91
87 // Serialize and deserialize the DisplayItemList. 92 // Serialize and deserialize the DisplayItemList.
88 proto::DisplayItemList proto; 93 proto::DisplayItemList proto;
89 list->ToProtobuf(&proto, fake_image_serialization_processor.get()); 94 list->ToProtobuf(&proto);
90 scoped_refptr<DisplayItemList> new_list = DisplayItemList::CreateFromProto( 95
91 proto, fake_image_serialization_processor.get()); 96 // Marking the list for registration ends up adding all the SkPictures to the
97 // cache.
98 list->MarkForRegistrationEngine(fake_engine_picture_cache.get());
99
100 scoped_refptr<DisplayItemList> new_list =
101 DisplayItemList::CreateFromProto(proto, fake_client_picture_cache.get());
92 102
93 EXPECT_TRUE( 103 EXPECT_TRUE(
94 AreDisplayListDrawingResultsSame(gfx::Rect(layer_size), list, new_list)); 104 AreDisplayListDrawingResultsSame(gfx::Rect(layer_size), list, new_list));
95 } 105 }
96 106
97 } // namespace 107 } // namespace
98 108
99 TEST(DisplayItemListTest, SerializeDisplayItemListSettings) { 109 TEST(DisplayItemListTest, SerializeDisplayItemListSettings) {
100 DisplayItemListSettings settings; 110 DisplayItemListSettings settings;
101 settings.use_cached_picture = false; 111 settings.use_cached_picture = false;
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 637
628 value = list->AsValue(false)->ToString(); 638 value = list->AsValue(false)->ToString();
629 EXPECT_EQ(value.find("\"items\":"), std::string::npos); 639 EXPECT_EQ(value.find("\"items\":"), std::string::npos);
630 EXPECT_NE(value.find("\"layer_rect\":[0,0,0,0]"), std::string::npos); 640 EXPECT_NE(value.find("\"layer_rect\":[0,0,0,0]"), std::string::npos);
631 // There should be no skp64 entry present as the items aren't included and the 641 // There should be no skp64 entry present as the items aren't included and the
632 // layer rect is empty. 642 // layer rect is empty.
633 EXPECT_EQ(value.find("\"skp64\":"), std::string::npos); 643 EXPECT_EQ(value.find("\"skp64\":"), std::string::npos);
634 } 644 }
635 645
636 } // namespace cc 646 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698