am 75c4d498: Merge change 25423 into eclair

Merge commit '75c4d498776a189f37e3d0294c9eda9ed51f6534' into eclair-plus-aosp

* commit '75c4d498776a189f37e3d0294c9eda9ed51f6534':
  fix [2119400] sholes: artifacting when switching orientation
This commit is contained in:
Mathias Agopian
2009-09-17 08:44:32 -07:00
committed by Android Git Automerger

View File

@@ -303,7 +303,6 @@ uint32_t Layer::doTransaction(uint32_t flags)
// Index of the back buffer // Index of the back buffer
const bool backbufferChanged = (front.w != temp.w) || (front.h != temp.h); const bool backbufferChanged = (front.w != temp.w) || (front.h != temp.h);
if (backbufferChanged) { if (backbufferChanged) {
// the size changed, we need to ask our client to request a new buffer // the size changed, we need to ask our client to request a new buffer
LOGD_IF(DEBUG_RESIZE, LOGD_IF(DEBUG_RESIZE,
@@ -318,17 +317,6 @@ uint32_t Layer::doTransaction(uint32_t flags)
// buffer, it'll get the new size. // buffer, it'll get the new size.
setDrawingSize(temp.w, temp.h); setDrawingSize(temp.w, temp.h);
// all buffers need reallocation
lcblk->reallocate();
// recompute the visible region
// FIXME: ideally we would do that only when we have received
// a buffer of the right size
flags |= Layer::eVisibleRegion;
this->contentDirty = true;
#if 0
// FIXME: handle freeze lock
// we're being resized and there is a freeze display request, // we're being resized and there is a freeze display request,
// acquire a freeze lock, so that the screen stays put // acquire a freeze lock, so that the screen stays put
// until we've redrawn at the new size; this is to avoid // until we've redrawn at the new size; this is to avoid
@@ -340,7 +328,12 @@ uint32_t Layer::doTransaction(uint32_t flags)
mFreezeLock = mFlinger->getFreezeLock(); mFreezeLock = mFlinger->getFreezeLock();
} }
} }
#endif
// recompute the visible region
flags |= Layer::eVisibleRegion;
this->contentDirty = true;
// all buffers need reallocation
lcblk->reallocate();
} }
if (temp.sequence != front.sequence) { if (temp.sequence != front.sequence) {
@@ -382,6 +375,13 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions)
const Region dirty(lcblk->getDirtyRegion(buf)); const Region dirty(lcblk->getDirtyRegion(buf));
mPostedDirtyRegion = dirty.intersect( newFrontBuffer->getBounds() ); mPostedDirtyRegion = dirty.intersect( newFrontBuffer->getBounds() );
const Layer::State& front(drawingState());
if (newFrontBuffer->getWidth() == front.w &&
newFrontBuffer->getHeight() ==front.h) {
mFreezeLock.clear();
}
// FIXME: signal an event if we have more buffers waiting // FIXME: signal an event if we have more buffers waiting
// mFlinger->signalEvent(); // mFlinger->signalEvent();