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/layer_tree_host.h" | 5 #include "cc/layer_tree_host.h" |
6 | 6 |
7 #include "base/synchronization/lock.h" | 7 #include "base/synchronization/lock.h" |
8 #include "cc/content_layer.h" | 8 #include "cc/content_layer.h" |
9 #include "cc/content_layer_client.h" | 9 #include "cc/content_layer_client.h" |
10 #include "cc/layer_impl.h" | 10 #include "cc/layer_impl.h" |
(...skipping 2599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2610 | 2610 |
2611 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSurfaceNotAllocatedForLayersOuts
ideMemoryLimit) | 2611 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSurfaceNotAllocatedForLayersOuts
ideMemoryLimit) |
2612 | 2612 |
2613 class EvictionTestLayer : public Layer { | 2613 class EvictionTestLayer : public Layer { |
2614 public: | 2614 public: |
2615 static scoped_refptr<EvictionTestLayer> create() { return make_scoped_refptr
(new EvictionTestLayer()); } | 2615 static scoped_refptr<EvictionTestLayer> create() { return make_scoped_refptr
(new EvictionTestLayer()); } |
2616 | 2616 |
2617 virtual void update(ResourceUpdateQueue&, const OcclusionTracker*, Rendering
Stats&) OVERRIDE; | 2617 virtual void update(ResourceUpdateQueue&, const OcclusionTracker*, Rendering
Stats&) OVERRIDE; |
2618 virtual bool drawsContent() const OVERRIDE { return true; } | 2618 virtual bool drawsContent() const OVERRIDE { return true; } |
2619 | 2619 |
2620 virtual scoped_ptr<LayerImpl> createLayerImpl() OVERRIDE; | 2620 virtual scoped_ptr<LayerImpl> createLayerImpl(LayerTreeHostImpl* hostImpl) O
VERRIDE; |
2621 virtual void pushPropertiesTo(LayerImpl*) OVERRIDE; | 2621 virtual void pushPropertiesTo(LayerImpl*) OVERRIDE; |
2622 virtual void setTexturePriorities(const PriorityCalculator&) OVERRIDE; | 2622 virtual void setTexturePriorities(const PriorityCalculator&) OVERRIDE; |
2623 | 2623 |
2624 bool haveBackingTexture() const { return m_texture.get() ? m_texture->haveBa
ckingTexture() : false; } | 2624 bool haveBackingTexture() const { return m_texture.get() ? m_texture->haveBa
ckingTexture() : false; } |
2625 | 2625 |
2626 private: | 2626 private: |
2627 EvictionTestLayer() : Layer() { } | 2627 EvictionTestLayer() : Layer() { } |
2628 virtual ~EvictionTestLayer() { } | 2628 virtual ~EvictionTestLayer() { } |
2629 | 2629 |
2630 void createTextureIfNeeded() | 2630 void createTextureIfNeeded() |
2631 { | 2631 { |
2632 if (m_texture.get()) | 2632 if (m_texture.get()) |
2633 return; | 2633 return; |
2634 m_texture = PrioritizedResource::create(layerTreeHost()->contentsTexture
Manager()); | 2634 m_texture = PrioritizedResource::create(layerTreeHost()->contentsTexture
Manager()); |
2635 m_texture->setDimensions(gfx::Size(10, 10), GL_RGBA); | 2635 m_texture->setDimensions(gfx::Size(10, 10), GL_RGBA); |
2636 m_bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); | 2636 m_bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); |
2637 } | 2637 } |
2638 | 2638 |
2639 scoped_ptr<PrioritizedResource> m_texture; | 2639 scoped_ptr<PrioritizedResource> m_texture; |
2640 SkBitmap m_bitmap; | 2640 SkBitmap m_bitmap; |
2641 }; | 2641 }; |
2642 | 2642 |
2643 class EvictionTestLayerImpl : public LayerImpl { | 2643 class EvictionTestLayerImpl : public LayerImpl { |
2644 public: | 2644 public: |
2645 static scoped_ptr<EvictionTestLayerImpl> create(int id) | 2645 static scoped_ptr<EvictionTestLayerImpl> create(LayerTreeHostImpl* hostImpl,
int id) |
2646 { | 2646 { |
2647 return make_scoped_ptr(new EvictionTestLayerImpl(id)); | 2647 return make_scoped_ptr(new EvictionTestLayerImpl(hostImpl, id)); |
2648 } | 2648 } |
2649 virtual ~EvictionTestLayerImpl() { } | 2649 virtual ~EvictionTestLayerImpl() { } |
2650 | 2650 |
2651 virtual void appendQuads(QuadSink& quadSink, AppendQuadsData&) OVERRIDE | 2651 virtual void appendQuads(QuadSink& quadSink, AppendQuadsData&) OVERRIDE |
2652 { | 2652 { |
2653 ASSERT_TRUE(m_hasTexture); | 2653 ASSERT_TRUE(m_hasTexture); |
2654 ASSERT_NE(0u, layerTreeHostImpl()->resourceProvider()->numResources()); | 2654 ASSERT_NE(0u, layerTreeHostImpl()->resourceProvider()->numResources()); |
2655 } | 2655 } |
2656 | 2656 |
2657 void setHasTexture(bool hasTexture) { m_hasTexture = hasTexture; } | 2657 void setHasTexture(bool hasTexture) { m_hasTexture = hasTexture; } |
2658 | 2658 |
2659 private: | 2659 private: |
2660 explicit EvictionTestLayerImpl(int id) | 2660 EvictionTestLayerImpl(LayerTreeHostImpl* hostImpl, int id) |
2661 : LayerImpl(id) | 2661 : LayerImpl(hostImpl, id) |
2662 , m_hasTexture(false) { } | 2662 , m_hasTexture(false) { } |
2663 | 2663 |
2664 bool m_hasTexture; | 2664 bool m_hasTexture; |
2665 }; | 2665 }; |
2666 | 2666 |
2667 void EvictionTestLayer::setTexturePriorities(const PriorityCalculator&) | 2667 void EvictionTestLayer::setTexturePriorities(const PriorityCalculator&) |
2668 { | 2668 { |
2669 createTextureIfNeeded(); | 2669 createTextureIfNeeded(); |
2670 if (!m_texture.get()) | 2670 if (!m_texture.get()) |
2671 return; | 2671 return; |
2672 m_texture->setRequestPriority(PriorityCalculator::uiPriority(true)); | 2672 m_texture->setRequestPriority(PriorityCalculator::uiPriority(true)); |
2673 } | 2673 } |
2674 | 2674 |
2675 void EvictionTestLayer::update(ResourceUpdateQueue& queue, const OcclusionTracke
r*, RenderingStats&) | 2675 void EvictionTestLayer::update(ResourceUpdateQueue& queue, const OcclusionTracke
r*, RenderingStats&) |
2676 { | 2676 { |
2677 createTextureIfNeeded(); | 2677 createTextureIfNeeded(); |
2678 if (!m_texture.get()) | 2678 if (!m_texture.get()) |
2679 return; | 2679 return; |
2680 | 2680 |
2681 gfx::Rect fullRect(0, 0, 10, 10); | 2681 gfx::Rect fullRect(0, 0, 10, 10); |
2682 ResourceUpdate upload = ResourceUpdate::Create( | 2682 ResourceUpdate upload = ResourceUpdate::Create( |
2683 m_texture.get(), &m_bitmap, fullRect, fullRect, gfx::Vector2d()); | 2683 m_texture.get(), &m_bitmap, fullRect, fullRect, gfx::Vector2d()); |
2684 queue.appendFullUpload(upload); | 2684 queue.appendFullUpload(upload); |
2685 } | 2685 } |
2686 | 2686 |
2687 scoped_ptr<LayerImpl> EvictionTestLayer::createLayerImpl() | 2687 scoped_ptr<LayerImpl> EvictionTestLayer::createLayerImpl(LayerTreeHostImpl* host
Impl) |
2688 { | 2688 { |
2689 return EvictionTestLayerImpl::create(m_layerId).PassAs<LayerImpl>(); | 2689 return EvictionTestLayerImpl::create(hostImpl, m_layerId).PassAs<LayerImpl>(
); |
2690 } | 2690 } |
2691 | 2691 |
2692 void EvictionTestLayer::pushPropertiesTo(LayerImpl* layerImpl) | 2692 void EvictionTestLayer::pushPropertiesTo(LayerImpl* layerImpl) |
2693 { | 2693 { |
2694 Layer::pushPropertiesTo(layerImpl); | 2694 Layer::pushPropertiesTo(layerImpl); |
2695 | 2695 |
2696 EvictionTestLayerImpl* testLayerImpl = static_cast<EvictionTestLayerImpl*>(l
ayerImpl); | 2696 EvictionTestLayerImpl* testLayerImpl = static_cast<EvictionTestLayerImpl*>(l
ayerImpl); |
2697 testLayerImpl->setHasTexture(m_texture->haveBackingTexture()); | 2697 testLayerImpl->setHasTexture(m_texture->haveBackingTexture()); |
2698 } | 2698 } |
2699 | 2699 |
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3352 LayerTreeSettings settings; | 3352 LayerTreeSettings settings; |
3353 settings.maxPartialTextureUpdates = 4; | 3353 settings.maxPartialTextureUpdates = 4; |
3354 | 3354 |
3355 scoped_ptr<LayerTreeHost> host = LayerTreeHost::create(&client, settings, sc
oped_ptr<Thread>()); | 3355 scoped_ptr<LayerTreeHost> host = LayerTreeHost::create(&client, settings, sc
oped_ptr<Thread>()); |
3356 EXPECT_TRUE(host->initializeRendererIfNeeded()); | 3356 EXPECT_TRUE(host->initializeRendererIfNeeded()); |
3357 EXPECT_EQ(4u, host->settings().maxPartialTextureUpdates); | 3357 EXPECT_EQ(4u, host->settings().maxPartialTextureUpdates); |
3358 } | 3358 } |
3359 | 3359 |
3360 } // namespace | 3360 } // namespace |
3361 } // namespace cc | 3361 } // namespace cc |
OLD | NEW |