summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gpu_process_host.cc
diff options
context:
space:
mode:
authorpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 01:06:32 +0000
committerpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 01:06:32 +0000
commit6ebf2fc952b8170971e37971e9d1362c64424e89 (patch)
treec5ec2454ecc2af8f302893de6c7bfea60b672791 /chrome/browser/gpu_process_host.cc
parent59a77daa557ef00a90742ece6994563bbdeddc73 (diff)
downloadchromium_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.cc17
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) {