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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 376683004: Pass resourceless software mode in BeginFrameArgs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tiny clean up Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 5550 matching lines...) Expand 10 before | Expand all | Expand 10 after
5561 FakeOutputSurface* output_surface = 5561 FakeOutputSurface* output_surface =
5562 FakeOutputSurface::CreateDeferredGL( 5562 FakeOutputSurface::CreateDeferredGL(
5563 scoped_ptr<SoftwareOutputDevice>(software_device), 5563 scoped_ptr<SoftwareOutputDevice>(software_device),
5564 delegated_rendering).release(); 5564 delegated_rendering).release();
5565 EXPECT_TRUE(CreateHostImpl(DefaultSettings(), 5565 EXPECT_TRUE(CreateHostImpl(DefaultSettings(),
5566 scoped_ptr<OutputSurface>(output_surface))); 5566 scoped_ptr<OutputSurface>(output_surface)));
5567 host_impl_->SetViewportSize(gfx::Size(50, 50)); 5567 host_impl_->SetViewportSize(gfx::Size(50, 50));
5568 5568
5569 SetupScrollAndContentsLayers(gfx::Size(100, 100)); 5569 SetupScrollAndContentsLayers(gfx::Size(100, 100));
5570 5570
5571 output_surface->set_forced_draw_to_software_device(true); 5571 const gfx::Transform external_transform;
5572 EXPECT_TRUE(output_surface->ForcedDrawToSoftwareDevice()); 5572 const gfx::Rect external_viewport;
5573 const gfx::Rect external_clip;
5574 const bool resourceless_software_draw = true;
5575 const bool valid_for_tile_management = true;
5576 host_impl_->SetExternalDrawConstraints(external_transform,
5577 external_viewport,
5578 external_clip,
5579 resourceless_software_draw,
5580 valid_for_tile_management);
5573 5581
5574 EXPECT_EQ(0, software_device->frames_began_); 5582 EXPECT_EQ(0, software_device->frames_began_);
5575 EXPECT_EQ(0, software_device->frames_ended_); 5583 EXPECT_EQ(0, software_device->frames_ended_);
5576 5584
5577 DrawFrame(); 5585 DrawFrame();
5578 5586
5579 EXPECT_EQ(1, software_device->frames_began_); 5587 EXPECT_EQ(1, software_device->frames_began_);
5580 EXPECT_EQ(1, software_device->frames_ended_); 5588 EXPECT_EQ(1, software_device->frames_ended_);
5581 5589
5582 // Call other API methods that are likely to hit NULL pointer in this mode. 5590 // Call other API methods that are likely to hit NULL pointer in this mode.
5583 EXPECT_TRUE(host_impl_->AsValue()); 5591 EXPECT_TRUE(host_impl_->AsValue());
5584 EXPECT_TRUE(host_impl_->ActivationStateAsValue()); 5592 EXPECT_TRUE(host_impl_->ActivationStateAsValue());
5585 } 5593 }
5586 5594
5587 TEST_F(LayerTreeHostImplTest, 5595 TEST_F(LayerTreeHostImplTest,
5588 ForcedDrawToSoftwareDeviceSkipsUnsupportedLayers) { 5596 ForcedDrawToSoftwareDeviceSkipsUnsupportedLayers) {
5589 set_reduce_memory_result(false); 5597 set_reduce_memory_result(false);
5590 bool delegated_rendering = false; 5598 bool delegated_rendering = false;
5591 FakeOutputSurface* output_surface = 5599 FakeOutputSurface* output_surface =
5592 FakeOutputSurface::CreateDeferredGL( 5600 FakeOutputSurface::CreateDeferredGL(
5593 scoped_ptr<SoftwareOutputDevice>(new CountingSoftwareDevice()), 5601 scoped_ptr<SoftwareOutputDevice>(new CountingSoftwareDevice()),
5594 delegated_rendering).release(); 5602 delegated_rendering).release();
5595 EXPECT_TRUE(CreateHostImpl(DefaultSettings(), 5603 EXPECT_TRUE(CreateHostImpl(DefaultSettings(),
5596 scoped_ptr<OutputSurface>(output_surface))); 5604 scoped_ptr<OutputSurface>(output_surface)));
5597 5605
5598 output_surface->set_forced_draw_to_software_device(true); 5606 const gfx::Transform external_transform;
5599 EXPECT_TRUE(output_surface->ForcedDrawToSoftwareDevice()); 5607 const gfx::Rect external_viewport;
5608 const gfx::Rect external_clip;
5609 const bool resourceless_software_draw = true;
5610 const bool valid_for_tile_management = true;
5611 host_impl_->SetExternalDrawConstraints(external_transform,
5612 external_viewport,
5613 external_clip,
5614 resourceless_software_draw,
5615 valid_for_tile_management);
5600 5616
5601 // SolidColorLayerImpl will be drawn. 5617 // SolidColorLayerImpl will be drawn.
5602 scoped_ptr<SolidColorLayerImpl> root_layer = 5618 scoped_ptr<SolidColorLayerImpl> root_layer =
5603 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 5619 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
5604 5620
5605 // VideoLayerImpl will not be drawn. 5621 // VideoLayerImpl will not be drawn.
5606 FakeVideoFrameProvider provider; 5622 FakeVideoFrameProvider provider;
5607 scoped_ptr<VideoLayerImpl> video_layer = 5623 scoped_ptr<VideoLayerImpl> video_layer =
5608 VideoLayerImpl::Create(host_impl_->active_tree(), 2, &provider); 5624 VideoLayerImpl::Create(host_impl_->active_tree(), 2, &provider);
5609 video_layer->SetBounds(gfx::Size(10, 10)); 5625 video_layer->SetBounds(gfx::Size(10, 10));
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after
6627 300u * 1024u * 1024u); 6643 300u * 1024u * 1024u);
6628 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, 6644 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes,
6629 150u * 1024u * 1024u); 6645 150u * 1024u * 1024u);
6630 } 6646 }
6631 6647
6632 TEST_F(LayerTreeHostImplTest, ExternalTransformReflectedInNextDraw) { 6648 TEST_F(LayerTreeHostImplTest, ExternalTransformReflectedInNextDraw) {
6633 const gfx::Size layer_size(100, 100); 6649 const gfx::Size layer_size(100, 100);
6634 gfx::Transform external_transform; 6650 gfx::Transform external_transform;
6635 const gfx::Rect external_viewport(layer_size); 6651 const gfx::Rect external_viewport(layer_size);
6636 const gfx::Rect external_clip(layer_size); 6652 const gfx::Rect external_clip(layer_size);
6653 const bool resourceless_software_draw = false;
6637 const bool valid_for_tile_management = true; 6654 const bool valid_for_tile_management = true;
6638 LayerImpl* layer = SetupScrollAndContentsLayers(layer_size); 6655 LayerImpl* layer = SetupScrollAndContentsLayers(layer_size);
6639 6656
6640 host_impl_->SetExternalDrawConstraints(external_transform, 6657 host_impl_->SetExternalDrawConstraints(external_transform,
6641 external_viewport, 6658 external_viewport,
6642 external_clip, 6659 external_clip,
6660 resourceless_software_draw,
6643 valid_for_tile_management); 6661 valid_for_tile_management);
6644 DrawFrame(); 6662 DrawFrame();
6645 EXPECT_TRANSFORMATION_MATRIX_EQ( 6663 EXPECT_TRANSFORMATION_MATRIX_EQ(
6646 external_transform, layer->draw_properties().target_space_transform); 6664 external_transform, layer->draw_properties().target_space_transform);
6647 6665
6648 external_transform.Translate(20, 20); 6666 external_transform.Translate(20, 20);
6649 host_impl_->SetExternalDrawConstraints(external_transform, 6667 host_impl_->SetExternalDrawConstraints(external_transform,
6650 external_viewport, 6668 external_viewport,
6651 external_clip, 6669 external_clip,
6670 resourceless_software_draw,
6652 valid_for_tile_management); 6671 valid_for_tile_management);
6653 DrawFrame(); 6672 DrawFrame();
6654 EXPECT_TRANSFORMATION_MATRIX_EQ( 6673 EXPECT_TRANSFORMATION_MATRIX_EQ(
6655 external_transform, layer->draw_properties().target_space_transform); 6674 external_transform, layer->draw_properties().target_space_transform);
6656 } 6675 }
6657 6676
6658 } // namespace 6677 } // namespace
6659 } // namespace cc 6678 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698