Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Unified Diff: content/renderer/render_thread_impl.h

Issue 12212100: Provide shared context to Platform API in renderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: no ifdefs Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698