Index: chrome/gpu/gpu_channel.cc |
=================================================================== |
--- chrome/gpu/gpu_channel.cc (revision 54820) |
+++ chrome/gpu/gpu_channel.cc (working copy) |
@@ -100,6 +100,7 @@ |
} |
void GpuChannel::OnCreateViewCommandBuffer(gfx::NativeViewId view_id, |
+ int32 render_view_id, |
int32* route_id) { |
*route_id = 0; |
@@ -124,6 +125,13 @@ |
// alternative would be to add a socket/plug pair like with plugins but that |
// has issues with events and focus. |
gpu_thread->Send(new GpuHostMsg_GetViewXID(view_id, &handle)); |
+#elif defined(OS_MACOSX) |
+ // On Mac OS X we currently pass a (fake) PluginWindowHandle for the |
+ // NativeViewId. We could allocate fake NativeViewIds on the browser |
+ // side as well, and map between those and PluginWindowHandles, but |
+ // this seems excessive. |
+ handle = static_cast<gfx::PluginWindowHandle>( |
+ static_cast<intptr_t>(view_id)); |
#else |
// TODO(apatrick): This needs to be something valid for mac and linux. |
// Offscreen rendering will work on these platforms but not rendering to the |
@@ -133,7 +141,8 @@ |
*route_id = GenerateRouteID(); |
scoped_ptr<GpuCommandBufferStub> stub(new GpuCommandBufferStub( |
- this, handle, NULL, gfx::Size(), 0, *route_id)); |
+ this, handle, NULL, gfx::Size(), 0, *route_id, |
+ renderer_id_, render_view_id)); |
router_.AddRoute(*route_id, stub.get()); |
stubs_.AddWithID(stub.release(), *route_id); |
#endif // ENABLE_GPU |
@@ -155,7 +164,8 @@ |
parent_stub, |
size, |
parent_texture_id, |
- *route_id)); |
+ *route_id, |
+ 0, 0)); |
router_.AddRoute(*route_id, stub.get()); |
stubs_.AddWithID(stub.release(), *route_id); |
#else |