Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 653 | 653 |
| 654 void RenderWidgetHostViewAura::AcceleratedSurfaceRelease( | 654 void RenderWidgetHostViewAura::AcceleratedSurfaceRelease( |
| 655 uint64 surface_handle) { | 655 uint64 surface_handle) { |
| 656 if (current_surface_ == surface_handle) { | 656 if (current_surface_ == surface_handle) { |
| 657 current_surface_ = 0; | 657 current_surface_ = 0; |
| 658 UpdateExternalTexture(); | 658 UpdateExternalTexture(); |
| 659 } | 659 } |
| 660 image_transport_clients_.erase(surface_handle); | 660 image_transport_clients_.erase(surface_handle); |
| 661 } | 661 } |
| 662 | 662 |
| 663 void RenderWidgetHostViewAura::AcceleratedSurfaceSuggestDiscard( | |
| 664 uint64 surface_handle, int32 route_id, int gpu_host_id) { | |
| 665 if (host_->IsVisible() && current_surface_ == surface_handle) | |
| 666 return; | |
|
piman
2012/05/04 00:03:49
The problem here is that it's racy. We may miss an
mmocny
2012/05/04 18:55:52
Very sorry, but I am still not understanding why t
| |
| 667 | |
| 668 AcceleratedSurfaceRelease(surface_handle); | |
| 669 | |
| 670 on_compositing_ended_callbacks_.push_back( | |
|
piman
2012/05/04 00:03:49
on_compositing_ended_callbacks_ may not be used un
mmocny
2012/05/04 18:55:52
Once I stop scheduling a composite, Yes, I'll need
| |
| 671 base::Bind(&RenderWidgetHostImpl::SendSurfaceDiscard, | |
|
piman
2012/05/04 00:03:49
By the time that callback is called, we may be vis
mmocny
2012/05/04 18:55:52
Correct, thanks!
On 2012/05/04 00:03:49, piman wro
| |
| 672 surface_handle, | |
| 673 route_id, | |
| 674 gpu_host_id)); | |
| 675 host_->ScheduleComposite(); | |
|
piman
2012/05/04 00:03:49
This shouldn't be needed. If we don't have a frame
| |
| 676 } | |
| 677 | |
| 663 void RenderWidgetHostViewAura::SetBackground(const SkBitmap& background) { | 678 void RenderWidgetHostViewAura::SetBackground(const SkBitmap& background) { |
| 664 content::RenderWidgetHostViewBase::SetBackground(background); | 679 content::RenderWidgetHostViewBase::SetBackground(background); |
| 665 host_->SetBackground(background); | 680 host_->SetBackground(background); |
| 666 window_->layer()->SetFillsBoundsOpaquely(background.isOpaque()); | 681 window_->layer()->SetFillsBoundsOpaquely(background.isOpaque()); |
| 667 } | 682 } |
| 668 | 683 |
| 669 void RenderWidgetHostViewAura::GetScreenInfo(WebKit::WebScreenInfo* results) { | 684 void RenderWidgetHostViewAura::GetScreenInfo(WebKit::WebScreenInfo* results) { |
| 670 GetScreenInfoForWindow(results, window_); | 685 GetScreenInfoForWindow(results, window_); |
| 671 } | 686 } |
| 672 | 687 |
| (...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1315 RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget( | 1330 RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget( |
| 1316 RenderWidgetHost* widget) { | 1331 RenderWidgetHost* widget) { |
| 1317 return new RenderWidgetHostViewAura(widget); | 1332 return new RenderWidgetHostViewAura(widget); |
| 1318 } | 1333 } |
| 1319 | 1334 |
| 1320 // static | 1335 // static |
| 1321 void content::RenderWidgetHostViewPort::GetDefaultScreenInfo( | 1336 void content::RenderWidgetHostViewPort::GetDefaultScreenInfo( |
| 1322 WebKit::WebScreenInfo* results) { | 1337 WebKit::WebScreenInfo* results) { |
| 1323 GetScreenInfoForWindow(results, NULL); | 1338 GetScreenInfoForWindow(results, NULL); |
| 1324 } | 1339 } |
| OLD | NEW |