summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp23
1 files changed, 23 insertions, 0 deletions
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 @@ void OpenGLRenderer::prepare() {
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
///////////////////////////////////////////////////////////////////////////////