diff options
| author | 2011-07-08 15:34:50 -0700 | |
|---|---|---|
| committer | 2011-07-08 15:34:50 -0700 | |
| commit | 2bc1427e907c8eae1c3921515b2004c3dbd93a46 (patch) | |
| tree | 388bede972115579bcc42817e25d4e746a98c473 /services/surfaceflinger/LayerBase.cpp | |
| parent | 9ed8c77b7b8b8667a0a0a5f27dd9c4d594c0f357 (diff) | |
| parent | 3a831d24e9147d737c6aaed72d84c1126c232368 (diff) | |
Merge "fix screen on/off animation (again)"
Diffstat (limited to 'services/surfaceflinger/LayerBase.cpp')
| -rw-r--r-- | services/surfaceflinger/LayerBase.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/services/surfaceflinger/LayerBase.cpp b/services/surfaceflinger/LayerBase.cpp index bcd8c8332590..c86c659ad6cd 100644 --- a/services/surfaceflinger/LayerBase.cpp +++ b/services/surfaceflinger/LayerBase.cpp @@ -228,13 +228,18 @@ void LayerBase::validateVisibility(const Transform& planeTransform) const Layer::State& s(drawingState()); const Transform tr(planeTransform * s.transform); const bool transformed = tr.transformed(); - + const DisplayHardware& hw(graphicPlane(0).displayHardware()); + const uint32_t hw_h = hw.getHeight(); + uint32_t w = s.w; uint32_t h = s.h; tr.transform(mVertices[0], 0, 0); tr.transform(mVertices[1], 0, h); tr.transform(mVertices[2], w, h); tr.transform(mVertices[3], w, 0); + for (size_t i=0 ; i<4 ; i++) + mVertices[i][1] = hw_h - mVertices[i][1]; + if (UNLIKELY(transformed)) { // NOTE: here we could also punt if we have too many rectangles // in the transparent region |