From 2bb57a8bc3711fe2a1fb742c4acace3899860e87 Mon Sep 17 00:00:00 2001 From: Ramakant Singh Date: Mon, 19 Oct 2015 14:38:10 +0530 Subject: [PATCH] sf : Apply user defined panel orientation to blur layer Blur layer need to capture screen shot to create to blur effect. Hence need to take care any user defined orientation as well. Change-Id: I1c0478810d12661edf2586293bbed342a5b4dc7e --- services/surfaceflinger/LayerBlur.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/surfaceflinger/LayerBlur.cpp b/services/surfaceflinger/LayerBlur.cpp index 5c9e8ace7..021978d1c 100644 --- a/services/surfaceflinger/LayerBlur.cpp +++ b/services/surfaceflinger/LayerBlur.cpp @@ -224,6 +224,7 @@ void LayerBlur::onDraw(const sp& hw, const Region& /*clip*/ bool LayerBlur::captureScreen(const sp& hw, FBO& fbo, Texture& texture, int width, int height) { ATRACE_CALL(); ensureFbo(fbo, width, height, texture.getTextureName()); + Transform::orientation_flags rotation = Transform::ROT_0; if(fbo.fbo == 0) { ALOGE("captureScreen(). fbo.fbo == 0"); return false; @@ -237,6 +238,8 @@ bool LayerBlur::captureScreen(const sp& hw, FBO& fbo, Textu texture.getTextureName(), 0); mFlinger->getRenderEngine().clearWithColor(0.0f, 0.0f, 0.0f, 1.0f); + if (hw->isPanelInverseMounted()) + rotation = Transform::ROT_180; mFlinger->renderScreenImplLocked( hw, Rect(0,0,width,height), @@ -244,7 +247,7 @@ bool LayerBlur::captureScreen(const sp& hw, FBO& fbo, Textu 0, getDrawingState().z-1, false, false, - Transform::ROT_0); + rotation); glBindFramebuffer(GL_FRAMEBUFFER, savedFramebuffer);