surfaceflinger: add RenderEngine::setCurrentSurface
setCurrentSurface is a wrapper to eglMakeCurrent and it uses the EGL
context implied by the RenderEngine. This also allows us to
simplify DisplayDevice::makeCurrent.
Test: SurfaceFlinger_test
Change-Id: Idab581f0ef79af7263159a558d8fad493a198ce7
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
index 1d22f84..332f2e0 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
@@ -187,6 +187,14 @@
return mEGLContext;
}
+bool RenderEngine::setCurrentSurface(EGLSurface surface) {
+ return eglMakeCurrent(mEGLDisplay, surface, surface, mEGLContext) == EGL_TRUE;
+}
+
+void RenderEngine::resetCurrentSurface() {
+ eglMakeCurrent(mEGLDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+}
+
void RenderEngine::checkErrors() const {
do {
// there could be more than one error flag