diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-01 01:06:32 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-01 01:06:32 +0000 |
commit | 6ebf2fc952b8170971e37971e9d1362c64424e89 (patch) | |
tree | c5ec2454ecc2af8f302893de6c7bfea60b672791 /chrome/browser/gpu_process_host.cc | |
parent | 59a77daa557ef00a90742ece6994563bbdeddc73 (diff) | |
download | chromium_src-6ebf2fc952b8170971e37971e9d1362c64424e89.zip chromium_src-6ebf2fc952b8170971e37971e9d1362c64424e89.tar.gz chromium_src-6ebf2fc952b8170971e37971e9d1362c64424e89.tar.bz2 |
linux: add accelerated compositing.
Similar to Windows, this doesn't handle exposes currently, nor WebGL.
Other caveat: tearing off a tab causes trouble to the gpu process.
Review URL: http://codereview.chromium.org/2886003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51324 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gpu_process_host.cc')
-rw-r--r-- | chrome/browser/gpu_process_host.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chrome/browser/gpu_process_host.cc b/chrome/browser/gpu_process_host.cc index f01b7d3..e18326b 100644 --- a/chrome/browser/gpu_process_host.cc +++ b/chrome/browser/gpu_process_host.cc @@ -14,6 +14,10 @@ #include "chrome/common/render_messages.h" #include "ipc/ipc_switches.h" +#if defined(OS_LINUX) +#include "gfx/gtk_native_view_id_manager.h" +#endif + namespace { // Tasks used by this file @@ -147,6 +151,9 @@ void GpuProcessHost::OnControlMessageReceived(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(GpuProcessHost, message) IPC_MESSAGE_HANDLER(GpuHostMsg_ChannelEstablished, OnChannelEstablished) IPC_MESSAGE_HANDLER(GpuHostMsg_SynchronizeReply, OnSynchronizeReply) +#if defined(OS_LINUX) + IPC_MESSAGE_HANDLER(GpuHostMsg_GetViewXID, OnGetViewXID) +#endif IPC_MESSAGE_UNHANDLED_ERROR() IPC_END_MESSAGE_MAP() } @@ -165,6 +172,16 @@ void GpuProcessHost::OnSynchronizeReply() { queued_synchronization_replies_.pop(); } +#if defined(OS_LINUX) +void GpuProcessHost::OnGetViewXID(gfx::NativeViewId id, unsigned long* xid) { + GtkNativeViewManager* manager = Singleton<GtkNativeViewManager>::get(); + if (!manager->GetXIDForId(xid, id)) { + DLOG(ERROR) << "Can't find XID for view id " << id; + *xid = 0; + } +} +#endif + void GpuProcessHost::ReplyToRenderer( const IPC::ChannelHandle& channel, ResourceMessageFilter* filter) { |