| OLD | NEW |
| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <cmath> | 10 #include <cmath> |
| (...skipping 3118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3129 host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f); | 3129 host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f); |
| 3130 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); | 3130 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); |
| 3131 host_impl_->ActivateSyncTree(); | 3131 host_impl_->ActivateSyncTree(); |
| 3132 | 3132 |
| 3133 LayerImpl* active_scrollbar_layer = | 3133 LayerImpl* active_scrollbar_layer = |
| 3134 host_impl_->active_tree()->LayerById(400); | 3134 host_impl_->active_tree()->LayerById(400); |
| 3135 | 3135 |
| 3136 EffectNode* active_tree_node = | 3136 EffectNode* active_tree_node = |
| 3137 host_impl_->active_tree()->property_trees()->effect_tree.Node( | 3137 host_impl_->active_tree()->property_trees()->effect_tree.Node( |
| 3138 active_scrollbar_layer->effect_tree_index()); | 3138 active_scrollbar_layer->effect_tree_index()); |
| 3139 EXPECT_FLOAT_EQ(active_scrollbar_layer->Opacity(), | 3139 EXPECT_FLOAT_EQ(OpacityForLayer(active_scrollbar_layer), |
| 3140 active_tree_node->opacity); | 3140 active_tree_node->opacity); |
| 3141 | 3141 |
| 3142 if (expecting_animations) { | 3142 if (expecting_animations) { |
| 3143 host_impl_->ScrollbarAnimationControllerForElementId(scroll->element_id()) | 3143 host_impl_->ScrollbarAnimationControllerForElementId(scroll->element_id()) |
| 3144 ->DidMouseMove(gfx::PointF(0, 90)); | 3144 ->DidMouseMove(gfx::PointF(0, 90)); |
| 3145 } else { | 3145 } else { |
| 3146 EXPECT_EQ(nullptr, host_impl_->ScrollbarAnimationControllerForElementId( | 3146 EXPECT_EQ(nullptr, host_impl_->ScrollbarAnimationControllerForElementId( |
| 3147 scroll->element_id())); | 3147 scroll->element_id())); |
| 3148 } | 3148 } |
| 3149 host_impl_->ScrollBegin(BeginState(gfx::Point()).get(), | 3149 host_impl_->ScrollBegin(BeginState(gfx::Point()).get(), |
| 3150 InputHandler::WHEEL); | 3150 InputHandler::WHEEL); |
| 3151 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 5)).get()); | 3151 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 5)).get()); |
| 3152 host_impl_->ScrollEnd(EndState().get()); | 3152 host_impl_->ScrollEnd(EndState().get()); |
| 3153 host_impl_->CreatePendingTree(); | 3153 host_impl_->CreatePendingTree(); |
| 3154 // To test the case where the effect tree index of scrollbar layer changes, | 3154 // To test the case where the effect tree index of scrollbar layer changes, |
| 3155 // we force the container layer to create a render surface. | 3155 // we force the container layer to create a render surface. |
| 3156 container = host_impl_->pending_tree()->InnerViewportContainerLayer(); | 3156 container = host_impl_->pending_tree()->InnerViewportContainerLayer(); |
| 3157 container->test_properties()->force_render_surface = true; | 3157 container->test_properties()->force_render_surface = true; |
| 3158 container->SetBounds(gfx::Size(10, 10)); | 3158 container->SetBounds(gfx::Size(10, 10)); |
| 3159 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); | 3159 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); |
| 3160 | 3160 |
| 3161 LayerImpl* pending_scrollbar_layer = | 3161 LayerImpl* pending_scrollbar_layer = |
| 3162 host_impl_->pending_tree()->LayerById(400); | 3162 host_impl_->pending_tree()->LayerById(400); |
| 3163 pending_scrollbar_layer->SetNeedsPushProperties(); | 3163 pending_scrollbar_layer->SetNeedsPushProperties(); |
| 3164 EffectNode* pending_tree_node = | 3164 EffectNode* pending_tree_node = |
| 3165 host_impl_->pending_tree()->property_trees()->effect_tree.Node( | 3165 host_impl_->pending_tree()->property_trees()->effect_tree.Node( |
| 3166 pending_scrollbar_layer->effect_tree_index()); | 3166 pending_scrollbar_layer->effect_tree_index()); |
| 3167 host_impl_->pending_tree() | 3167 host_impl_->pending_tree() |
| 3168 ->property_trees() | 3168 ->property_trees() |
| 3169 ->always_use_active_tree_opacity_effect_ids.push_back(400); | 3169 ->always_use_active_tree_opacity_effect_ids.push_back( |
| 3170 ElementId(500, 0)); |
| 3170 if (expecting_animations) { | 3171 if (expecting_animations) { |
| 3171 EXPECT_FLOAT_EQ(1.f, active_tree_node->opacity); | 3172 EXPECT_FLOAT_EQ(1.f, active_tree_node->opacity); |
| 3172 EXPECT_FLOAT_EQ(1.f, active_scrollbar_layer->Opacity()); | 3173 EXPECT_FLOAT_EQ(1.f, OpacityForLayer(active_scrollbar_layer)); |
| 3173 } else { | 3174 } else { |
| 3174 EXPECT_FLOAT_EQ(0.f, active_tree_node->opacity); | 3175 EXPECT_FLOAT_EQ(0.f, active_tree_node->opacity); |
| 3175 EXPECT_FLOAT_EQ(0.f, active_scrollbar_layer->Opacity()); | 3176 EXPECT_FLOAT_EQ(0.f, OpacityForLayer(active_scrollbar_layer)); |
| 3176 } | 3177 } |
| 3177 EXPECT_FLOAT_EQ(0.f, pending_tree_node->opacity); | 3178 EXPECT_FLOAT_EQ(0.f, pending_tree_node->opacity); |
| 3178 host_impl_->ActivateSyncTree(); | 3179 host_impl_->ActivateSyncTree(); |
| 3179 active_tree_node = | 3180 active_tree_node = |
| 3180 host_impl_->active_tree()->property_trees()->effect_tree.Node( | 3181 host_impl_->active_tree()->property_trees()->effect_tree.Node( |
| 3181 active_scrollbar_layer->effect_tree_index()); | 3182 active_scrollbar_layer->effect_tree_index()); |
| 3182 if (expecting_animations) { | 3183 if (expecting_animations) { |
| 3183 EXPECT_FLOAT_EQ(1.f, active_tree_node->opacity); | 3184 EXPECT_FLOAT_EQ(1.f, active_tree_node->opacity); |
| 3184 EXPECT_FLOAT_EQ(1.f, active_scrollbar_layer->Opacity()); | 3185 EXPECT_FLOAT_EQ(1.f, OpacityForLayer(active_scrollbar_layer)); |
| 3185 } else { | 3186 } else { |
| 3186 EXPECT_FLOAT_EQ(0.f, active_tree_node->opacity); | 3187 EXPECT_FLOAT_EQ(0.f, active_tree_node->opacity); |
| 3187 EXPECT_FLOAT_EQ(0.f, active_scrollbar_layer->Opacity()); | 3188 EXPECT_FLOAT_EQ(0.f, OpacityForLayer(active_scrollbar_layer)); |
| 3188 } | 3189 } |
| 3189 } | 3190 } |
| 3190 }; | 3191 }; |
| 3191 | 3192 |
| 3192 TEST_F(LayerTreeHostImplTestScrollbarOpacity, Android) { | 3193 TEST_F(LayerTreeHostImplTestScrollbarOpacity, Android) { |
| 3193 RunTest(LayerTreeSettings::ANDROID_OVERLAY); | 3194 RunTest(LayerTreeSettings::ANDROID_OVERLAY); |
| 3194 } | 3195 } |
| 3195 | 3196 |
| 3196 TEST_F(LayerTreeHostImplTestScrollbarOpacity, AuraOverlay) { | 3197 TEST_F(LayerTreeHostImplTestScrollbarOpacity, AuraOverlay) { |
| 3197 RunTest(LayerTreeSettings::AURA_OVERLAY); | 3198 RunTest(LayerTreeSettings::AURA_OVERLAY); |
| (...skipping 4044 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7242 PopulateSharedQuadState(shared_quad_state); | 7243 PopulateSharedQuadState(shared_quad_state); |
| 7243 | 7244 |
| 7244 TileDrawQuad* test_blending_draw_quad = | 7245 TileDrawQuad* test_blending_draw_quad = |
| 7245 render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); | 7246 render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
| 7246 test_blending_draw_quad->SetNew(shared_quad_state, quad_rect_, opaque_rect, | 7247 test_blending_draw_quad->SetNew(shared_quad_state, quad_rect_, opaque_rect, |
| 7247 visible_quad_rect, resource_id_, | 7248 visible_quad_rect, resource_id_, |
| 7248 gfx::RectF(0.f, 0.f, 1.f, 1.f), | 7249 gfx::RectF(0.f, 0.f, 1.f, 1.f), |
| 7249 gfx::Size(1, 1), false, false); | 7250 gfx::Size(1, 1), false, false); |
| 7250 test_blending_draw_quad->visible_rect = quad_visible_rect_; | 7251 test_blending_draw_quad->visible_rect = quad_visible_rect_; |
| 7251 EXPECT_EQ(blend_, test_blending_draw_quad->ShouldDrawWithBlending()); | 7252 EXPECT_EQ(blend_, test_blending_draw_quad->ShouldDrawWithBlending()); |
| 7252 EXPECT_EQ(has_render_surface_, !!GetRenderSurface(this)); | 7253 EXPECT_EQ(has_render_surface_, |
| 7254 GetRenderSurface(this) != GetRenderSurface(comparison_layer_)); |
| 7253 } | 7255 } |
| 7254 | 7256 |
| 7255 void SetExpectation(bool blend, bool has_render_surface) { | 7257 void SetExpectation(bool blend, |
| 7258 bool has_render_surface, |
| 7259 LayerImpl* comparison_layer) { |
| 7256 blend_ = blend; | 7260 blend_ = blend; |
| 7257 has_render_surface_ = has_render_surface; | 7261 has_render_surface_ = has_render_surface; |
| 7262 comparison_layer_ = comparison_layer; |
| 7258 quads_appended_ = false; | 7263 quads_appended_ = false; |
| 7259 } | 7264 } |
| 7260 | 7265 |
| 7261 bool quads_appended() const { return quads_appended_; } | 7266 bool quads_appended() const { return quads_appended_; } |
| 7262 | 7267 |
| 7263 void SetQuadRect(const gfx::Rect& rect) { quad_rect_ = rect; } | 7268 void SetQuadRect(const gfx::Rect& rect) { quad_rect_ = rect; } |
| 7264 void SetQuadVisibleRect(const gfx::Rect& rect) { quad_visible_rect_ = rect; } | 7269 void SetQuadVisibleRect(const gfx::Rect& rect) { quad_visible_rect_ = rect; } |
| 7265 void SetOpaqueContentRect(const gfx::Rect& rect) { | 7270 void SetOpaqueContentRect(const gfx::Rect& rect) { |
| 7266 opaque_content_rect_ = rect; | 7271 opaque_content_rect_ = rect; |
| 7267 } | 7272 } |
| 7268 | 7273 |
| 7269 private: | 7274 private: |
| 7270 BlendStateCheckLayer(LayerTreeImpl* tree_impl, | 7275 BlendStateCheckLayer(LayerTreeImpl* tree_impl, |
| 7271 int id, | 7276 int id, |
| 7272 ResourceProvider* resource_provider) | 7277 ResourceProvider* resource_provider) |
| 7273 : LayerImpl(tree_impl, id), | 7278 : LayerImpl(tree_impl, id), |
| 7274 blend_(false), | 7279 blend_(false), |
| 7275 has_render_surface_(false), | 7280 has_render_surface_(false), |
| 7281 comparison_layer_(nullptr), |
| 7276 quads_appended_(false), | 7282 quads_appended_(false), |
| 7277 quad_rect_(5, 5, 5, 5), | 7283 quad_rect_(5, 5, 5, 5), |
| 7278 quad_visible_rect_(5, 5, 5, 5), | 7284 quad_visible_rect_(5, 5, 5, 5), |
| 7279 resource_id_(resource_provider->CreateResource( | 7285 resource_id_(resource_provider->CreateResource( |
| 7280 gfx::Size(1, 1), | 7286 gfx::Size(1, 1), |
| 7281 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 7287 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 7282 RGBA_8888, | 7288 RGBA_8888, |
| 7283 gfx::ColorSpace())) { | 7289 gfx::ColorSpace())) { |
| 7284 resource_provider->AllocateForTesting(resource_id_); | 7290 resource_provider->AllocateForTesting(resource_id_); |
| 7285 SetBounds(gfx::Size(10, 10)); | 7291 SetBounds(gfx::Size(10, 10)); |
| 7286 SetDrawsContent(true); | 7292 SetDrawsContent(true); |
| 7287 } | 7293 } |
| 7288 | 7294 |
| 7289 bool blend_; | 7295 bool blend_; |
| 7290 bool has_render_surface_; | 7296 bool has_render_surface_; |
| 7297 LayerImpl* comparison_layer_; |
| 7291 bool quads_appended_; | 7298 bool quads_appended_; |
| 7292 gfx::Rect quad_rect_; | 7299 gfx::Rect quad_rect_; |
| 7293 gfx::Rect opaque_content_rect_; | 7300 gfx::Rect opaque_content_rect_; |
| 7294 gfx::Rect quad_visible_rect_; | 7301 gfx::Rect quad_visible_rect_; |
| 7295 ResourceId resource_id_; | 7302 ResourceId resource_id_; |
| 7296 }; | 7303 }; |
| 7297 | 7304 |
| 7298 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { | 7305 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
| 7299 { | 7306 { |
| 7300 std::unique_ptr<LayerImpl> root = | 7307 std::unique_ptr<LayerImpl> root = |
| 7301 LayerImpl::Create(host_impl_->active_tree(), 1); | 7308 LayerImpl::Create(host_impl_->active_tree(), 1); |
| 7302 root->SetBounds(gfx::Size(10, 10)); | 7309 root->SetBounds(gfx::Size(10, 10)); |
| 7303 root->SetDrawsContent(false); | 7310 root->SetDrawsContent(false); |
| 7304 root->test_properties()->force_render_surface = true; | 7311 root->test_properties()->force_render_surface = true; |
| 7305 host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); | 7312 host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
| 7306 } | 7313 } |
| 7307 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); | 7314 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
| 7308 | 7315 |
| 7309 root->test_properties()->AddChild(BlendStateCheckLayer::Create( | 7316 root->test_properties()->AddChild(BlendStateCheckLayer::Create( |
| 7310 host_impl_->active_tree(), 2, host_impl_->resource_provider())); | 7317 host_impl_->active_tree(), 2, host_impl_->resource_provider())); |
| 7311 BlendStateCheckLayer* layer1 = | 7318 BlendStateCheckLayer* layer1 = |
| 7312 static_cast<BlendStateCheckLayer*>(root->test_properties()->children[0]); | 7319 static_cast<BlendStateCheckLayer*>(root->test_properties()->children[0]); |
| 7313 layer1->SetPosition(gfx::PointF(2.f, 2.f)); | 7320 layer1->SetPosition(gfx::PointF(2.f, 2.f)); |
| 7314 | 7321 |
| 7315 TestFrameData frame; | 7322 TestFrameData frame; |
| 7316 | 7323 |
| 7317 // Opaque layer, drawn without blending. | 7324 // Opaque layer, drawn without blending. |
| 7318 layer1->SetContentsOpaque(true); | 7325 layer1->SetContentsOpaque(true); |
| 7319 layer1->SetExpectation(false, false); | 7326 layer1->SetExpectation(false, false, root); |
| 7320 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7327 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7321 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7328 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7322 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7329 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7323 host_impl_->DrawLayers(&frame); | 7330 host_impl_->DrawLayers(&frame); |
| 7324 EXPECT_TRUE(layer1->quads_appended()); | 7331 EXPECT_TRUE(layer1->quads_appended()); |
| 7325 host_impl_->DidDrawAllLayers(frame); | 7332 host_impl_->DidDrawAllLayers(frame); |
| 7326 | 7333 |
| 7327 // Layer with translucent content and painting, so drawn with blending. | 7334 // Layer with translucent content and painting, so drawn with blending. |
| 7328 layer1->SetContentsOpaque(false); | 7335 layer1->SetContentsOpaque(false); |
| 7329 layer1->SetExpectation(true, false); | 7336 layer1->SetExpectation(true, false, root); |
| 7330 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7337 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7331 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7338 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7332 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7339 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7333 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7340 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7334 host_impl_->DrawLayers(&frame); | 7341 host_impl_->DrawLayers(&frame); |
| 7335 EXPECT_TRUE(layer1->quads_appended()); | 7342 EXPECT_TRUE(layer1->quads_appended()); |
| 7336 host_impl_->DidDrawAllLayers(frame); | 7343 host_impl_->DidDrawAllLayers(frame); |
| 7337 | 7344 |
| 7338 // Layer with translucent opacity, drawn with blending. | 7345 // Layer with translucent opacity, drawn with blending. |
| 7339 layer1->SetContentsOpaque(true); | 7346 layer1->SetContentsOpaque(true); |
| 7340 layer1->test_properties()->opacity = 0.5f; | 7347 layer1->test_properties()->opacity = 0.5f; |
| 7341 layer1->NoteLayerPropertyChanged(); | 7348 layer1->NoteLayerPropertyChanged(); |
| 7342 layer1->SetExpectation(true, false); | 7349 layer1->SetExpectation(true, false, root); |
| 7343 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7350 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7344 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7351 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7345 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7352 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7346 host_impl_->DrawLayers(&frame); | 7353 host_impl_->DrawLayers(&frame); |
| 7347 EXPECT_TRUE(layer1->quads_appended()); | 7354 EXPECT_TRUE(layer1->quads_appended()); |
| 7348 host_impl_->DidDrawAllLayers(frame); | 7355 host_impl_->DidDrawAllLayers(frame); |
| 7349 | 7356 |
| 7350 // Layer with translucent opacity and painting, drawn with blending. | 7357 // Layer with translucent opacity and painting, drawn with blending. |
| 7351 layer1->SetContentsOpaque(true); | 7358 layer1->SetContentsOpaque(true); |
| 7352 layer1->test_properties()->opacity = 0.5f; | 7359 layer1->test_properties()->opacity = 0.5f; |
| 7353 layer1->NoteLayerPropertyChanged(); | 7360 layer1->NoteLayerPropertyChanged(); |
| 7354 layer1->SetExpectation(true, false); | 7361 layer1->SetExpectation(true, false, root); |
| 7355 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7362 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7356 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7363 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7357 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7364 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7358 host_impl_->DrawLayers(&frame); | 7365 host_impl_->DrawLayers(&frame); |
| 7359 EXPECT_TRUE(layer1->quads_appended()); | 7366 EXPECT_TRUE(layer1->quads_appended()); |
| 7360 host_impl_->DidDrawAllLayers(frame); | 7367 host_impl_->DidDrawAllLayers(frame); |
| 7361 | 7368 |
| 7362 layer1->test_properties()->AddChild(BlendStateCheckLayer::Create( | 7369 layer1->test_properties()->AddChild(BlendStateCheckLayer::Create( |
| 7363 host_impl_->active_tree(), 3, host_impl_->resource_provider())); | 7370 host_impl_->active_tree(), 3, host_impl_->resource_provider())); |
| 7364 BlendStateCheckLayer* layer2 = static_cast<BlendStateCheckLayer*>( | 7371 BlendStateCheckLayer* layer2 = static_cast<BlendStateCheckLayer*>( |
| 7365 layer1->test_properties()->children[0]); | 7372 layer1->test_properties()->children[0]); |
| 7366 layer2->SetPosition(gfx::PointF(4.f, 4.f)); | 7373 layer2->SetPosition(gfx::PointF(4.f, 4.f)); |
| 7367 | 7374 |
| 7368 // 2 opaque layers, drawn without blending. | 7375 // 2 opaque layers, drawn without blending. |
| 7369 layer1->SetContentsOpaque(true); | 7376 layer1->SetContentsOpaque(true); |
| 7370 layer1->test_properties()->opacity = 1.f; | 7377 layer1->test_properties()->opacity = 1.f; |
| 7371 layer1->NoteLayerPropertyChanged(); | 7378 layer1->NoteLayerPropertyChanged(); |
| 7372 layer1->SetExpectation(false, false); | 7379 layer1->SetExpectation(false, false, root); |
| 7373 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7380 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7374 layer2->SetContentsOpaque(true); | 7381 layer2->SetContentsOpaque(true); |
| 7375 layer2->test_properties()->opacity = 1.f; | 7382 layer2->test_properties()->opacity = 1.f; |
| 7376 layer2->NoteLayerPropertyChanged(); | 7383 layer2->NoteLayerPropertyChanged(); |
| 7377 layer2->SetExpectation(false, false); | 7384 layer2->SetExpectation(false, false, root); |
| 7378 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7385 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7379 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7386 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7380 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7387 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7381 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7388 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7382 host_impl_->DrawLayers(&frame); | 7389 host_impl_->DrawLayers(&frame); |
| 7383 EXPECT_TRUE(layer1->quads_appended()); | 7390 EXPECT_TRUE(layer1->quads_appended()); |
| 7384 EXPECT_TRUE(layer2->quads_appended()); | 7391 EXPECT_TRUE(layer2->quads_appended()); |
| 7385 host_impl_->DidDrawAllLayers(frame); | 7392 host_impl_->DidDrawAllLayers(frame); |
| 7386 | 7393 |
| 7387 // Parent layer with translucent content, drawn with blending. | 7394 // Parent layer with translucent content, drawn with blending. |
| 7388 // Child layer with opaque content, drawn without blending. | 7395 // Child layer with opaque content, drawn without blending. |
| 7389 layer1->SetContentsOpaque(false); | 7396 layer1->SetContentsOpaque(false); |
| 7390 layer1->SetExpectation(true, false); | 7397 layer1->SetExpectation(true, false, root); |
| 7391 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7398 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7392 layer2->SetExpectation(false, false); | 7399 layer2->SetExpectation(false, false, root); |
| 7393 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7400 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7394 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7401 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7395 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7402 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7396 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7403 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7397 host_impl_->DrawLayers(&frame); | 7404 host_impl_->DrawLayers(&frame); |
| 7398 EXPECT_TRUE(layer1->quads_appended()); | 7405 EXPECT_TRUE(layer1->quads_appended()); |
| 7399 EXPECT_TRUE(layer2->quads_appended()); | 7406 EXPECT_TRUE(layer2->quads_appended()); |
| 7400 host_impl_->DidDrawAllLayers(frame); | 7407 host_impl_->DidDrawAllLayers(frame); |
| 7401 | 7408 |
| 7402 // Parent layer with translucent content but opaque painting, drawn without | 7409 // Parent layer with translucent content but opaque painting, drawn without |
| 7403 // blending. | 7410 // blending. |
| 7404 // Child layer with opaque content, drawn without blending. | 7411 // Child layer with opaque content, drawn without blending. |
| 7405 layer1->SetContentsOpaque(true); | 7412 layer1->SetContentsOpaque(true); |
| 7406 layer1->SetExpectation(false, false); | 7413 layer1->SetExpectation(false, false, root); |
| 7407 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7414 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7408 layer2->SetExpectation(false, false); | 7415 layer2->SetExpectation(false, false, root); |
| 7409 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7416 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7410 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7417 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7411 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7418 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7412 host_impl_->DrawLayers(&frame); | 7419 host_impl_->DrawLayers(&frame); |
| 7413 EXPECT_TRUE(layer1->quads_appended()); | 7420 EXPECT_TRUE(layer1->quads_appended()); |
| 7414 EXPECT_TRUE(layer2->quads_appended()); | 7421 EXPECT_TRUE(layer2->quads_appended()); |
| 7415 host_impl_->DidDrawAllLayers(frame); | 7422 host_impl_->DidDrawAllLayers(frame); |
| 7416 | 7423 |
| 7417 // Parent layer with translucent opacity and opaque content. Since it has a | 7424 // Parent layer with translucent opacity and opaque content. Since it has a |
| 7418 // drawing child, it's drawn to a render surface which carries the opacity, | 7425 // drawing child, it's drawn to a render surface which carries the opacity, |
| 7419 // so it's itself drawn without blending. | 7426 // so it's itself drawn without blending. |
| 7420 // Child layer with opaque content, drawn without blending (parent surface | 7427 // Child layer with opaque content, drawn without blending (parent surface |
| 7421 // carries the inherited opacity). | 7428 // carries the inherited opacity). |
| 7422 layer1->SetContentsOpaque(true); | 7429 layer1->SetContentsOpaque(true); |
| 7423 layer1->test_properties()->opacity = 0.5f; | 7430 layer1->test_properties()->opacity = 0.5f; |
| 7424 layer1->NoteLayerPropertyChanged(); | 7431 layer1->NoteLayerPropertyChanged(); |
| 7425 layer1->test_properties()->force_render_surface = true; | 7432 layer1->test_properties()->force_render_surface = true; |
| 7426 layer1->SetExpectation(false, true); | 7433 layer1->SetExpectation(false, true, root); |
| 7427 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7434 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7428 layer2->SetExpectation(false, false); | 7435 layer2->SetExpectation(false, false, layer1); |
| 7429 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7436 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7430 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7437 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7431 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7438 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7432 host_impl_->DrawLayers(&frame); | 7439 host_impl_->DrawLayers(&frame); |
| 7433 EXPECT_TRUE(layer1->quads_appended()); | 7440 EXPECT_TRUE(layer1->quads_appended()); |
| 7434 EXPECT_TRUE(layer2->quads_appended()); | 7441 EXPECT_TRUE(layer2->quads_appended()); |
| 7435 host_impl_->DidDrawAllLayers(frame); | 7442 host_impl_->DidDrawAllLayers(frame); |
| 7436 layer1->test_properties()->force_render_surface = false; | 7443 layer1->test_properties()->force_render_surface = false; |
| 7437 | 7444 |
| 7438 // Draw again, but with child non-opaque, to make sure | 7445 // Draw again, but with child non-opaque, to make sure |
| 7439 // layer1 not culled. | 7446 // layer1 not culled. |
| 7440 layer1->SetContentsOpaque(true); | 7447 layer1->SetContentsOpaque(true); |
| 7441 layer1->test_properties()->opacity = 1.f; | 7448 layer1->test_properties()->opacity = 1.f; |
| 7442 layer1->NoteLayerPropertyChanged(); | 7449 layer1->NoteLayerPropertyChanged(); |
| 7443 layer1->SetExpectation(false, false); | 7450 layer1->SetExpectation(false, false, root); |
| 7444 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7451 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7445 layer2->SetContentsOpaque(true); | 7452 layer2->SetContentsOpaque(true); |
| 7446 layer2->test_properties()->opacity = 0.5f; | 7453 layer2->test_properties()->opacity = 0.5f; |
| 7447 layer2->NoteLayerPropertyChanged(); | 7454 layer2->NoteLayerPropertyChanged(); |
| 7448 layer2->SetExpectation(true, false); | 7455 layer2->SetExpectation(true, false, layer1); |
| 7449 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7456 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7450 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7457 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7451 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7458 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7452 host_impl_->DrawLayers(&frame); | 7459 host_impl_->DrawLayers(&frame); |
| 7453 EXPECT_TRUE(layer1->quads_appended()); | 7460 EXPECT_TRUE(layer1->quads_appended()); |
| 7454 EXPECT_TRUE(layer2->quads_appended()); | 7461 EXPECT_TRUE(layer2->quads_appended()); |
| 7455 host_impl_->DidDrawAllLayers(frame); | 7462 host_impl_->DidDrawAllLayers(frame); |
| 7456 | 7463 |
| 7457 // A second way of making the child non-opaque. | 7464 // A second way of making the child non-opaque. |
| 7458 layer1->SetContentsOpaque(true); | 7465 layer1->SetContentsOpaque(true); |
| 7459 layer1->test_properties()->opacity = 1.f; | 7466 layer1->test_properties()->opacity = 1.f; |
| 7460 layer1->NoteLayerPropertyChanged(); | 7467 layer1->NoteLayerPropertyChanged(); |
| 7461 layer1->SetExpectation(false, false); | 7468 layer1->SetExpectation(false, false, root); |
| 7462 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7469 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7463 layer2->SetContentsOpaque(false); | 7470 layer2->SetContentsOpaque(false); |
| 7464 layer2->test_properties()->opacity = 1.f; | 7471 layer2->test_properties()->opacity = 1.f; |
| 7465 layer2->NoteLayerPropertyChanged(); | 7472 layer2->NoteLayerPropertyChanged(); |
| 7466 layer2->SetExpectation(true, false); | 7473 layer2->SetExpectation(true, false, root); |
| 7467 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7474 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7468 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7475 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7469 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7476 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7470 host_impl_->DrawLayers(&frame); | 7477 host_impl_->DrawLayers(&frame); |
| 7471 EXPECT_TRUE(layer1->quads_appended()); | 7478 EXPECT_TRUE(layer1->quads_appended()); |
| 7472 EXPECT_TRUE(layer2->quads_appended()); | 7479 EXPECT_TRUE(layer2->quads_appended()); |
| 7473 host_impl_->DidDrawAllLayers(frame); | 7480 host_impl_->DidDrawAllLayers(frame); |
| 7474 | 7481 |
| 7475 // And when the layer says its not opaque but is painted opaque, it is not | 7482 // And when the layer says its not opaque but is painted opaque, it is not |
| 7476 // blended. | 7483 // blended. |
| 7477 layer1->SetContentsOpaque(true); | 7484 layer1->SetContentsOpaque(true); |
| 7478 layer1->test_properties()->opacity = 1.f; | 7485 layer1->test_properties()->opacity = 1.f; |
| 7479 layer1->NoteLayerPropertyChanged(); | 7486 layer1->NoteLayerPropertyChanged(); |
| 7480 layer1->SetExpectation(false, false); | 7487 layer1->SetExpectation(false, false, root); |
| 7481 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7488 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7482 layer2->SetContentsOpaque(true); | 7489 layer2->SetContentsOpaque(true); |
| 7483 layer2->test_properties()->opacity = 1.f; | 7490 layer2->test_properties()->opacity = 1.f; |
| 7484 layer2->NoteLayerPropertyChanged(); | 7491 layer2->NoteLayerPropertyChanged(); |
| 7485 layer2->SetExpectation(false, false); | 7492 layer2->SetExpectation(false, false, root); |
| 7486 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7493 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7487 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7494 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7488 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7495 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7489 host_impl_->DrawLayers(&frame); | 7496 host_impl_->DrawLayers(&frame); |
| 7490 EXPECT_TRUE(layer1->quads_appended()); | 7497 EXPECT_TRUE(layer1->quads_appended()); |
| 7491 EXPECT_TRUE(layer2->quads_appended()); | 7498 EXPECT_TRUE(layer2->quads_appended()); |
| 7492 host_impl_->DidDrawAllLayers(frame); | 7499 host_impl_->DidDrawAllLayers(frame); |
| 7493 | 7500 |
| 7494 // Layer with partially opaque contents, drawn with blending. | 7501 // Layer with partially opaque contents, drawn with blending. |
| 7495 layer1->SetContentsOpaque(false); | 7502 layer1->SetContentsOpaque(false); |
| 7496 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 7503 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
| 7497 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 5)); | 7504 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 5)); |
| 7498 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 7505 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
| 7499 layer1->SetExpectation(true, false); | 7506 layer1->SetExpectation(true, false, root); |
| 7500 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7507 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7501 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7508 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7502 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7509 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7503 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7510 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7504 host_impl_->DrawLayers(&frame); | 7511 host_impl_->DrawLayers(&frame); |
| 7505 EXPECT_TRUE(layer1->quads_appended()); | 7512 EXPECT_TRUE(layer1->quads_appended()); |
| 7506 host_impl_->DidDrawAllLayers(frame); | 7513 host_impl_->DidDrawAllLayers(frame); |
| 7507 | 7514 |
| 7508 // Layer with partially opaque contents partially culled, drawn with blending. | 7515 // Layer with partially opaque contents partially culled, drawn with blending. |
| 7509 layer1->SetContentsOpaque(false); | 7516 layer1->SetContentsOpaque(false); |
| 7510 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 7517 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
| 7511 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 2)); | 7518 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 2)); |
| 7512 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 7519 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
| 7513 layer1->SetExpectation(true, false); | 7520 layer1->SetExpectation(true, false, root); |
| 7514 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7521 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7515 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7522 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7516 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7523 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7517 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7524 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7518 host_impl_->DrawLayers(&frame); | 7525 host_impl_->DrawLayers(&frame); |
| 7519 EXPECT_TRUE(layer1->quads_appended()); | 7526 EXPECT_TRUE(layer1->quads_appended()); |
| 7520 host_impl_->DidDrawAllLayers(frame); | 7527 host_impl_->DidDrawAllLayers(frame); |
| 7521 | 7528 |
| 7522 // Layer with partially opaque contents culled, drawn with blending. | 7529 // Layer with partially opaque contents culled, drawn with blending. |
| 7523 layer1->SetContentsOpaque(false); | 7530 layer1->SetContentsOpaque(false); |
| 7524 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 7531 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
| 7525 layer1->SetQuadVisibleRect(gfx::Rect(7, 5, 3, 5)); | 7532 layer1->SetQuadVisibleRect(gfx::Rect(7, 5, 3, 5)); |
| 7526 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 7533 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
| 7527 layer1->SetExpectation(true, false); | 7534 layer1->SetExpectation(true, false, root); |
| 7528 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7535 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7529 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7536 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7530 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7537 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7531 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7538 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7532 host_impl_->DrawLayers(&frame); | 7539 host_impl_->DrawLayers(&frame); |
| 7533 EXPECT_TRUE(layer1->quads_appended()); | 7540 EXPECT_TRUE(layer1->quads_appended()); |
| 7534 host_impl_->DidDrawAllLayers(frame); | 7541 host_impl_->DidDrawAllLayers(frame); |
| 7535 | 7542 |
| 7536 // Layer with partially opaque contents and translucent contents culled, drawn | 7543 // Layer with partially opaque contents and translucent contents culled, drawn |
| 7537 // without blending. | 7544 // without blending. |
| 7538 layer1->SetContentsOpaque(false); | 7545 layer1->SetContentsOpaque(false); |
| 7539 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 7546 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
| 7540 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 2, 5)); | 7547 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 2, 5)); |
| 7541 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 7548 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
| 7542 layer1->SetExpectation(false, false); | 7549 layer1->SetExpectation(false, false, root); |
| 7543 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 7550 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 7544 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7551 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7545 host_impl_->active_tree()->set_needs_update_draw_properties(); | 7552 host_impl_->active_tree()->set_needs_update_draw_properties(); |
| 7546 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7553 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 7547 host_impl_->DrawLayers(&frame); | 7554 host_impl_->DrawLayers(&frame); |
| 7548 EXPECT_TRUE(layer1->quads_appended()); | 7555 EXPECT_TRUE(layer1->quads_appended()); |
| 7549 host_impl_->DidDrawAllLayers(frame); | 7556 host_impl_->DidDrawAllLayers(frame); |
| 7550 } | 7557 } |
| 7551 | 7558 |
| 7552 static bool MayContainVideoBitSetOnFrameData(LayerTreeHostImpl* host_impl) { | 7559 static bool MayContainVideoBitSetOnFrameData(LayerTreeHostImpl* host_impl) { |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7622 ->force_render_surface = true; | 7629 ->force_render_surface = true; |
| 7623 host_impl_->active_tree() | 7630 host_impl_->active_tree() |
| 7624 ->root_layer_for_testing() | 7631 ->root_layer_for_testing() |
| 7625 ->test_properties() | 7632 ->test_properties() |
| 7626 ->AddChild(BlendStateCheckLayer::Create( | 7633 ->AddChild(BlendStateCheckLayer::Create( |
| 7627 host_impl_->active_tree(), 2, host_impl_->resource_provider())); | 7634 host_impl_->active_tree(), 2, host_impl_->resource_provider())); |
| 7628 child_ = static_cast<BlendStateCheckLayer*>(host_impl_->active_tree() | 7635 child_ = static_cast<BlendStateCheckLayer*>(host_impl_->active_tree() |
| 7629 ->root_layer_for_testing() | 7636 ->root_layer_for_testing() |
| 7630 ->test_properties() | 7637 ->test_properties() |
| 7631 ->children[0]); | 7638 ->children[0]); |
| 7632 child_->SetExpectation(false, false); | 7639 child_->SetExpectation(false, false, |
| 7640 host_impl_->active_tree()->root_layer_for_testing()); |
| 7633 child_->SetContentsOpaque(true); | 7641 child_->SetContentsOpaque(true); |
| 7634 } | 7642 } |
| 7635 | 7643 |
| 7636 // Expect no gutter rects. | 7644 // Expect no gutter rects. |
| 7637 void TestLayerCoversFullViewport() { | 7645 void TestLayerCoversFullViewport() { |
| 7638 gfx::Rect layer_rect(viewport_size_); | 7646 gfx::Rect layer_rect(viewport_size_); |
| 7639 child_->SetPosition(gfx::PointF(layer_rect.origin())); | 7647 child_->SetPosition(gfx::PointF(layer_rect.origin())); |
| 7640 child_->SetBounds(layer_rect.size()); | 7648 child_->SetBounds(layer_rect.size()); |
| 7641 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 7649 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
| 7642 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 7650 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
| (...skipping 4724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12367 else | 12375 else |
| 12368 EXPECT_FALSE(tile->HasRasterTask()); | 12376 EXPECT_FALSE(tile->HasRasterTask()); |
| 12369 } | 12377 } |
| 12370 Region expected_invalidation( | 12378 Region expected_invalidation( |
| 12371 raster_source->GetRectForImage(checkerable_image->uniqueID())); | 12379 raster_source->GetRectForImage(checkerable_image->uniqueID())); |
| 12372 EXPECT_EQ(expected_invalidation, *(root->GetPendingInvalidation())); | 12380 EXPECT_EQ(expected_invalidation, *(root->GetPendingInvalidation())); |
| 12373 } | 12381 } |
| 12374 | 12382 |
| 12375 } // namespace | 12383 } // namespace |
| 12376 } // namespace cc | 12384 } // namespace cc |
| OLD | NEW |