Add hooks for hardware accelerated WebView.
Change-Id: I907cdec8a67594f87749ac46bda85f04af5a2003
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 4ce30b0..02f5dc5 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -143,6 +143,29 @@
mSnapshot->setClip(0.0f, 0.0f, mWidth, mHeight);
}
+void OpenGLRenderer::acquireContext() {
+ if (mCaches.currentProgram) {
+ if (mCaches.currentProgram->isInUse()) {
+ mCaches.currentProgram->remove();
+ mCaches.currentProgram = NULL;
+ }
+ }
+}
+
+void OpenGLRenderer::releaseContext() {
+ glViewport(0, 0, mSnapshot->viewport.getWidth(), mSnapshot->viewport.getHeight());
+
+ glEnable(GL_SCISSOR_TEST);
+ setScissorFromClip();
+
+ if (mCaches.blend) {
+ glEnable(GL_BLEND);
+ glBlendFunc(mCaches.lastSrcMode, mCaches.lastDstMode);
+ } else {
+ glDisable(GL_BLEND);
+ }
+}
+
///////////////////////////////////////////////////////////////////////////////
// State management
///////////////////////////////////////////////////////////////////////////////
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index 5748d57..d0e04b2 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -58,6 +58,8 @@
void setViewport(int width, int height);
void prepare();
+ void acquireContext();
+ void releaseContext();
int getSaveCount() const;
int save(int flags);