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

Side by Side Diff: content/browser/gpu/gpu_process_host_ui_shim.cc

Issue 11475017: Revert 171569 as it broke some browser_tests on win_aura. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/gpu/gpu_process_host_ui_shim.h" 5 #include "content/browser/gpu/gpu_process_host_ui_shim.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 13 matching lines...) Expand all
24 #include "ui/gl/gl_switches.h" 24 #include "ui/gl/gl_switches.h"
25 25
26 #if defined(TOOLKIT_GTK) 26 #if defined(TOOLKIT_GTK)
27 // These two #includes need to come after gpu_messages.h. 27 // These two #includes need to come after gpu_messages.h.
28 #include "ui/base/x/x11_util.h" 28 #include "ui/base/x/x11_util.h"
29 #include "ui/gfx/size.h" 29 #include "ui/gfx/size.h"
30 #include <gdk/gdk.h> // NOLINT 30 #include <gdk/gdk.h> // NOLINT
31 #include <gdk/gdkx.h> // NOLINT 31 #include <gdk/gdkx.h> // NOLINT
32 #endif 32 #endif
33 33
34 // From gl2/gl2ext.h.
35 #ifndef GL_MAILBOX_SIZE_CHROMIUM
36 #define GL_MAILBOX_SIZE_CHROMIUM 64
37 #endif
38
39 namespace content { 34 namespace content {
40 35
41 namespace { 36 namespace {
42 37
43 // One of the linux specific headers defines this as a macro. 38 // One of the linux specific headers defines this as a macro.
44 #ifdef DestroyAll 39 #ifdef DestroyAll
45 #undef DestroyAll 40 #undef DestroyAll
46 #endif 41 #endif
47 42
48 base::LazyInstance<IDMap<GpuProcessHostUIShim> > g_hosts_by_id = 43 base::LazyInstance<IDMap<GpuProcessHostUIShim> > g_hosts_by_id =
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 } 295 }
301 296
302 #endif 297 #endif
303 298
304 void GpuProcessHostUIShim::OnAcceleratedSurfaceNew( 299 void GpuProcessHostUIShim::OnAcceleratedSurfaceNew(
305 const GpuHostMsg_AcceleratedSurfaceNew_Params& params) { 300 const GpuHostMsg_AcceleratedSurfaceNew_Params& params) {
306 RenderWidgetHostViewPort* view = GetRenderWidgetHostViewFromSurfaceID( 301 RenderWidgetHostViewPort* view = GetRenderWidgetHostViewFromSurfaceID(
307 params.surface_id); 302 params.surface_id);
308 if (!view) 303 if (!view)
309 return; 304 return;
310
311 if (params.mailbox_name.length() &&
312 params.mailbox_name.length() != GL_MAILBOX_SIZE_CHROMIUM)
313 return;
314
315 view->AcceleratedSurfaceNew( 305 view->AcceleratedSurfaceNew(
316 params.width, params.height, params.surface_handle, 306 params.width, params.height, params.surface_handle);
317 params.mailbox_name);
318 } 307 }
319 308
320 static base::TimeDelta GetSwapDelay() { 309 static base::TimeDelta GetSwapDelay() {
321 CommandLine* cmd_line = CommandLine::ForCurrentProcess(); 310 CommandLine* cmd_line = CommandLine::ForCurrentProcess();
322 int delay = 0; 311 int delay = 0;
323 if (cmd_line->HasSwitch(switches::kGpuSwapDelay)) { 312 if (cmd_line->HasSwitch(switches::kGpuSwapDelay)) {
324 base::StringToInt(cmd_line->GetSwitchValueNative( 313 base::StringToInt(cmd_line->GetSwitchValueNative(
325 switches::kGpuSwapDelay).c_str(), &delay); 314 switches::kGpuSwapDelay).c_str(), &delay);
326 } 315 }
327 return base::TimeDelta::FromMilliseconds(delay); 316 return base::TimeDelta::FromMilliseconds(delay);
328 } 317 }
329 318
330 void GpuProcessHostUIShim::OnAcceleratedSurfaceBuffersSwapped( 319 void GpuProcessHostUIShim::OnAcceleratedSurfaceBuffersSwapped(
331 const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params) { 320 const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params) {
332 TRACE_EVENT0("renderer", 321 TRACE_EVENT0("renderer",
333 "GpuProcessHostUIShim::OnAcceleratedSurfaceBuffersSwapped"); 322 "GpuProcessHostUIShim::OnAcceleratedSurfaceBuffersSwapped");
334 323
335 ScopedSendOnIOThread delayed_send( 324 ScopedSendOnIOThread delayed_send(
336 host_id_, 325 host_id_,
337 new AcceleratedSurfaceMsg_BufferPresented(params.route_id, 326 new AcceleratedSurfaceMsg_BufferPresented(params.route_id, false, 0));
338 params.surface_handle,
339 0));
340 327
341 RenderWidgetHostViewPort* view = GetRenderWidgetHostViewFromSurfaceID( 328 RenderWidgetHostViewPort* view = GetRenderWidgetHostViewFromSurfaceID(
342 params.surface_id); 329 params.surface_id);
343 if (!view) 330 if (!view)
344 return; 331 return;
345 332
346 delayed_send.Cancel(); 333 delayed_send.Cancel();
347 334
348 static const base::TimeDelta swap_delay = GetSwapDelay(); 335 static const base::TimeDelta swap_delay = GetSwapDelay();
349 if (swap_delay.ToInternalValue()) 336 if (swap_delay.ToInternalValue())
350 base::PlatformThread::Sleep(swap_delay); 337 base::PlatformThread::Sleep(swap_delay);
351 338
352 // View must send ACK message after next composite. 339 // View must send ACK message after next composite.
353 view->AcceleratedSurfaceBuffersSwapped(params, host_id_); 340 view->AcceleratedSurfaceBuffersSwapped(params, host_id_);
354 } 341 }
355 342
356 void GpuProcessHostUIShim::OnAcceleratedSurfacePostSubBuffer( 343 void GpuProcessHostUIShim::OnAcceleratedSurfacePostSubBuffer(
357 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params) { 344 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params) {
358 TRACE_EVENT0("renderer", 345 TRACE_EVENT0("renderer",
359 "GpuProcessHostUIShim::OnAcceleratedSurfacePostSubBuffer"); 346 "GpuProcessHostUIShim::OnAcceleratedSurfacePostSubBuffer");
360 347
361 ScopedSendOnIOThread delayed_send( 348 ScopedSendOnIOThread delayed_send(
362 host_id_, 349 host_id_,
363 new AcceleratedSurfaceMsg_BufferPresented(params.route_id, 350 new AcceleratedSurfaceMsg_BufferPresented(params.route_id, false, 0));
364 params.surface_handle,
365 0));
366 351
367 RenderWidgetHostViewPort* view = 352 RenderWidgetHostViewPort* view =
368 GetRenderWidgetHostViewFromSurfaceID(params.surface_id); 353 GetRenderWidgetHostViewFromSurfaceID(params.surface_id);
369 if (!view) 354 if (!view)
370 return; 355 return;
371 356
372 delayed_send.Cancel(); 357 delayed_send.Cancel();
373 358
374 // View must send ACK message after next composite. 359 // View must send ACK message after next composite.
375 view->AcceleratedSurfacePostSubBuffer(params, host_id_); 360 view->AcceleratedSurfacePostSubBuffer(params, host_id_);
(...skipping 10 matching lines...) Expand all
386 371
387 view->AcceleratedSurfaceSuspend(); 372 view->AcceleratedSurfaceSuspend();
388 } 373 }
389 374
390 void GpuProcessHostUIShim::OnAcceleratedSurfaceRelease( 375 void GpuProcessHostUIShim::OnAcceleratedSurfaceRelease(
391 const GpuHostMsg_AcceleratedSurfaceRelease_Params& params) { 376 const GpuHostMsg_AcceleratedSurfaceRelease_Params& params) {
392 RenderWidgetHostViewPort* view = GetRenderWidgetHostViewFromSurfaceID( 377 RenderWidgetHostViewPort* view = GetRenderWidgetHostViewFromSurfaceID(
393 params.surface_id); 378 params.surface_id);
394 if (!view) 379 if (!view)
395 return; 380 return;
396 view->AcceleratedSurfaceRelease(); 381 view->AcceleratedSurfaceRelease(params.identifier);
397 } 382 }
398 383
399 void GpuProcessHostUIShim::OnVideoMemoryUsageStatsReceived( 384 void GpuProcessHostUIShim::OnVideoMemoryUsageStatsReceived(
400 const GPUVideoMemoryUsageStats& video_memory_usage_stats) { 385 const GPUVideoMemoryUsageStats& video_memory_usage_stats) {
401 GpuDataManagerImpl::GetInstance()->UpdateVideoMemoryUsageStats( 386 GpuDataManagerImpl::GetInstance()->UpdateVideoMemoryUsageStats(
402 video_memory_usage_stats); 387 video_memory_usage_stats);
403 } 388 }
404 389
405 } // namespace content 390 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_process_host.cc ('k') | content/browser/renderer_host/image_transport_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698