Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: content/browser/renderer_host/render_widget_host_view_win.cc

Issue 8498036: Delay UpdateRect until the SwapBuffers callback when accelerated compositing is on. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: allow multiple update messages in flight Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_win.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc
index 997e14538917c8ebc2b8ac01c5bfbd54cff5340f..c8078147bf2db6fae268370cb58a5c5243b2a6d1 100644
--- a/content/browser/renderer_host/render_widget_host_view_win.cc
+++ b/content/browser/renderer_host/render_widget_host_view_win.cc
@@ -182,21 +182,6 @@ LRESULT CALLBACK PluginWrapperWindowProc(HWND window, unsigned int message,
return ::DefWindowProc(window, message, wparam, lparam);
}
-void SendToGpuProcessHost(int gpu_host_id, IPC::Message* message) {
- GpuProcessHost* gpu_process_host = GpuProcessHost::FromID(gpu_host_id);
- if (!gpu_process_host) {
- delete message;
- return;
- }
-
- gpu_process_host->Send(message);
-}
-
-void PostTaskOnIOThread(const tracked_objects::Location& from_here,
- base::Closure task) {
- BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, task);
-}
-
bool DecodeZoomGesture(HWND hwnd, const GESTUREINFO& gi,
content::PageZoom* zoom,
POINT* zoom_center) {
@@ -2044,28 +2029,27 @@ void RenderWidgetHostViewWin::OnAcceleratedCompositingStateChange() {
void RenderWidgetHostViewWin::AcceleratedSurfaceBuffersSwapped(
const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
int gpu_host_id) {
- if (!accelerated_surface_.get() && compositor_host_window_) {
- accelerated_surface_ = new AcceleratedSurface(compositor_host_window_);
- accelerated_surface_->Initialize();
- }
-
- base::Closure acknowledge_task =
- base::Bind(SendToGpuProcessHost,
- gpu_host_id,
- new AcceleratedSurfaceMsg_BuffersSwappedACK(params.route_id));
+ if (params.surface_id) {
+ if (!accelerated_surface_.get() && compositor_host_window_) {
+ accelerated_surface_ = new AcceleratedSurface(compositor_host_window_);
+ accelerated_surface_->Initialize();
+ }
- accelerated_surface_->AsyncPresentAndAcknowledge(
- params.size,
- params.surface_id,
- base::Bind(PostTaskOnIOThread,
- FROM_HERE,
- acknowledge_task));
+ accelerated_surface_->AsyncPresentAndAcknowledge(
+ params.size,
+ params.surface_id,
+ base::Bind(&RenderWidgetHost::AcknowledgeSwapBuffers,
+ gpu_host_id,
+ params.route_id));
+ } else {
+ RenderWidgetHost::AcknowledgeSwapBuffers(params.route_id, gpu_host_id);
+ }
}
void RenderWidgetHostViewWin::AcceleratedSurfacePostSubBuffer(
const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
int gpu_host_id) {
- NOTREACHED();
+ RenderWidgetHost::AcknowledgePostSubBuffer(params.route_id, gpu_host_id);
}
void RenderWidgetHostViewWin::SetAccessibilityFocus(int acc_obj_id) {
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_gtk.cc ('k') | content/common/gpu/image_transport_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698