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

Unified Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 12212007: cc: Route offscreen context creation for compositor to the browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Restart with GrContext owned in cc 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/gpu/render_widget_compositor.cc
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc
index 311e175cdcb1ecad3177c9a6792f2c65960cbe51..1aa0c848821224075f98cd9e623fa55ce5bc7917 100644
--- a/content/renderer/gpu/render_widget_compositor.cc
+++ b/content/renderer/gpu/render_widget_compositor.cc
@@ -17,6 +17,7 @@
#include "content/renderer/gpu/compositor_thread.h"
#include "content/renderer/render_thread_impl.h"
#include "third_party/WebKit/Source/Platform/chromium/public/WebLayerTreeViewClient.h"
+#include "third_party/WebKit/Source/Platform/chromium/public/WebSharedGraphicsContext3D.h"
#include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h"
#include "webkit/compositor_bindings/web_layer_impl.h"
#include "webkit/compositor_bindings/web_to_ccinput_handler_adapter.h"
@@ -340,6 +341,29 @@ void RenderWidgetCompositor::didRecreateOutputSurface(bool success) {
client_->didRecreateOutputSurface(success);
}
+// TODO(danakj): This hook is just meant for testing, remove it when we track
+// losing the offscreen context in the embedder! The getter methods should
+// return a new valid context after a loss automatically.
+void RenderWidgetCompositor::willRetryRecreateOutputSurface() {
+ if (WebKit::WebSharedGraphicsContext3D::haveCompositorThreadContext())
+ WebKit::WebSharedGraphicsContext3D::createCompositorThreadContext();
+}
+
+// TODO(danakj): This should go through WebWidget
+WebKit::WebGraphicsContext3D* RenderWidgetCompositor::
+ OffscreenContext3dForMainThread() {
+ return WebKit::WebSharedGraphicsContext3D::mainThreadContext();
+}
+
+// TODO(danakj): This should go through WebWidget
+WebKit::WebGraphicsContext3D* RenderWidgetCompositor::
+ OffscreenContext3dForCompositorThread() {
+ if (!WebKit::WebSharedGraphicsContext3D::haveCompositorThreadContext() &&
+ !WebKit::WebSharedGraphicsContext3D::createCompositorThreadContext())
+ return NULL;
+ return WebKit::WebSharedGraphicsContext3D::compositorThreadContext();
+}
+
// TODO(jamesr): This should go through WebWidget
scoped_ptr<cc::InputHandler> RenderWidgetCompositor::createInputHandler() {
scoped_ptr<cc::InputHandler> ret;

Powered by Google App Engine
This is Rietveld 408576698