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

Unified Diff: ui/gl/gl_gl_api_implementation.cc

Issue 15928002: GPU: Keep track of the last real context and real surface made current. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix OSX Created 7 years, 6 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: ui/gl/gl_gl_api_implementation.cc
diff --git a/ui/gl/gl_gl_api_implementation.cc b/ui/gl/gl_gl_api_implementation.cc
index 94166eed457f039623a47d1f85329b871cd61ba0..ff76d6bebd8641f11e55accd8c6b139d797627dd 100644
--- a/ui/gl/gl_gl_api_implementation.cc
+++ b/ui/gl/gl_gl_api_implementation.cc
@@ -259,6 +259,7 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) {
// MakeCurrent 'lite' path that avoids potentially expensive MakeCurrent()
// calls if the GLSurface uses the same underlying surface or renders to
// an FBO.
+ real_context_->SetCurrent(surface);
if (!surface->OnMakeCurrent(real_context_)) {
LOG(ERROR) << "Could not make GLSurface current.";
return false;
@@ -268,8 +269,9 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) {
}
}
- DCHECK(GLSurface::GetCurrent());
- DCHECK(real_context_->IsCurrent(GLSurface::GetCurrent()));
+ DCHECK_EQ(real_context_, GLContext::GetRealCurrent());
+ DCHECK(GLSurface::GetRealCurrent());
+ DCHECK(real_context_->IsCurrent(GLSurface::GetRealCurrent()));
DCHECK(virtual_context->IsCurrent(surface));
if (switched_contexts || virtual_context != current_context_) {
@@ -290,6 +292,7 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) {
SetGLApi(temp);
}
SetGLApi(this);
+
return true;
}

Powered by Google App Engine
This is Rietveld 408576698