| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "platform/graphics/CanvasSurfaceLayerBridge.h" | 5 #include "platform/graphics/CanvasSurfaceLayerBridge.h" |
| 6 | 6 |
| 7 #include "cc/layers/layer.h" | 7 #include "cc/layers/layer.h" |
| 8 #include "cc/layers/solid_color_layer.h" | 8 #include "cc/layers/solid_color_layer.h" |
| 9 #include "cc/layers/surface_layer.h" | 9 #include "cc/layers/surface_layer.h" |
| 10 #include "cc/surfaces/sequence_surface_reference_factory.h" | 10 #include "cc/surfaces/sequence_surface_reference_factory.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 const cc::SurfaceInfo& surface_info) { | 94 const cc::SurfaceInfo& surface_info) { |
| 95 if (!current_surface_id_.is_valid() && surface_info.is_valid()) { | 95 if (!current_surface_id_.is_valid() && surface_info.is_valid()) { |
| 96 // First time a SurfaceId is received | 96 // First time a SurfaceId is received |
| 97 current_surface_id_ = surface_info.id(); | 97 current_surface_id_ = surface_info.id(); |
| 98 GraphicsLayer::UnregisterContentsLayer(web_layer_.get()); | 98 GraphicsLayer::UnregisterContentsLayer(web_layer_.get()); |
| 99 web_layer_->RemoveFromParent(); | 99 web_layer_->RemoveFromParent(); |
| 100 | 100 |
| 101 scoped_refptr<cc::SurfaceLayer> surface_layer = | 101 scoped_refptr<cc::SurfaceLayer> surface_layer = |
| 102 cc::SurfaceLayer::Create(ref_factory_); | 102 cc::SurfaceLayer::Create(ref_factory_); |
| 103 surface_layer->SetPrimarySurfaceInfo(surface_info); | 103 surface_layer->SetPrimarySurfaceInfo(surface_info); |
| 104 surface_layer->SetFallbackSurfaceInfo(surface_info); |
| 104 surface_layer->SetStretchContentToFillBounds(true); | 105 surface_layer->SetStretchContentToFillBounds(true); |
| 105 cc_layer_ = surface_layer; | 106 cc_layer_ = surface_layer; |
| 106 | 107 |
| 107 web_layer_ = | 108 web_layer_ = |
| 108 Platform::Current()->CompositorSupport()->CreateLayerFromCCLayer( | 109 Platform::Current()->CompositorSupport()->CreateLayerFromCCLayer( |
| 109 cc_layer_.get()); | 110 cc_layer_.get()); |
| 110 GraphicsLayer::RegisterContentsLayer(web_layer_.get()); | 111 GraphicsLayer::RegisterContentsLayer(web_layer_.get()); |
| 111 } else if (current_surface_id_ != surface_info.id()) { | 112 } else if (current_surface_id_ != surface_info.id()) { |
| 112 // A different SurfaceId is received, prompting change to existing | 113 // A different SurfaceId is received, prompting change to existing |
| 113 // SurfaceLayer | 114 // SurfaceLayer |
| 114 current_surface_id_ = surface_info.id(); | 115 current_surface_id_ = surface_info.id(); |
| 115 cc::SurfaceLayer* surface_layer = | 116 cc::SurfaceLayer* surface_layer = |
| 116 static_cast<cc::SurfaceLayer*>(cc_layer_.get()); | 117 static_cast<cc::SurfaceLayer*>(cc_layer_.get()); |
| 117 surface_layer->SetPrimarySurfaceInfo(surface_info); | 118 surface_layer->SetPrimarySurfaceInfo(surface_info); |
| 119 surface_layer->SetFallbackSurfaceInfo(surface_info); |
| 118 } | 120 } |
| 119 | 121 |
| 120 observer_->OnWebLayerReplaced(); | 122 observer_->OnWebLayerReplaced(); |
| 121 cc_layer_->SetBounds(surface_info.size_in_pixels()); | 123 cc_layer_->SetBounds(surface_info.size_in_pixels()); |
| 122 } | 124 } |
| 123 | 125 |
| 124 void CanvasSurfaceLayerBridge::SatisfyCallback( | 126 void CanvasSurfaceLayerBridge::SatisfyCallback( |
| 125 const cc::SurfaceSequence& sequence) { | 127 const cc::SurfaceSequence& sequence) { |
| 126 service_->Satisfy(sequence); | 128 service_->Satisfy(sequence); |
| 127 } | 129 } |
| 128 | 130 |
| 129 void CanvasSurfaceLayerBridge::RequireCallback( | 131 void CanvasSurfaceLayerBridge::RequireCallback( |
| 130 const cc::SurfaceId& surface_id, | 132 const cc::SurfaceId& surface_id, |
| 131 const cc::SurfaceSequence& sequence) { | 133 const cc::SurfaceSequence& sequence) { |
| 132 service_->Require(surface_id, sequence); | 134 service_->Require(surface_id, sequence); |
| 133 } | 135 } |
| 134 | 136 |
| 135 } // namespace blink | 137 } // namespace blink |
| OLD | NEW |