diff options
author | 2021-08-12 15:55:12 +0000 | |
---|---|---|
committer | 2021-08-17 16:16:09 +0000 | |
commit | 3952ed68a52099d8779453a2ab4218f600808d98 (patch) | |
tree | 32531bb91b6800a0be60e2ee48d7e2d2498e7ff4 /libs/hwui/DeferredLayerUpdater.cpp | |
parent | 9fa8e7a7b4bc1e5b18d09bd5527839a6f3145d2d (diff) |
Added crop rect and removed inverse of the texture matrix.
BUG=152621633
Test: Verified manually and with
atest TextureViewCameraTest
atest TextureViewTest
atest TextureViewSnapshotTest
atest TextureViewStressTest
atest PixelCopyTest
atest BitmapTest
atest HardwareBitmapTests
Change-Id: Ie993a18fd3511576617a1eb859bf228c33d12f78
Diffstat (limited to 'libs/hwui/DeferredLayerUpdater.cpp')
-rw-r--r-- | libs/hwui/DeferredLayerUpdater.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp index 2b86b1eb7542..0b3b39397ee4 100644 --- a/libs/hwui/DeferredLayerUpdater.cpp +++ b/libs/hwui/DeferredLayerUpdater.cpp @@ -167,12 +167,13 @@ void DeferredLayerUpdater::apply() { // (invoked by createIfNeeded) will add a ref to the AHardwareBuffer. AHardwareBuffer_release(hardwareBuffer); if (layerImage.get()) { - SkMatrix textureTransform; - mat4(transformMatrix).copyTo(textureTransform); // force filtration if buffer size != layer size bool forceFilter = mWidth != layerImage->width() || mHeight != layerImage->height(); - updateLayer(forceFilter, textureTransform, layerImage); + SkRect currentCropRect = + SkRect::MakeLTRB(currentCrop.left, currentCrop.top, currentCrop.right, + currentCrop.bottom); + updateLayer(forceFilter, layerImage, outTransform, currentCropRect); } } } @@ -184,12 +185,13 @@ void DeferredLayerUpdater::apply() { } } -void DeferredLayerUpdater::updateLayer(bool forceFilter, const SkMatrix& textureTransform, - const sk_sp<SkImage>& layerImage) { +void DeferredLayerUpdater::updateLayer(bool forceFilter, const sk_sp<SkImage>& layerImage, + const uint32_t transform, SkRect currentCrop) { mLayer->setBlend(mBlend); mLayer->setForceFilter(forceFilter); mLayer->setSize(mWidth, mHeight); - mLayer->getTexTransform() = textureTransform; + mLayer->setCurrentCropRect(currentCrop); + mLayer->setWindowTransform(transform); mLayer->setImage(layerImage); } |