| 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "CCLayerTreeHostImpl.h" | 7 #include "CCLayerTreeHostImpl.h" |
| 8 | 8 |
| 9 #include "CCDelegatedRendererLayerImpl.h" | 9 #include "CCDelegatedRendererLayerImpl.h" |
| 10 #include "CCHeadsUpDisplayLayerImpl.h" | 10 #include "CCHeadsUpDisplayLayerImpl.h" |
| 11 #include "CCIOSurfaceLayerImpl.h" | 11 #include "CCIOSurfaceLayerImpl.h" |
| 12 #include "CCLayerImpl.h" | 12 #include "CCLayerImpl.h" |
| 13 #include "CCLayerTilingData.h" | 13 #include "CCLayerTilingData.h" |
| 14 #include "CCQuadSink.h" | 14 #include "CCQuadSink.h" |
| 15 #include "CCRenderPassDrawQuad.h" | 15 #include "CCRenderPassDrawQuad.h" |
| 16 #include "CCRendererGL.h" | 16 #include "CCRendererGL.h" |
| 17 #include "CCScrollbarGeometryFixedThumb.h" | 17 #include "CCScrollbarGeometryFixedThumb.h" |
| 18 #include "CCScrollbarLayerImpl.h" | 18 #include "CCScrollbarLayerImpl.h" |
| 19 #include "CCSettings.h" | 19 #include "CCSettings.h" |
| 20 #include "CCSingleThreadProxy.h" | 20 #include "CCSingleThreadProxy.h" |
| 21 #include "CCSolidColorDrawQuad.h" | 21 #include "CCSolidColorDrawQuad.h" |
| 22 #include "CCTextureDrawQuad.h" | 22 #include "CCTextureDrawQuad.h" |
| 23 #include "CCTextureLayerImpl.h" | 23 #include "CCTextureLayerImpl.h" |
| 24 #include "CCTileDrawQuad.h" | 24 #include "CCTileDrawQuad.h" |
| 25 #include "CCTiledLayerImpl.h" | 25 #include "CCTiledLayerImpl.h" |
| 26 #include "CCVideoLayerImpl.h" | 26 #include "CCVideoLayerImpl.h" |
| 27 #include "base/command_line.h" |
| 27 #include "base/hash_tables.h" | 28 #include "base/hash_tables.h" |
| 28 #include "cc/test/animation_test_common.h" | 29 #include "cc/test/animation_test_common.h" |
| 29 #include "cc/test/fake_web_compositor_output_surface.h" | 30 #include "cc/test/fake_web_compositor_output_surface.h" |
| 30 #include "cc/test/fake_web_graphics_context_3d.h" | 31 #include "cc/test/fake_web_graphics_context_3d.h" |
| 31 #include "cc/test/fake_web_scrollbar_theme_geometry.h" | 32 #include "cc/test/fake_web_scrollbar_theme_geometry.h" |
| 32 #include "cc/test/geometry_test_utils.h" | 33 #include "cc/test/geometry_test_utils.h" |
| 33 #include "cc/test/layer_test_common.h" | 34 #include "cc/test/layer_test_common.h" |
| 34 #include "cc/test/render_pass_test_common.h" | 35 #include "cc/test/render_pass_test_common.h" |
| 35 #include "cc/test/test_common.h" | 36 #include "cc/test/test_common.h" |
| 36 #include "testing/gmock/include/gmock/gmock.h" | 37 #include "testing/gmock/include/gmock/gmock.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 59 CCLayerTreeHostImplTest() | 60 CCLayerTreeHostImplTest() |
| 60 : m_onCanDrawStateChangedCalled(false) | 61 : m_onCanDrawStateChangedCalled(false) |
| 61 , m_didRequestCommit(false) | 62 , m_didRequestCommit(false) |
| 62 , m_didRequestRedraw(false) | 63 , m_didRequestRedraw(false) |
| 63 , m_reduceMemoryResult(true) | 64 , m_reduceMemoryResult(true) |
| 64 { | 65 { |
| 65 } | 66 } |
| 66 | 67 |
| 67 virtual void SetUp() | 68 virtual void SetUp() |
| 68 { | 69 { |
| 69 CCSettings::setPageScalePinchZoomEnabled(GetParam()); | 70 CCSettings::setPageScalePinchZoomEnabledForTest(GetParam()); |
| 70 CCLayerTreeSettings settings; | 71 CCLayerTreeSettings settings; |
| 71 settings.minimumOcclusionTrackingSize = IntSize(); | 72 settings.minimumOcclusionTrackingSize = IntSize(); |
| 72 | 73 |
| 73 m_hostImpl = CCLayerTreeHostImpl::create(settings, this); | 74 m_hostImpl = CCLayerTreeHostImpl::create(settings, this); |
| 74 m_hostImpl->initializeRenderer(createContext()); | 75 m_hostImpl->initializeRenderer(createContext()); |
| 75 m_hostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10)); | 76 m_hostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10)); |
| 76 } | 77 } |
| 77 | 78 |
| 78 virtual void TearDown() | 79 virtual void TearDown() |
| 79 { | 80 { |
| 80 CCSettings::reset(); | |
| 81 } | 81 } |
| 82 | 82 |
| 83 virtual void didLoseContextOnImplThread() OVERRIDE { } | 83 virtual void didLoseContextOnImplThread() OVERRIDE { } |
| 84 virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE { } | 84 virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE { } |
| 85 virtual void onVSyncParametersChanged(double, double) OVERRIDE { } | 85 virtual void onVSyncParametersChanged(double, double) OVERRIDE { } |
| 86 virtual void onCanDrawStateChanged(bool canDraw) OVERRIDE { m_onCanDrawState
ChangedCalled = true; } | 86 virtual void onCanDrawStateChanged(bool canDraw) OVERRIDE { m_onCanDrawState
ChangedCalled = true; } |
| 87 virtual void setNeedsRedrawOnImplThread() OVERRIDE { m_didRequestRedraw = tr
ue; } | 87 virtual void setNeedsRedrawOnImplThread() OVERRIDE { m_didRequestRedraw = tr
ue; } |
| 88 virtual void setNeedsCommitOnImplThread() OVERRIDE { m_didRequestCommit = tr
ue; } | 88 virtual void setNeedsCommitOnImplThread() OVERRIDE { m_didRequestCommit = tr
ue; } |
| 89 virtual void postAnimationEventsToMainThreadOnImplThread(scoped_ptr<CCAnimat
ionEventsVector>, double wallClockTime) OVERRIDE { } | 89 virtual void postAnimationEventsToMainThreadOnImplThread(scoped_ptr<CCAnimat
ionEventsVector>, double wallClockTime) OVERRIDE { } |
| 90 virtual bool reduceContentsTextureMemoryOnImplThread(size_t limitBytes) OVER
RIDE { return m_reduceMemoryResult; } | 90 virtual bool reduceContentsTextureMemoryOnImplThread(size_t limitBytes) OVER
RIDE { return m_reduceMemoryResult; } |
| 91 | 91 |
| 92 void setReduceMemoryResult(bool reduceMemoryResult) { m_reduceMemoryResult =
reduceMemoryResult; } | 92 void setReduceMemoryResult(bool reduceMemoryResult) { m_reduceMemoryResult =
reduceMemoryResult; } |
| 93 | 93 |
| 94 scoped_ptr<CCLayerTreeHostImpl> createLayerTreeHost(bool partialSwap, scoped
_ptr<CCGraphicsContext> graphicsContext, scoped_ptr<CCLayerImpl> root) | 94 scoped_ptr<CCLayerTreeHostImpl> createLayerTreeHost(bool partialSwap, scoped
_ptr<CCGraphicsContext> graphicsContext, scoped_ptr<CCLayerImpl> root) |
| 95 { | 95 { |
| 96 CCSettings::setPartialSwapEnabled(partialSwap); | 96 CCSettings::setPartialSwapEnabledForTest(partialSwap); |
| 97 | 97 |
| 98 CCLayerTreeSettings settings; | 98 CCLayerTreeSettings settings; |
| 99 settings.minimumOcclusionTrackingSize = IntSize(); | 99 settings.minimumOcclusionTrackingSize = IntSize(); |
| 100 | 100 |
| 101 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create
(settings, this); | 101 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create
(settings, this); |
| 102 | 102 |
| 103 myHostImpl->initializeRenderer(graphicsContext.Pass()); | 103 myHostImpl->initializeRenderer(graphicsContext.Pass()); |
| 104 myHostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10)); | 104 myHostImpl->setViewportSize(IntSize(10, 10), IntSize(10, 10)); |
| 105 | 105 |
| 106 root->setAnchorPoint(FloatPoint(0, 0)); | 106 root->setAnchorPoint(FloatPoint(0, 0)); |
| (...skipping 1826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1933 // Make sure damage tracking propagates all the way to the graphics context, | 1933 // Make sure damage tracking propagates all the way to the graphics context, |
| 1934 // where it should request to swap only the subBuffer that is damaged. | 1934 // where it should request to swap only the subBuffer that is damaged. |
| 1935 TEST_P(CCLayerTreeHostImplTest, partialSwapReceivesDamageRect) | 1935 TEST_P(CCLayerTreeHostImplTest, partialSwapReceivesDamageRect) |
| 1936 { | 1936 { |
| 1937 scoped_ptr<CCGraphicsContext> ccContext = FakeWebCompositorOutputSurface::cr
eate(adoptPtr(new PartialSwapTrackerContext)).PassAs<CCGraphicsContext>(); | 1937 scoped_ptr<CCGraphicsContext> ccContext = FakeWebCompositorOutputSurface::cr
eate(adoptPtr(new PartialSwapTrackerContext)).PassAs<CCGraphicsContext>(); |
| 1938 PartialSwapTrackerContext* partialSwapTracker = static_cast<PartialSwapTrack
erContext*>(ccContext->context3D()); | 1938 PartialSwapTrackerContext* partialSwapTracker = static_cast<PartialSwapTrack
erContext*>(ccContext->context3D()); |
| 1939 | 1939 |
| 1940 // This test creates its own CCLayerTreeHostImpl, so | 1940 // This test creates its own CCLayerTreeHostImpl, so |
| 1941 // that we can force partial swap enabled. | 1941 // that we can force partial swap enabled. |
| 1942 CCLayerTreeSettings settings; | 1942 CCLayerTreeSettings settings; |
| 1943 CCSettings::setPartialSwapEnabled(true); | 1943 CCSettings::setPartialSwapEnabledForTest(true); |
| 1944 scoped_ptr<CCLayerTreeHostImpl> layerTreeHostImpl = CCLayerTreeHostImpl::cre
ate(settings, this); | 1944 scoped_ptr<CCLayerTreeHostImpl> layerTreeHostImpl = CCLayerTreeHostImpl::cre
ate(settings, this); |
| 1945 layerTreeHostImpl->initializeRenderer(ccContext.Pass()); | 1945 layerTreeHostImpl->initializeRenderer(ccContext.Pass()); |
| 1946 layerTreeHostImpl->setViewportSize(IntSize(500, 500), IntSize(500, 500)); | 1946 layerTreeHostImpl->setViewportSize(IntSize(500, 500), IntSize(500, 500)); |
| 1947 | 1947 |
| 1948 scoped_ptr<CCLayerImpl> root = FakeDrawableCCLayerImpl::create(1); | 1948 scoped_ptr<CCLayerImpl> root = FakeDrawableCCLayerImpl::create(1); |
| 1949 scoped_ptr<CCLayerImpl> child = FakeDrawableCCLayerImpl::create(2); | 1949 scoped_ptr<CCLayerImpl> child = FakeDrawableCCLayerImpl::create(2); |
| 1950 child->setPosition(FloatPoint(12, 13)); | 1950 child->setPosition(FloatPoint(12, 13)); |
| 1951 child->setAnchorPoint(FloatPoint(0, 0)); | 1951 child->setAnchorPoint(FloatPoint(0, 0)); |
| 1952 child->setBounds(IntSize(14, 15)); | 1952 child->setBounds(IntSize(14, 15)); |
| 1953 child->setContentBounds(IntSize(14, 15)); | 1953 child->setContentBounds(IntSize(14, 15)); |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2216 // Unlimited texture size. | 2216 // Unlimited texture size. |
| 2217 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value) | 2217 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value) |
| 2218 { | 2218 { |
| 2219 if (pname == cc::GraphicsContext3D::MAX_TEXTURE_SIZE) | 2219 if (pname == cc::GraphicsContext3D::MAX_TEXTURE_SIZE) |
| 2220 *value = 8192; | 2220 *value = 8192; |
| 2221 } | 2221 } |
| 2222 }; | 2222 }; |
| 2223 | 2223 |
| 2224 static scoped_ptr<CCLayerTreeHostImpl> setupLayersForOpacity(bool partialSwap, C
CLayerTreeHostImplClient* client) | 2224 static scoped_ptr<CCLayerTreeHostImpl> setupLayersForOpacity(bool partialSwap, C
CLayerTreeHostImplClient* client) |
| 2225 { | 2225 { |
| 2226 CCSettings::setPartialSwapEnabled(partialSwap); | 2226 CCSettings::setPartialSwapEnabledForTest(partialSwap); |
| 2227 | 2227 |
| 2228 scoped_ptr<CCGraphicsContext> context = FakeWebCompositorOutputSurface::crea
te(adoptPtr(new PartialSwapContext)).PassAs<CCGraphicsContext>(); | 2228 scoped_ptr<CCGraphicsContext> context = FakeWebCompositorOutputSurface::crea
te(adoptPtr(new PartialSwapContext)).PassAs<CCGraphicsContext>(); |
| 2229 | 2229 |
| 2230 CCLayerTreeSettings settings; | 2230 CCLayerTreeSettings settings; |
| 2231 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, client); | 2231 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, client); |
| 2232 myHostImpl->initializeRenderer(context.Pass()); | 2232 myHostImpl->initializeRenderer(context.Pass()); |
| 2233 myHostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); | 2233 myHostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); |
| 2234 | 2234 |
| 2235 /* | 2235 /* |
| 2236 Layers are created as follows: | 2236 Layers are created as follows: |
| (...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2981 addDrawingLayerTo(surfaceLayerPtr, 4, IntRect(5, 5, rootSize.width() - 25, r
ootSize.height() - 25), &childPtr); | 2981 addDrawingLayerTo(surfaceLayerPtr, 4, IntRect(5, 5, rootSize.width() - 25, r
ootSize.height() - 25), &childPtr); |
| 2982 } | 2982 } |
| 2983 | 2983 |
| 2984 class CCRendererGLWithReleaseTextures : public CCRendererGL { | 2984 class CCRendererGLWithReleaseTextures : public CCRendererGL { |
| 2985 public: | 2985 public: |
| 2986 using CCRendererGL::releaseRenderPassTextures; | 2986 using CCRendererGL::releaseRenderPassTextures; |
| 2987 }; | 2987 }; |
| 2988 | 2988 |
| 2989 TEST_P(CCLayerTreeHostImplTest, textureCachingWithClipping) | 2989 TEST_P(CCLayerTreeHostImplTest, textureCachingWithClipping) |
| 2990 { | 2990 { |
| 2991 CCSettings::setPartialSwapEnabled(true); | 2991 CCSettings::setPartialSwapEnabledForTest(true); |
| 2992 | 2992 |
| 2993 CCLayerTreeSettings settings; | 2993 CCLayerTreeSettings settings; |
| 2994 settings.minimumOcclusionTrackingSize = IntSize(); | 2994 settings.minimumOcclusionTrackingSize = IntSize(); |
| 2995 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 2995 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 2996 | 2996 |
| 2997 CCLayerImpl* rootPtr; | 2997 CCLayerImpl* rootPtr; |
| 2998 CCLayerImpl* surfaceLayerPtr; | 2998 CCLayerImpl* surfaceLayerPtr; |
| 2999 | 2999 |
| 3000 scoped_ptr<CCGraphicsContext> context = FakeWebCompositorOutputSurface::crea
te(adoptPtr(new PartialSwapContext)).PassAs<CCGraphicsContext>(); | 3000 scoped_ptr<CCGraphicsContext> context = FakeWebCompositorOutputSurface::crea
te(adoptPtr(new PartialSwapContext)).PassAs<CCGraphicsContext>(); |
| 3001 | 3001 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3078 EXPECT_EQ(2U, frame.renderPasses[0]->quadList().size()); | 3078 EXPECT_EQ(2U, frame.renderPasses[0]->quadList().size()); |
| 3079 ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size()); | 3079 ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size()); |
| 3080 | 3080 |
| 3081 myHostImpl->drawLayers(frame); | 3081 myHostImpl->drawLayers(frame); |
| 3082 myHostImpl->didDrawAllLayers(frame); | 3082 myHostImpl->didDrawAllLayers(frame); |
| 3083 } | 3083 } |
| 3084 } | 3084 } |
| 3085 | 3085 |
| 3086 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusion) | 3086 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusion) |
| 3087 { | 3087 { |
| 3088 CCSettings::setPartialSwapEnabled(false); | 3088 CCSettings::setPartialSwapEnabledForTest(false); |
| 3089 | 3089 |
| 3090 CCLayerTreeSettings settings; | 3090 CCLayerTreeSettings settings; |
| 3091 settings.minimumOcclusionTrackingSize = IntSize(); | 3091 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3092 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3092 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3093 | 3093 |
| 3094 // Layers are structure as follows: | 3094 // Layers are structure as follows: |
| 3095 // | 3095 // |
| 3096 // R +-- S1 +- L10 (owning) | 3096 // R +-- S1 +- L10 (owning) |
| 3097 // | +- L11 | 3097 // | +- L11 |
| 3098 // | +- L12 | 3098 // | +- L12 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3194 EXPECT_EQ(2U, frame.renderPasses[0]->quadList().size()); | 3194 EXPECT_EQ(2U, frame.renderPasses[0]->quadList().size()); |
| 3195 | 3195 |
| 3196 myHostImpl->drawLayers(frame); | 3196 myHostImpl->drawLayers(frame); |
| 3197 myHostImpl->didDrawAllLayers(frame); | 3197 myHostImpl->didDrawAllLayers(frame); |
| 3198 } | 3198 } |
| 3199 | 3199 |
| 3200 } | 3200 } |
| 3201 | 3201 |
| 3202 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionEarlyOut) | 3202 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionEarlyOut) |
| 3203 { | 3203 { |
| 3204 CCSettings::setPartialSwapEnabled(false); | 3204 CCSettings::setPartialSwapEnabledForTest(false); |
| 3205 | 3205 |
| 3206 CCLayerTreeSettings settings; | 3206 CCLayerTreeSettings settings; |
| 3207 settings.minimumOcclusionTrackingSize = IntSize(); | 3207 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3208 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3208 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3209 | 3209 |
| 3210 // Layers are structure as follows: | 3210 // Layers are structure as follows: |
| 3211 // | 3211 // |
| 3212 // R +-- S1 +- L10 (owning, non drawing) | 3212 // R +-- S1 +- L10 (owning, non drawing) |
| 3213 // | +- L11 (corner, unoccluded) | 3213 // | +- L11 (corner, unoccluded) |
| 3214 // | +- L12 (corner, unoccluded) | 3214 // | +- L12 (corner, unoccluded) |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3310 | 3310 |
| 3311 EXPECT_EQ(2U, frame.renderPasses[0]->quadList().size()); | 3311 EXPECT_EQ(2U, frame.renderPasses[0]->quadList().size()); |
| 3312 | 3312 |
| 3313 myHostImpl->drawLayers(frame); | 3313 myHostImpl->drawLayers(frame); |
| 3314 myHostImpl->didDrawAllLayers(frame); | 3314 myHostImpl->didDrawAllLayers(frame); |
| 3315 } | 3315 } |
| 3316 } | 3316 } |
| 3317 | 3317 |
| 3318 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionExternalOverInternal) | 3318 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionExternalOverInternal) |
| 3319 { | 3319 { |
| 3320 CCSettings::setPartialSwapEnabled(false); | 3320 CCSettings::setPartialSwapEnabledForTest(false); |
| 3321 | 3321 |
| 3322 CCLayerTreeSettings settings; | 3322 CCLayerTreeSettings settings; |
| 3323 settings.minimumOcclusionTrackingSize = IntSize(); | 3323 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3324 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3324 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3325 | 3325 |
| 3326 // Layers are structured as follows: | 3326 // Layers are structured as follows: |
| 3327 // | 3327 // |
| 3328 // R +-- S1 +- L10 (owning, drawing) | 3328 // R +-- S1 +- L10 (owning, drawing) |
| 3329 // | +- L11 (corner, occluded by L12) | 3329 // | +- L11 (corner, occluded by L12) |
| 3330 // | +- L12 (opposite corner) | 3330 // | +- L12 (opposite corner) |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3399 EXPECT_GT(frame.renderPasses[0]->quadList().size(), 0U); | 3399 EXPECT_GT(frame.renderPasses[0]->quadList().size(), 0U); |
| 3400 EXPECT_EQ(2U, frame.renderPasses[1]->quadList().size()); | 3400 EXPECT_EQ(2U, frame.renderPasses[1]->quadList().size()); |
| 3401 | 3401 |
| 3402 myHostImpl->drawLayers(frame); | 3402 myHostImpl->drawLayers(frame); |
| 3403 myHostImpl->didDrawAllLayers(frame); | 3403 myHostImpl->didDrawAllLayers(frame); |
| 3404 } | 3404 } |
| 3405 } | 3405 } |
| 3406 | 3406 |
| 3407 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionExternalNotAligned) | 3407 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionExternalNotAligned) |
| 3408 { | 3408 { |
| 3409 CCSettings::setPartialSwapEnabled(false); | 3409 CCSettings::setPartialSwapEnabledForTest(false); |
| 3410 | 3410 |
| 3411 CCLayerTreeSettings settings; | 3411 CCLayerTreeSettings settings; |
| 3412 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3412 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3413 | 3413 |
| 3414 // Layers are structured as follows: | 3414 // Layers are structured as follows: |
| 3415 // | 3415 // |
| 3416 // R +-- S1 +- L10 (rotated, drawing) | 3416 // R +-- S1 +- L10 (rotated, drawing) |
| 3417 // +- L11 (occupies half surface) | 3417 // +- L11 (occupies half surface) |
| 3418 | 3418 |
| 3419 CCLayerImpl* rootPtr; | 3419 CCLayerImpl* rootPtr; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3473 | 3473 |
| 3474 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3474 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3475 | 3475 |
| 3476 myHostImpl->drawLayers(frame); | 3476 myHostImpl->drawLayers(frame); |
| 3477 myHostImpl->didDrawAllLayers(frame); | 3477 myHostImpl->didDrawAllLayers(frame); |
| 3478 } | 3478 } |
| 3479 } | 3479 } |
| 3480 | 3480 |
| 3481 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionPartialSwap) | 3481 TEST_P(CCLayerTreeHostImplTest, textureCachingWithOcclusionPartialSwap) |
| 3482 { | 3482 { |
| 3483 CCSettings::setPartialSwapEnabled(true); | 3483 CCSettings::setPartialSwapEnabledForTest(true); |
| 3484 | 3484 |
| 3485 CCLayerTreeSettings settings; | 3485 CCLayerTreeSettings settings; |
| 3486 settings.minimumOcclusionTrackingSize = IntSize(); | 3486 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3487 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3487 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3488 | 3488 |
| 3489 // Layers are structure as follows: | 3489 // Layers are structure as follows: |
| 3490 // | 3490 // |
| 3491 // R +-- S1 +- L10 (owning) | 3491 // R +-- S1 +- L10 (owning) |
| 3492 // | +- L11 | 3492 // | +- L11 |
| 3493 // | +- L12 | 3493 // | +- L12 |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3586 // Root render pass only. | 3586 // Root render pass only. |
| 3587 ASSERT_EQ(1U, frame.renderPasses.size()); | 3587 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 3588 | 3588 |
| 3589 myHostImpl->drawLayers(frame); | 3589 myHostImpl->drawLayers(frame); |
| 3590 myHostImpl->didDrawAllLayers(frame); | 3590 myHostImpl->didDrawAllLayers(frame); |
| 3591 } | 3591 } |
| 3592 } | 3592 } |
| 3593 | 3593 |
| 3594 TEST_P(CCLayerTreeHostImplTest, textureCachingWithScissor) | 3594 TEST_P(CCLayerTreeHostImplTest, textureCachingWithScissor) |
| 3595 { | 3595 { |
| 3596 CCSettings::setPartialSwapEnabled(false); | 3596 CCSettings::setPartialSwapEnabledForTest(false); |
| 3597 | 3597 |
| 3598 CCLayerTreeSettings settings; | 3598 CCLayerTreeSettings settings; |
| 3599 settings.minimumOcclusionTrackingSize = IntSize(); | 3599 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3600 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3600 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3601 | 3601 |
| 3602 /* | 3602 /* |
| 3603 Layers are created as follows: | 3603 Layers are created as follows: |
| 3604 | 3604 |
| 3605 +--------------------+ | 3605 +--------------------+ |
| 3606 | 1 | | 3606 | 1 | |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3693 myHostImpl->drawLayers(frame); | 3693 myHostImpl->drawLayers(frame); |
| 3694 myHostImpl->didDrawAllLayers(frame); | 3694 myHostImpl->didDrawAllLayers(frame); |
| 3695 } | 3695 } |
| 3696 | 3696 |
| 3697 // We should have a cached texture for surface 2 again even though it was da
maged. | 3697 // We should have a cached texture for surface 2 again even though it was da
maged. |
| 3698 EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(child
PassId)); | 3698 EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(child
PassId)); |
| 3699 } | 3699 } |
| 3700 | 3700 |
| 3701 TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) | 3701 TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) |
| 3702 { | 3702 { |
| 3703 CCSettings::setPartialSwapEnabled(true); | 3703 CCSettings::setPartialSwapEnabledForTest(true); |
| 3704 | 3704 |
| 3705 CCLayerTreeSettings settings; | 3705 CCLayerTreeSettings settings; |
| 3706 settings.minimumOcclusionTrackingSize = IntSize(); | 3706 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3707 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3707 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3708 | 3708 |
| 3709 CCLayerImpl* rootPtr; | 3709 CCLayerImpl* rootPtr; |
| 3710 CCLayerImpl* intermediateLayerPtr; | 3710 CCLayerImpl* intermediateLayerPtr; |
| 3711 CCLayerImpl* surfaceLayerPtr; | 3711 CCLayerImpl* surfaceLayerPtr; |
| 3712 CCLayerImpl* childPtr; | 3712 CCLayerImpl* childPtr; |
| 3713 | 3713 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3854 CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId
()); | 3854 CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId
()); |
| 3855 EXPECT_TRUE(targetPass->damageRect().isEmpty()); | 3855 EXPECT_TRUE(targetPass->damageRect().isEmpty()); |
| 3856 | 3856 |
| 3857 myHostImpl->drawLayers(frame); | 3857 myHostImpl->drawLayers(frame); |
| 3858 myHostImpl->didDrawAllLayers(frame); | 3858 myHostImpl->didDrawAllLayers(frame); |
| 3859 } | 3859 } |
| 3860 } | 3860 } |
| 3861 | 3861 |
| 3862 TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) | 3862 TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) |
| 3863 { | 3863 { |
| 3864 CCSettings::setPartialSwapEnabled(false); | 3864 CCSettings::setPartialSwapEnabledForTest(false); |
| 3865 | 3865 |
| 3866 CCLayerTreeSettings settings; | 3866 CCLayerTreeSettings settings; |
| 3867 settings.minimumOcclusionTrackingSize = IntSize(); | 3867 settings.minimumOcclusionTrackingSize = IntSize(); |
| 3868 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); | 3868 scoped_ptr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(set
tings, this); |
| 3869 | 3869 |
| 3870 CCLayerImpl* rootPtr; | 3870 CCLayerImpl* rootPtr; |
| 3871 CCLayerImpl* intermediateLayerPtr; | 3871 CCLayerImpl* intermediateLayerPtr; |
| 3872 CCLayerImpl* surfaceLayerPtr; | 3872 CCLayerImpl* surfaceLayerPtr; |
| 3873 CCLayerImpl* childPtr; | 3873 CCLayerImpl* childPtr; |
| 3874 | 3874 |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4374 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); | 4374 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); |
| 4375 testCaseIndex++; | 4375 testCaseIndex++; |
| 4376 } | 4376 } |
| 4377 } | 4377 } |
| 4378 | 4378 |
| 4379 INSTANTIATE_TEST_CASE_P(CCLayerTreeHostImplTests, | 4379 INSTANTIATE_TEST_CASE_P(CCLayerTreeHostImplTests, |
| 4380 CCLayerTreeHostImplTest, | 4380 CCLayerTreeHostImplTest, |
| 4381 ::testing::Values(false, true)); | 4381 ::testing::Values(false, true)); |
| 4382 | 4382 |
| 4383 } // namespace | 4383 } // namespace |
| OLD | NEW |