diff options
Diffstat (limited to 'chrome/gpu/gpu_thread.cc')
-rw-r--r-- | chrome/gpu/gpu_thread.cc | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/chrome/gpu/gpu_thread.cc b/chrome/gpu/gpu_thread.cc index d143cbc..4845b3a 100644 --- a/chrome/gpu/gpu_thread.cc +++ b/chrome/gpu/gpu_thread.cc @@ -9,14 +9,30 @@ #if defined(OS_WIN) #include "chrome/gpu/gpu_view_win.h" +#elif defined(OS_LINUX) +#include "chrome/gpu/gpu_backing_store_glx_context.h" +#include "chrome/gpu/gpu_view_x.h" + +#include <X11/Xutil.h> // Must be last. #endif GpuThread::GpuThread() { +#if defined(OS_LINUX) + display_ = ::XOpenDisplay(NULL); +#endif } GpuThread::~GpuThread() { } +#if defined(OS_LINUX) +GpuBackingStoreGLXContext* GpuThread::GetGLXContext() { + if (!glx_context_.get()) + glx_context_.reset(new GpuBackingStoreGLXContext(this)); + return glx_context_.get(); +} +#endif + void GpuThread::OnControlMessageReceived(const IPC::Message& msg) { bool msg_is_ok = true; IPC_BEGIN_MESSAGE_MAP_EX(GpuThread, msg, msg_is_ok) @@ -25,13 +41,15 @@ void GpuThread::OnControlMessageReceived(const IPC::Message& msg) { IPC_END_MESSAGE_MAP_EX() } -void GpuThread::OnNewRenderWidgetHostView(gfx::NativeViewId parent_window, +void GpuThread::OnNewRenderWidgetHostView(GpuNativeWindowHandle parent_window, int32 routing_id) { + // The GPUView class' lifetime is controlled by the host, which will send a + // message to destroy the GpuRWHView when necessary. So we don't manage the + // lifetime of this object. #if defined(OS_WIN) - // The class' lifetime is controlled by the host, which will send a message to - // destroy the GpuRWHView when necessary. So we don't manage the lifetime - // of this object. new GpuViewWin(this, parent_window, routing_id); +#elif defined(OS_LINUX) + new GpuViewX(this, parent_window, routing_id); #else NOTIMPLEMENTED(); #endif |