Index: content/renderer/render_thread_impl.h |
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h |
index f609bdb0effdbeac9aae95b2aaba722044790bce..efa587e3aa1b1550cedabaf1790207c7e08b6ba9 100644 |
--- a/content/renderer/render_thread_impl.h |
+++ b/content/renderer/render_thread_impl.h |
@@ -17,6 +17,7 @@ |
#include "content/common/child_thread.h" |
#include "content/common/content_export.h" |
#include "content/common/gpu/client/gpu_channel_host.h" |
+#include "content/common/gpu/client/offscreen_context.h" |
#include "content/common/gpu/gpu_process_launch_causes.h" |
#include "content/public/renderer/render_thread.h" |
#include "ipc/ipc_channel_proxy.h" |
@@ -84,9 +85,11 @@ class WebGraphicsContext3DCommandBufferImpl; |
// Most of the communication occurs in the form of IPC messages. They are |
// routed to the RenderThread according to the routing IDs of the messages. |
// The routing IDs correspond to RenderView instances. |
-class CONTENT_EXPORT RenderThreadImpl : public RenderThread, |
- public ChildThread, |
- public GpuChannelHostFactory { |
+class CONTENT_EXPORT RenderThreadImpl |
+ : public RenderThread, |
+ public ChildThread, |
+ public GpuChannelHostFactory, |
+ public OffscreenContextClient { |
public: |
static RenderThreadImpl* current(); |
@@ -198,7 +201,10 @@ class CONTENT_EXPORT RenderThreadImpl : public RenderThread, |
return audio_message_filter_.get(); |
} |
- |
+ WebKit::WebGraphicsContext3D* OffscreenContext3dForMainThread(); |
+ WebKit::WebGraphicsContext3D* OffscreenContext3dForCompositorThread(); |
+ GrContext* OffscreenGrContextForMainThread(); |
+ GrContext* OffscreenGrContextForCompositorThread(); |
// Creates the embedder implementation of WebMediaStreamCenter. |
// The resulting object is owned by WebKit and deleted by WebKit at tear-down. |
@@ -323,6 +329,14 @@ class CONTENT_EXPORT RenderThreadImpl : public RenderThread, |
void IdleHandlerInForegroundTab(); |
+ // OffscreenContextClient implementation. |
+ virtual WebKit::WebGraphicsContext3D* CreateOffscreenContext() |
+ OVERRIDE; |
+ virtual void DidLoseContext(OffscreenContext* offscreen_context) |
+ OVERRIDE {} |
+ virtual void DidCreateContext(OffscreenContext* offscreen_context, |
+ bool success) OVERRIDE {} |
+ |
// These objects live solely on the render thread. |
scoped_ptr<AppCacheDispatcher> appcache_dispatcher_; |
scoped_ptr<DomStorageDispatcher> dom_storage_dispatcher_; |
@@ -386,6 +400,9 @@ class CONTENT_EXPORT RenderThreadImpl : public RenderThread, |
scoped_ptr<CompositorThread> compositor_thread_; |
scoped_refptr<IPC::ForwardingMessageFilter> compositor_output_surface_filter_; |
+ OffscreenContext shared_context_main_thread_; |
+ OffscreenContext shared_context_compositor_thread_; |
+ |
ObserverList<RenderProcessObserver> observers_; |
class GpuVDAContextLostCallback; |