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

Unified Diff: content/renderer/render_view_impl.cc

Issue 9225050: Defer render_widget draw until host window is available (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 11 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_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index b76e2a8a26c6df7b90b193639497dd4a0a1f6333..64f294a5a9ef076c28987e153eb29a127dca9177 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -4495,12 +4495,21 @@ bool RenderViewImpl::SupportsAsynchronousSwapBuffers() {
if (WebWidgetHandlesCompositorScheduling())
return false;
+ if (queried_for_swapbuffers_complete_callback_)
+ return context_has_swapbuffers_complete_callback_;
piman 2012/01/30 18:10:23 I'm not sure caching this is a valid thing to do.
+
+ queried_for_swapbuffers_complete_callback_ = true;
+
WebKit::WebGraphicsContext3D* context = webview()->graphicsContext3D();
- if (!context)
- return false;
- std::string extensions(context->getRequestableExtensionsCHROMIUM().utf8());
- return extensions.find("GL_CHROMIUM_swapbuffers_complete_callback") !=
- std::string::npos;
+ if (context) {
+ context->makeContextCurrent();
+ std::string extensions(context->getRequestableExtensionsCHROMIUM().utf8());
+ context_has_swapbuffers_complete_callback_ =
+ extensions.find("GL_CHROMIUM_swapbuffers_complete_callback")
+ != std::string::npos;
+ }
+
+ return context_has_swapbuffers_complete_callback_;
}
void RenderViewImpl::OnSetFocus(bool enable) {

Powered by Google App Engine
This is Rietveld 408576698