summaryrefslogtreecommitdiff
path: root/libs/hwui/DeferredLayerUpdater.cpp
diff options
context:
space:
mode:
author ramindani <ramindani@google.com> 2021-08-12 15:55:12 +0000
committer ramindani <ramindani@google.com> 2021-08-17 16:16:09 +0000
commit3952ed68a52099d8779453a2ab4218f600808d98 (patch)
tree32531bb91b6800a0be60e2ee48d7e2d2498e7ff4 /libs/hwui/DeferredLayerUpdater.cpp
parent9fa8e7a7b4bc1e5b18d09bd5527839a6f3145d2d (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.cpp14
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);
}