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

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 2323583002: cc: Remove DelegatingRenderer. (Closed)
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_unittest.cc
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index b62f4eec880ed7d71c7f12b3d4b7d963f18b4b68..706185e90de85246525eac4ea57e4cdb88c9f66f 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -46,6 +46,7 @@
#include "cc/test/geometry_test_utils.h"
#include "cc/test/layer_internals_for_test.h"
#include "cc/test/layer_tree_test.h"
+#include "cc/test/render_pass_test_utils.h"
#include "cc/test/skia_common.h"
#include "cc/test/test_delegating_output_surface.h"
#include "cc/test/test_shared_bitmap_manager.h"
@@ -7045,5 +7046,90 @@ class GpuRasterizationSucceedsWithLargeImage : public LayerTreeHostTest {
SINGLE_AND_MULTI_THREAD_TEST_F(GpuRasterizationSucceedsWithLargeImage);
+class LayerTreeHostTestSubmitFrameMetadata : public LayerTreeHostTest {
+ protected:
+ void BeginTest() override {
+ layer_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
+ PostSetNeedsCommitToMainThread();
+ }
+
+ DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
+ LayerTreeHostImpl::FrameData* frame_data,
+ DrawResult draw_result) override {
+ EXPECT_EQ(DRAW_SUCCESS, draw_result);
+ EXPECT_EQ(0, num_swaps_);
+ drawn_viewport_ = host_impl->DeviceViewport();
+ return draw_result;
+ }
+
+ void DisplayReceivedCompositorFrameOnThread(
+ const CompositorFrame& frame) override {
+ EXPECT_EQ(1, ++num_swaps_);
+
+ DelegatedFrameData* last_frame_data = frame.delegated_frame_data.get();
+ ASSERT_TRUE(frame.delegated_frame_data);
+ EXPECT_FALSE(frame.gl_frame_data);
+ EXPECT_EQ(drawn_viewport_,
+ last_frame_data->render_pass_list.back()->output_rect);
+ EXPECT_EQ(0.5f, frame.metadata.min_page_scale_factor);
+ EXPECT_EQ(4.f, frame.metadata.max_page_scale_factor);
+
+ EXPECT_EQ(0u, frame.delegated_frame_data->resource_list.size());
+ EXPECT_EQ(1u, frame.delegated_frame_data->render_pass_list.size());
+
+ EndTest();
+ }
+
+ void AfterTest() override {}
+
+ int num_swaps_ = 0;
+ gfx::Rect drawn_viewport_;
+};
+
+SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSubmitFrameMetadata);
+
+class LayerTreeHostTestSubmitFrameResources : public LayerTreeHostTest {
+ protected:
+ void BeginTest() override { PostSetNeedsCommitToMainThread(); }
+
+ DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
+ LayerTreeHostImpl::FrameData* frame,
+ DrawResult draw_result) override {
+ frame->render_passes.clear();
+
+ RenderPass* child_pass =
+ AddRenderPass(&frame->render_passes, RenderPassId(2, 1),
+ gfx::Rect(3, 3, 10, 10), gfx::Transform());
+ gpu::SyncToken mailbox_sync_token;
+ AddOneOfEveryQuadType(child_pass, host_impl->resource_provider(),
+ RenderPassId(0, 0), &mailbox_sync_token);
+
+ RenderPass* pass = AddRenderPass(&frame->render_passes, RenderPassId(1, 1),
+ gfx::Rect(3, 3, 10, 10), gfx::Transform());
+ AddOneOfEveryQuadType(pass, host_impl->resource_provider(), child_pass->id,
+ &mailbox_sync_token);
+ return draw_result;
+ }
+
+ void DisplayReceivedCompositorFrameOnThread(
+ const CompositorFrame& frame) override {
+ ASSERT_TRUE(frame.delegated_frame_data);
+
+ EXPECT_EQ(2u, frame.delegated_frame_data->render_pass_list.size());
+ // Each render pass has 10 resources in it. And the root render pass has a
+ // mask resource used when drawing the child render pass, as well as its
+ // replica (it's added twice). The number 10 may change if
+ // AppendOneOfEveryQuadType() is updated, and the value here should be
+ // updated accordingly.
+ EXPECT_EQ(22u, frame.delegated_frame_data->resource_list.size());
+
+ EndTest();
+ }
+
+ void AfterTest() override {}
+};
+
+SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSubmitFrameResources);
+
} // namespace
} // namespace cc
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698