summaryrefslogtreecommitdiffstats
path: root/chrome/gpu/gpu_thread.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/gpu/gpu_thread.cc')
-rw-r--r--chrome/gpu/gpu_thread.cc26
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