| 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;
|
|
|