am 010719c2: Merge "fix [3312683] Camera mirroring problem after switching from back to front camera" into honeycomb
* commit '010719c2fff4ab40757984f29d7755ff7f79e3de': fix [3312683] Camera mirroring problem after switching from back to front camera
This commit is contained in:
commit
f637bd067e
@ -503,12 +503,18 @@ void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const
|
|||||||
|
|
||||||
void LayerBase::setBufferCrop(const Rect& crop) {
|
void LayerBase::setBufferCrop(const Rect& crop) {
|
||||||
if (!crop.isEmpty()) {
|
if (!crop.isEmpty()) {
|
||||||
mBufferCrop = crop;
|
if (mBufferCrop != crop) {
|
||||||
|
mBufferCrop = crop;
|
||||||
|
mFlinger->invalidateHwcGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LayerBase::setBufferTransform(uint32_t transform) {
|
void LayerBase::setBufferTransform(uint32_t transform) {
|
||||||
mBufferTransform = transform;
|
if (mBufferTransform != transform) {
|
||||||
|
mBufferTransform = transform;
|
||||||
|
mFlinger->invalidateHwcGeometry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LayerBase::dump(String8& result, char* buffer, size_t SIZE) const
|
void LayerBase::dump(String8& result, char* buffer, size_t SIZE) const
|
||||||
|
@ -465,7 +465,7 @@ void SurfaceFlinger::handleTransaction(uint32_t transactionFlags)
|
|||||||
handleTransactionLocked(transactionFlags, ditchedLayers);
|
handleTransactionLocked(transactionFlags, ditchedLayers);
|
||||||
mLastTransactionTime = systemTime() - now;
|
mLastTransactionTime = systemTime() - now;
|
||||||
mDebugInTransaction = 0;
|
mDebugInTransaction = 0;
|
||||||
mHwWorkListDirty = true;
|
invalidateHwcGeometry();
|
||||||
// here the transaction has been committed
|
// here the transaction has been committed
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -731,13 +731,18 @@ void SurfaceFlinger::handlePageFlip()
|
|||||||
|
|
||||||
mWormholeRegion = screenRegion.subtract(opaqueRegion);
|
mWormholeRegion = screenRegion.subtract(opaqueRegion);
|
||||||
mVisibleRegionsDirty = false;
|
mVisibleRegionsDirty = false;
|
||||||
mHwWorkListDirty = true;
|
invalidateHwcGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
unlockPageFlip(currentLayers);
|
unlockPageFlip(currentLayers);
|
||||||
mDirtyRegion.andSelf(screenRegion);
|
mDirtyRegion.andSelf(screenRegion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SurfaceFlinger::invalidateHwcGeometry()
|
||||||
|
{
|
||||||
|
mHwWorkListDirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
bool SurfaceFlinger::lockPageFlip(const LayerVector& currentLayers)
|
bool SurfaceFlinger::lockPageFlip(const LayerVector& currentLayers)
|
||||||
{
|
{
|
||||||
bool recomputeVisibleRegions = false;
|
bool recomputeVisibleRegions = false;
|
||||||
@ -1591,7 +1596,7 @@ status_t SurfaceFlinger::onTransact(
|
|||||||
case 1008: // toggle use of hw composer
|
case 1008: // toggle use of hw composer
|
||||||
n = data.readInt32();
|
n = data.readInt32();
|
||||||
mDebugDisableHWC = n ? 1 : 0;
|
mDebugDisableHWC = n ? 1 : 0;
|
||||||
mHwWorkListDirty = true;
|
invalidateHwcGeometry();
|
||||||
// fall-through...
|
// fall-through...
|
||||||
case 1004:{ // repaint everything
|
case 1004:{ // repaint everything
|
||||||
Mutex::Autolock _l(mStateLock);
|
Mutex::Autolock _l(mStateLock);
|
||||||
|
@ -225,6 +225,7 @@ public:
|
|||||||
status_t removeLayer(const sp<LayerBase>& layer);
|
status_t removeLayer(const sp<LayerBase>& layer);
|
||||||
status_t addLayer(const sp<LayerBase>& layer);
|
status_t addLayer(const sp<LayerBase>& layer);
|
||||||
status_t invalidateLayerVisibility(const sp<LayerBase>& layer);
|
status_t invalidateLayerVisibility(const sp<LayerBase>& layer);
|
||||||
|
void invalidateHwcGeometry();
|
||||||
|
|
||||||
sp<Layer> getLayer(const sp<ISurface>& sur) const;
|
sp<Layer> getLayer(const sp<ISurface>& sur) const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user