| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 virtual void beginCommitOnCCThread(CCLayerTreeHostImpl*) { } | 66 virtual void beginCommitOnCCThread(CCLayerTreeHostImpl*) { } |
| 67 virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) { } | 67 virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) { } |
| 68 virtual void prepareToDrawOnCCThread(CCLayerTreeHostImpl*) { } | 68 virtual void prepareToDrawOnCCThread(CCLayerTreeHostImpl*) { } |
| 69 virtual void drawLayersOnCCThread(CCLayerTreeHostImpl*) { } | 69 virtual void drawLayersOnCCThread(CCLayerTreeHostImpl*) { } |
| 70 virtual void animateLayers(CCLayerTreeHostImpl*, double monotonicTime) { } | 70 virtual void animateLayers(CCLayerTreeHostImpl*, double monotonicTime) { } |
| 71 virtual void willAnimateLayers(CCLayerTreeHostImpl*, double monotonicTime) {
} | 71 virtual void willAnimateLayers(CCLayerTreeHostImpl*, double monotonicTime) {
} |
| 72 virtual void applyScrollAndScale(const IntSize&, float) { } | 72 virtual void applyScrollAndScale(const IntSize&, float) { } |
| 73 virtual void updateAnimations(double monotonicTime) { } | 73 virtual void updateAnimations(double monotonicTime) { } |
| 74 virtual void layout() { } | 74 virtual void layout() { } |
| 75 virtual void didRecreateContext(bool succeded) { } | 75 virtual void didRecreateContext(bool succeded) { } |
| 76 virtual void didCommit() { } |
| 76 virtual void didCommitAndDrawFrame() { } | 77 virtual void didCommitAndDrawFrame() { } |
| 77 | 78 |
| 78 // Implementation of CCLayerAnimationDelegate | 79 // Implementation of CCLayerAnimationDelegate |
| 79 virtual void notifyAnimationStarted(double time) { } | 80 virtual void notifyAnimationStarted(double time) { } |
| 80 virtual void notifyAnimationFinished(double time) { } | 81 virtual void notifyAnimationFinished(double time) { } |
| 81 }; | 82 }; |
| 82 | 83 |
| 83 // Adapts CCLayerTreeHostImpl for test. Runs real code, then invokes test hooks. | 84 // Adapts CCLayerTreeHostImpl for test. Runs real code, then invokes test hooks. |
| 84 class MockLayerTreeHostImpl : public CCLayerTreeHostImpl { | 85 class MockLayerTreeHostImpl : public CCLayerTreeHostImpl { |
| 85 public: | 86 public: |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 GraphicsContext3D::Attributes attrs; | 250 GraphicsContext3D::Attributes attrs; |
| 250 WebGraphicsContext3D::Attributes webAttrs; | 251 WebGraphicsContext3D::Attributes webAttrs; |
| 251 webAttrs.alpha = attrs.alpha; | 252 webAttrs.alpha = attrs.alpha; |
| 252 | 253 |
| 253 OwnPtr<WebGraphicsContext3D> webContext = CompositorFakeWebGraphicsConte
xt3DWithTextureTracking::create(webAttrs); | 254 OwnPtr<WebGraphicsContext3D> webContext = CompositorFakeWebGraphicsConte
xt3DWithTextureTracking::create(webAttrs); |
| 254 return GraphicsContext3DPrivate::createGraphicsContextFromWebContext(web
Context.release(), GraphicsContext3D::RenderDirectlyToHostWindow); | 255 return GraphicsContext3DPrivate::createGraphicsContextFromWebContext(web
Context.release(), GraphicsContext3D::RenderDirectlyToHostWindow); |
| 255 } | 256 } |
| 256 | 257 |
| 257 virtual void didCommit() OVERRIDE | 258 virtual void didCommit() OVERRIDE |
| 258 { | 259 { |
| 260 m_testHooks->didCommit(); |
| 259 } | 261 } |
| 260 | 262 |
| 261 virtual void didCommitAndDrawFrame() OVERRIDE | 263 virtual void didCommitAndDrawFrame() OVERRIDE |
| 262 { | 264 { |
| 263 m_testHooks->didCommitAndDrawFrame(); | 265 m_testHooks->didCommitAndDrawFrame(); |
| 264 } | 266 } |
| 265 | 267 |
| 266 virtual void didCompleteSwapBuffers() OVERRIDE | 268 virtual void didCompleteSwapBuffers() OVERRIDE |
| 267 { | 269 { |
| 268 } | 270 } |
| (...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 834 int m_numCommits; | 836 int m_numCommits; |
| 835 int m_numDraws; | 837 int m_numDraws; |
| 836 }; | 838 }; |
| 837 | 839 |
| 838 TEST_F(CCLayerTreeHostTestSetNeedsRedraw, runMultiThread) | 840 TEST_F(CCLayerTreeHostTestSetNeedsRedraw, runMultiThread) |
| 839 { | 841 { |
| 840 runTestThreaded(); | 842 runTestThreaded(); |
| 841 } | 843 } |
| 842 | 844 |
| 843 // If the layerTreeHost says it can't draw, then we should not try to draw. | 845 // If the layerTreeHost says it can't draw, then we should not try to draw. |
| 844 // FIXME: Make this run in single threaded mode too. http://crbug.com/127481 | |
| 845 class CCLayerTreeHostTestCanDrawBlocksDrawing : public CCLayerTreeHostTestThread
Only { | 846 class CCLayerTreeHostTestCanDrawBlocksDrawing : public CCLayerTreeHostTestThread
Only { |
| 846 public: | 847 public: |
| 847 CCLayerTreeHostTestCanDrawBlocksDrawing() | 848 CCLayerTreeHostTestCanDrawBlocksDrawing() |
| 848 : m_numCommits(0) | 849 : m_numCommits(0) |
| 849 { | 850 { |
| 850 } | 851 } |
| 851 | 852 |
| 852 virtual void beginTest() | 853 virtual void beginTest() |
| 853 { | 854 { |
| 854 } | 855 } |
| 855 | 856 |
| 856 virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) | 857 virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) |
| 857 { | 858 { |
| 858 // Only the initial draw should bring us here. | 859 // Only the initial draw should bring us here. |
| 859 EXPECT_TRUE(impl->canDraw()); | 860 EXPECT_TRUE(impl->canDraw()); |
| 860 EXPECT_EQ(0, impl->sourceFrameNumber()); | 861 EXPECT_EQ(0, impl->sourceFrameNumber()); |
| 861 } | 862 } |
| 862 | 863 |
| 863 virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) | 864 virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) |
| 864 { | 865 { |
| 865 if (m_numCommits >= 1) { | 866 if (m_numCommits >= 1) { |
| 866 // After the first commit, we should not be able to draw. | 867 // After the first commit, we should not be able to draw. |
| 867 EXPECT_FALSE(impl->canDraw()); | 868 EXPECT_FALSE(impl->canDraw()); |
| 868 } | 869 } |
| 869 } | 870 } |
| 870 | 871 |
| 871 virtual void didCommitAndDrawFrame() | 872 virtual void didCommit() |
| 872 { | 873 { |
| 873 m_numCommits++; | 874 m_numCommits++; |
| 874 if (m_numCommits == 1) { | 875 if (m_numCommits == 1) { |
| 875 // Make the viewport empty so the host says it can't draw. | 876 // Make the viewport empty so the host says it can't draw. |
| 876 m_layerTreeHost->setViewportSize(IntSize(0, 0)); | 877 m_layerTreeHost->setViewportSize(IntSize(0, 0)); |
| 877 | 878 |
| 878 OwnArrayPtr<char> pixels(adoptArrayPtr(new char[4])); | 879 OwnArrayPtr<char> pixels(adoptArrayPtr(new char[4])); |
| 879 m_layerTreeHost->compositeAndReadback(static_cast<void*>(pixels.get(
)), IntRect(0, 0, 1, 1)); | 880 m_layerTreeHost->compositeAndReadback(static_cast<void*>(pixels.get(
)), IntRect(0, 0, 1, 1)); |
| 880 } else if (m_numCommits == 2) { | 881 } else if (m_numCommits == 2) { |
| 882 m_layerTreeHost->setNeedsRedraw(); |
| 881 m_layerTreeHost->setNeedsCommit(); | 883 m_layerTreeHost->setNeedsCommit(); |
| 882 m_layerTreeHost->finishAllRendering(); | 884 } else |
| 883 endTest(); | 885 endTest(); |
| 884 } | |
| 885 } | 886 } |
| 886 | 887 |
| 887 virtual void afterTest() | 888 virtual void afterTest() |
| 888 { | 889 { |
| 889 } | 890 } |
| 890 | 891 |
| 891 private: | 892 private: |
| 892 int m_numCommits; | 893 int m_numCommits; |
| 893 }; | 894 }; |
| 894 | 895 |
| 895 TEST_F(CCLayerTreeHostTestCanDrawBlocksDrawing, runMultiThread) | 896 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestCanDrawBlocksDrawing) |
| 896 { | |
| 897 runTestThreaded(); | |
| 898 } | |
| 899 | 897 |
| 900 // beginLayerWrite should prevent draws from executing until a commit occurs | 898 // beginLayerWrite should prevent draws from executing until a commit occurs |
| 901 class CCLayerTreeHostTestWriteLayersRedraw : public CCLayerTreeHostTestThreadOnl
y { | 899 class CCLayerTreeHostTestWriteLayersRedraw : public CCLayerTreeHostTestThreadOnl
y { |
| 902 public: | 900 public: |
| 903 CCLayerTreeHostTestWriteLayersRedraw() | 901 CCLayerTreeHostTestWriteLayersRedraw() |
| 904 : m_numCommits(0) | 902 : m_numCommits(0) |
| 905 , m_numDraws(0) | 903 , m_numDraws(0) |
| 906 { | 904 { |
| 907 } | 905 } |
| 908 | 906 |
| (...skipping 1583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2492 private: | 2490 private: |
| 2493 FloatSize m_scrollAmount; | 2491 FloatSize m_scrollAmount; |
| 2494 }; | 2492 }; |
| 2495 | 2493 |
| 2496 TEST_F(CCLayerTreeHostTestFractionalScroll, runMultiThread) | 2494 TEST_F(CCLayerTreeHostTestFractionalScroll, runMultiThread) |
| 2497 { | 2495 { |
| 2498 runTestThreaded(); | 2496 runTestThreaded(); |
| 2499 } | 2497 } |
| 2500 | 2498 |
| 2501 } // namespace | 2499 } // namespace |
| OLD | NEW |