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 <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 2825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2836 layer1->SetExpectation(false, false); | 2836 layer1->SetExpectation(false, false); |
2837 layer1->set_update_rect(gfx::RectF(layer1->content_bounds())); | 2837 layer1->set_update_rect(gfx::RectF(layer1->content_bounds())); |
2838 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 2838 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
2839 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 2839 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
2840 EXPECT_TRUE(layer1->quads_appended()); | 2840 EXPECT_TRUE(layer1->quads_appended()); |
2841 host_impl_->DidDrawAllLayers(frame); | 2841 host_impl_->DidDrawAllLayers(frame); |
2842 } | 2842 } |
2843 | 2843 |
2844 class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { | 2844 class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
2845 public: | 2845 public: |
| 2846 LayerTreeHostImplViewportCoveredTest() : |
| 2847 gutter_quad_material_(DrawQuad::SOLID_COLOR), |
| 2848 child_(NULL), |
| 2849 did_activate_pending_tree_(false) {} |
| 2850 |
2846 void CreateLayerTreeHostImpl(bool always_draw) { | 2851 void CreateLayerTreeHostImpl(bool always_draw) { |
2847 LayerTreeSettings settings; | 2852 LayerTreeSettings settings; |
2848 settings.minimum_occlusion_tracking_size = gfx::Size(); | 2853 settings.minimum_occlusion_tracking_size = gfx::Size(); |
2849 settings.impl_side_painting = true; | 2854 settings.impl_side_painting = true; |
2850 host_impl_ = LayerTreeHostImpl::Create( | 2855 host_impl_ = LayerTreeHostImpl::Create( |
2851 settings, this, &proxy_, &stats_instrumentation_); | 2856 settings, this, &proxy_, &stats_instrumentation_); |
2852 | 2857 |
2853 scoped_ptr<FakeOutputSurface> output_surface; | 2858 scoped_ptr<FakeOutputSurface> output_surface; |
2854 if (always_draw) | 2859 if (always_draw) |
2855 output_surface = FakeOutputSurface::CreateAlwaysDrawAndSwap3d().Pass(); | 2860 output_surface = FakeOutputSurface::CreateAlwaysDrawAndSwap3d().Pass(); |
(...skipping 24 matching lines...) Expand all Loading... |
2880 child_->SetPosition(layer_rect.origin()); | 2885 child_->SetPosition(layer_rect.origin()); |
2881 child_->SetBounds(layer_rect.size()); | 2886 child_->SetBounds(layer_rect.size()); |
2882 child_->SetContentBounds(layer_rect.size()); | 2887 child_->SetContentBounds(layer_rect.size()); |
2883 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 2888 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
2884 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 2889 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
2885 | 2890 |
2886 LayerTreeHostImpl::FrameData frame; | 2891 LayerTreeHostImpl::FrameData frame; |
2887 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 2892 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
2888 ASSERT_EQ(1u, frame.render_passes.size()); | 2893 ASSERT_EQ(1u, frame.render_passes.size()); |
2889 | 2894 |
2890 size_t num_gutter_quads = 0; | 2895 EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
2891 for (size_t i = 0; i < frame.render_passes[0]->quad_list.size(); ++i) | |
2892 num_gutter_quads += (frame.render_passes[0]->quad_list[i]->material == | |
2893 DrawQuad::SOLID_COLOR) ? 1 : 0; | |
2894 EXPECT_EQ(0u, num_gutter_quads); | |
2895 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 2896 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
| 2897 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
2896 | 2898 |
2897 LayerTestCommon::VerifyQuadsExactlyCoverRect( | 2899 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); |
2898 frame.render_passes[0]->quad_list, gfx::Rect(viewport_size_)); | |
2899 host_impl_->DidDrawAllLayers(frame); | 2900 host_impl_->DidDrawAllLayers(frame); |
2900 } | 2901 } |
2901 | 2902 |
2902 // Expect fullscreen gutter rect. | 2903 // Expect fullscreen gutter rect. |
2903 void TestEmptyLayer() { | 2904 void TestEmptyLayer() { |
2904 gfx::Rect layer_rect(0, 0, 0, 0); | 2905 gfx::Rect layer_rect(0, 0, 0, 0); |
2905 child_->SetPosition(layer_rect.origin()); | 2906 child_->SetPosition(layer_rect.origin()); |
2906 child_->SetBounds(layer_rect.size()); | 2907 child_->SetBounds(layer_rect.size()); |
2907 child_->SetContentBounds(layer_rect.size()); | 2908 child_->SetContentBounds(layer_rect.size()); |
2908 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 2909 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
2909 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 2910 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
2910 | 2911 |
2911 LayerTreeHostImpl::FrameData frame; | 2912 LayerTreeHostImpl::FrameData frame; |
2912 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 2913 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
2913 ASSERT_EQ(1u, frame.render_passes.size()); | 2914 ASSERT_EQ(1u, frame.render_passes.size()); |
2914 | 2915 |
2915 size_t num_gutter_quads = 0; | 2916 EXPECT_EQ(1u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
2916 for (size_t i = 0; i < frame.render_passes[0]->quad_list.size(); ++i) | |
2917 num_gutter_quads += (frame.render_passes[0]->quad_list[i]->material == | |
2918 DrawQuad::SOLID_COLOR) ? 1 : 0; | |
2919 EXPECT_EQ(1u, num_gutter_quads); | |
2920 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 2917 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
| 2918 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
2921 | 2919 |
2922 LayerTestCommon::VerifyQuadsExactlyCoverRect( | 2920 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); |
2923 frame.render_passes[0]->quad_list, gfx::Rect(viewport_size_)); | |
2924 host_impl_->DidDrawAllLayers(frame); | 2921 host_impl_->DidDrawAllLayers(frame); |
2925 } | 2922 } |
2926 | 2923 |
2927 // Expect four surrounding gutter rects. | 2924 // Expect four surrounding gutter rects. |
2928 void TestLayerInMiddleOfViewport() { | 2925 void TestLayerInMiddleOfViewport() { |
2929 gfx::Rect layer_rect(500, 500, 200, 200); | 2926 gfx::Rect layer_rect(500, 500, 200, 200); |
2930 child_->SetPosition(layer_rect.origin()); | 2927 child_->SetPosition(layer_rect.origin()); |
2931 child_->SetBounds(layer_rect.size()); | 2928 child_->SetBounds(layer_rect.size()); |
2932 child_->SetContentBounds(layer_rect.size()); | 2929 child_->SetContentBounds(layer_rect.size()); |
2933 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 2930 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
2934 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 2931 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
2935 | 2932 |
2936 LayerTreeHostImpl::FrameData frame; | 2933 LayerTreeHostImpl::FrameData frame; |
2937 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 2934 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
2938 ASSERT_EQ(1u, frame.render_passes.size()); | 2935 ASSERT_EQ(1u, frame.render_passes.size()); |
2939 | 2936 |
2940 size_t num_gutter_quads = 0; | 2937 EXPECT_EQ(4u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
2941 for (size_t i = 0; i < frame.render_passes[0]->quad_list.size(); ++i) | |
2942 num_gutter_quads += (frame.render_passes[0]->quad_list[i]->material == | |
2943 DrawQuad::SOLID_COLOR) ? 1 : 0; | |
2944 EXPECT_EQ(4u, num_gutter_quads); | |
2945 EXPECT_EQ(5u, frame.render_passes[0]->quad_list.size()); | 2938 EXPECT_EQ(5u, frame.render_passes[0]->quad_list.size()); |
| 2939 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
2946 | 2940 |
2947 LayerTestCommon::VerifyQuadsExactlyCoverRect( | 2941 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); |
2948 frame.render_passes[0]->quad_list, gfx::Rect(viewport_size_)); | |
2949 host_impl_->DidDrawAllLayers(frame); | 2942 host_impl_->DidDrawAllLayers(frame); |
2950 } | 2943 } |
2951 | 2944 |
2952 // Expect no gutter rects. | 2945 // Expect no gutter rects. |
2953 void TestLayerIsLargerThanViewport() { | 2946 void TestLayerIsLargerThanViewport() { |
2954 gfx::Rect layer_rect(viewport_size_.width() + 10, | 2947 gfx::Rect layer_rect(viewport_size_.width() + 10, |
2955 viewport_size_.height() + 10); | 2948 viewport_size_.height() + 10); |
2956 child_->SetPosition(layer_rect.origin()); | 2949 child_->SetPosition(layer_rect.origin()); |
2957 child_->SetBounds(layer_rect.size()); | 2950 child_->SetBounds(layer_rect.size()); |
2958 child_->SetContentBounds(layer_rect.size()); | 2951 child_->SetContentBounds(layer_rect.size()); |
2959 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 2952 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
2960 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 2953 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
2961 | 2954 |
2962 LayerTreeHostImpl::FrameData frame; | 2955 LayerTreeHostImpl::FrameData frame; |
2963 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 2956 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
2964 ASSERT_EQ(1u, frame.render_passes.size()); | 2957 ASSERT_EQ(1u, frame.render_passes.size()); |
2965 | 2958 |
2966 size_t num_gutter_quads = 0; | 2959 EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
2967 for (size_t i = 0; i < frame.render_passes[0]->quad_list.size(); ++i) | |
2968 num_gutter_quads += (frame.render_passes[0]->quad_list[i]->material == | |
2969 DrawQuad::SOLID_COLOR) ? 1 : 0; | |
2970 EXPECT_EQ(0u, num_gutter_quads); | |
2971 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 2960 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
| 2961 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
2972 | 2962 |
2973 host_impl_->DidDrawAllLayers(frame); | 2963 host_impl_->DidDrawAllLayers(frame); |
2974 } | 2964 } |
2975 | 2965 |
2976 virtual void DidActivatePendingTree() OVERRIDE { | 2966 virtual void DidActivatePendingTree() OVERRIDE { |
2977 did_activate_pending_tree_ = true; | 2967 did_activate_pending_tree_ = true; |
2978 } | 2968 } |
2979 | 2969 |
| 2970 void set_gutter_quad_material(DrawQuad::Material material) { |
| 2971 gutter_quad_material_ = material; |
| 2972 } |
| 2973 void set_gutter_texture_size(gfx::Size gutter_texture_size) { |
| 2974 gutter_texture_size_ = gutter_texture_size; |
| 2975 } |
| 2976 |
2980 protected: | 2977 protected: |
| 2978 size_t CountGutterQuads(const QuadList& quad_list) { |
| 2979 size_t num_gutter_quads = 0; |
| 2980 for (size_t i = 0; i < quad_list.size(); ++i) { |
| 2981 num_gutter_quads += (quad_list[i]->material == |
| 2982 gutter_quad_material_) ? 1 : 0; |
| 2983 } |
| 2984 return num_gutter_quads; |
| 2985 } |
| 2986 |
| 2987 void VerifyQuadsExactlyCoverViewport(const QuadList& quad_list) { |
| 2988 LayerTestCommon::VerifyQuadsExactlyCoverRect( |
| 2989 quad_list, gfx::Rect(DipSizeToPixelSize(viewport_size_))); |
| 2990 } |
| 2991 |
| 2992 // Make sure that the texture coordinates match their expectations. |
| 2993 void ValidateTextureDrawQuads(const QuadList& quad_list) { |
| 2994 for (size_t i = 0; i < quad_list.size(); ++i) { |
| 2995 if (quad_list[i]->material != DrawQuad::TEXTURE_CONTENT) |
| 2996 continue; |
| 2997 const TextureDrawQuad* quad = TextureDrawQuad::MaterialCast(quad_list[i]); |
| 2998 gfx::SizeF gutter_texture_size_pixels = gfx::ScaleSize( |
| 2999 gutter_texture_size_, host_impl_->device_scale_factor()); |
| 3000 EXPECT_EQ(quad->uv_top_left.x(), |
| 3001 quad->rect.x() / gutter_texture_size_pixels.width()); |
| 3002 EXPECT_EQ(quad->uv_top_left.y(), |
| 3003 quad->rect.y() / gutter_texture_size_pixels.height()); |
| 3004 EXPECT_EQ(quad->uv_bottom_right.x(), |
| 3005 quad->rect.right() / gutter_texture_size_pixels.width()); |
| 3006 EXPECT_EQ(quad->uv_bottom_right.y(), |
| 3007 quad->rect.bottom() / gutter_texture_size_pixels.height()); |
| 3008 } |
| 3009 } |
| 3010 |
| 3011 gfx::Size DipSizeToPixelSize(gfx::Size size) { |
| 3012 return gfx::ToRoundedSize( |
| 3013 gfx::ScaleSize(size, host_impl_->device_scale_factor())); |
| 3014 } |
| 3015 |
| 3016 DrawQuad::Material gutter_quad_material_; |
| 3017 gfx::Size gutter_texture_size_; |
2981 gfx::Size viewport_size_; | 3018 gfx::Size viewport_size_; |
2982 BlendStateCheckLayer* child_; | 3019 BlendStateCheckLayer* child_; |
2983 bool did_activate_pending_tree_; | 3020 bool did_activate_pending_tree_; |
2984 }; | 3021 }; |
2985 | 3022 |
2986 TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCovered) { | 3023 TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCovered) { |
2987 bool always_draw = false; | 3024 bool always_draw = false; |
2988 CreateLayerTreeHostImpl(always_draw); | 3025 CreateLayerTreeHostImpl(always_draw); |
2989 | 3026 |
2990 host_impl_->SetViewportSize(viewport_size_); | 3027 host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
2991 SetupActiveTreeLayers(); | 3028 SetupActiveTreeLayers(); |
2992 TestLayerCoversFullViewport(); | 3029 TestLayerCoversFullViewport(); |
2993 TestEmptyLayer(); | 3030 TestEmptyLayer(); |
2994 TestLayerInMiddleOfViewport(); | 3031 TestLayerInMiddleOfViewport(); |
| 3032 TestLayerIsLargerThanViewport(); |
| 3033 } |
| 3034 |
| 3035 TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCoveredScaled) { |
| 3036 bool always_draw = false; |
| 3037 CreateLayerTreeHostImpl(always_draw); |
| 3038 |
| 3039 host_impl_->SetDeviceScaleFactor(2.f); |
| 3040 host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
| 3041 SetupActiveTreeLayers(); |
| 3042 TestLayerCoversFullViewport(); |
| 3043 TestEmptyLayer(); |
| 3044 TestLayerInMiddleOfViewport(); |
| 3045 TestLayerIsLargerThanViewport(); |
| 3046 } |
| 3047 |
| 3048 TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCoveredOverhangBitmap) { |
| 3049 bool always_draw = false; |
| 3050 CreateLayerTreeHostImpl(always_draw); |
| 3051 |
| 3052 host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
| 3053 SetupActiveTreeLayers(); |
| 3054 |
| 3055 // Specify an overhang bitmap to use. |
| 3056 scoped_refptr<UIResourceBitmap> ui_resource_bitmap(UIResourceBitmap::Create( |
| 3057 new uint8_t[4], UIResourceBitmap::RGBA8, gfx::Size(1, 1))); |
| 3058 UIResourceId ui_resource_id = 12345; |
| 3059 host_impl_->CreateUIResource(ui_resource_id, ui_resource_bitmap); |
| 3060 host_impl_->SetOverhangUIResource(ui_resource_id, gfx::Size(32, 32)); |
| 3061 set_gutter_quad_material(DrawQuad::TEXTURE_CONTENT); |
| 3062 set_gutter_texture_size(gfx::Size(32, 32)); |
| 3063 |
| 3064 TestLayerCoversFullViewport(); |
| 3065 TestEmptyLayer(); |
| 3066 TestLayerInMiddleOfViewport(); |
| 3067 TestLayerIsLargerThanViewport(); |
| 3068 |
| 3069 // Change the resource size. |
| 3070 host_impl_->SetOverhangUIResource(ui_resource_id, gfx::Size(128, 16)); |
| 3071 set_gutter_texture_size(gfx::Size(128, 16)); |
| 3072 |
| 3073 TestLayerCoversFullViewport(); |
| 3074 TestEmptyLayer(); |
| 3075 TestLayerInMiddleOfViewport(); |
| 3076 TestLayerIsLargerThanViewport(); |
| 3077 |
| 3078 // Change the device scale factor |
| 3079 host_impl_->SetDeviceScaleFactor(2.f); |
| 3080 host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
| 3081 |
| 3082 TestLayerCoversFullViewport(); |
| 3083 TestEmptyLayer(); |
| 3084 TestLayerInMiddleOfViewport(); |
2995 TestLayerIsLargerThanViewport(); | 3085 TestLayerIsLargerThanViewport(); |
2996 } | 3086 } |
2997 | 3087 |
2998 TEST_F(LayerTreeHostImplViewportCoveredTest, ActiveTreeGrowViewportInvalid) { | 3088 TEST_F(LayerTreeHostImplViewportCoveredTest, ActiveTreeGrowViewportInvalid) { |
2999 bool always_draw = true; | 3089 bool always_draw = true; |
3000 CreateLayerTreeHostImpl(always_draw); | 3090 CreateLayerTreeHostImpl(always_draw); |
3001 | 3091 |
3002 // Pending tree to force active_tree size invalid. Not used otherwise. | 3092 // Pending tree to force active_tree size invalid. Not used otherwise. |
3003 host_impl_->CreatePendingTree(); | 3093 host_impl_->CreatePendingTree(); |
3004 host_impl_->SetViewportSize(viewport_size_); | 3094 host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
3005 EXPECT_TRUE(host_impl_->active_tree()->ViewportSizeInvalid()); | 3095 EXPECT_TRUE(host_impl_->active_tree()->ViewportSizeInvalid()); |
3006 | 3096 |
3007 SetupActiveTreeLayers(); | 3097 SetupActiveTreeLayers(); |
3008 TestEmptyLayer(); | 3098 TestEmptyLayer(); |
3009 TestLayerInMiddleOfViewport(); | 3099 TestLayerInMiddleOfViewport(); |
3010 TestLayerIsLargerThanViewport(); | 3100 TestLayerIsLargerThanViewport(); |
3011 } | 3101 } |
3012 | 3102 |
3013 TEST_F(LayerTreeHostImplViewportCoveredTest, ActiveTreeShrinkViewportInvalid) { | 3103 TEST_F(LayerTreeHostImplViewportCoveredTest, ActiveTreeShrinkViewportInvalid) { |
3014 bool always_draw = true; | 3104 bool always_draw = true; |
3015 CreateLayerTreeHostImpl(always_draw); | 3105 CreateLayerTreeHostImpl(always_draw); |
3016 | 3106 |
3017 // Set larger viewport and activate it to active tree. | 3107 // Set larger viewport and activate it to active tree. |
3018 host_impl_->CreatePendingTree(); | 3108 host_impl_->CreatePendingTree(); |
3019 gfx::Size larger_viewport(viewport_size_.width() + 100, | 3109 gfx::Size larger_viewport(viewport_size_.width() + 100, |
3020 viewport_size_.height() + 100); | 3110 viewport_size_.height() + 100); |
3021 host_impl_->SetViewportSize(larger_viewport); | 3111 host_impl_->SetViewportSize(DipSizeToPixelSize(larger_viewport)); |
3022 EXPECT_TRUE(host_impl_->active_tree()->ViewportSizeInvalid()); | 3112 EXPECT_TRUE(host_impl_->active_tree()->ViewportSizeInvalid()); |
3023 did_activate_pending_tree_ = false; | |
3024 host_impl_->ActivatePendingTree(); | 3113 host_impl_->ActivatePendingTree(); |
3025 EXPECT_TRUE(did_activate_pending_tree_); | 3114 EXPECT_TRUE(did_activate_pending_tree_); |
3026 EXPECT_FALSE(host_impl_->active_tree()->ViewportSizeInvalid()); | 3115 EXPECT_FALSE(host_impl_->active_tree()->ViewportSizeInvalid()); |
3027 | 3116 |
3028 // Shrink pending tree viewport without activating. | 3117 // Shrink pending tree viewport without activating. |
3029 host_impl_->CreatePendingTree(); | 3118 host_impl_->CreatePendingTree(); |
3030 host_impl_->SetViewportSize(viewport_size_); | 3119 host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_)); |
3031 EXPECT_TRUE(host_impl_->active_tree()->ViewportSizeInvalid()); | 3120 EXPECT_TRUE(host_impl_->active_tree()->ViewportSizeInvalid()); |
3032 | 3121 |
3033 SetupActiveTreeLayers(); | 3122 SetupActiveTreeLayers(); |
3034 TestEmptyLayer(); | 3123 TestEmptyLayer(); |
3035 TestLayerInMiddleOfViewport(); | 3124 TestLayerInMiddleOfViewport(); |
3036 TestLayerIsLargerThanViewport(); | 3125 TestLayerIsLargerThanViewport(); |
3037 } | 3126 } |
3038 | 3127 |
3039 class ReshapeTrackerContext: public TestWebGraphicsContext3D { | 3128 class ReshapeTrackerContext: public TestWebGraphicsContext3D { |
3040 public: | 3129 public: |
(...skipping 3335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6376 EXPECT_EQ(0u, host_impl_->ResourceIdForUIResource(ui_resource_id)); | 6465 EXPECT_EQ(0u, host_impl_->ResourceIdForUIResource(ui_resource_id)); |
6377 EXPECT_EQ(0u, context3d->NumTextures()); | 6466 EXPECT_EQ(0u, context3d->NumTextures()); |
6378 | 6467 |
6379 // Should not change state for multiple deletion on one UIResourceId | 6468 // Should not change state for multiple deletion on one UIResourceId |
6380 host_impl_->DeleteUIResource(ui_resource_id); | 6469 host_impl_->DeleteUIResource(ui_resource_id); |
6381 EXPECT_EQ(0u, context3d->NumTextures()); | 6470 EXPECT_EQ(0u, context3d->NumTextures()); |
6382 } | 6471 } |
6383 | 6472 |
6384 } // namespace | 6473 } // namespace |
6385 } // namespace cc | 6474 } // namespace cc |
OLD | NEW |