Merge "Ensure that the pip transaction matrix has only scale & rotation info" into sc-dev
This commit is contained in:
@@ -43,16 +43,18 @@ public class PipSurfaceTransactionHelper {
|
|||||||
public PictureInPictureSurfaceTransaction scale(
|
public PictureInPictureSurfaceTransaction scale(
|
||||||
SurfaceControl.Transaction tx, SurfaceControl leash,
|
SurfaceControl.Transaction tx, SurfaceControl leash,
|
||||||
Rect sourceBounds, Rect destinationBounds) {
|
Rect sourceBounds, Rect destinationBounds) {
|
||||||
|
float positionX = destinationBounds.left;
|
||||||
|
float positionY = destinationBounds.top;
|
||||||
mTmpSourceRectF.set(sourceBounds);
|
mTmpSourceRectF.set(sourceBounds);
|
||||||
mTmpDestinationRectF.set(destinationBounds);
|
mTmpDestinationRectF.set(destinationBounds);
|
||||||
|
mTmpDestinationRectF.offsetTo(0, 0);
|
||||||
mTmpTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
|
mTmpTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
|
||||||
final float cornerRadius = getScaledCornerRadius(sourceBounds, destinationBounds);
|
final float cornerRadius = getScaledCornerRadius(sourceBounds, destinationBounds);
|
||||||
tx.setMatrix(leash, mTmpTransform, mTmpFloat9)
|
tx.setMatrix(leash, mTmpTransform, mTmpFloat9)
|
||||||
.setPosition(leash, mTmpDestinationRectF.left, mTmpDestinationRectF.top)
|
.setPosition(leash, positionX, positionY)
|
||||||
.setCornerRadius(leash, cornerRadius);
|
.setCornerRadius(leash, cornerRadius);
|
||||||
return new PictureInPictureSurfaceTransaction(
|
return new PictureInPictureSurfaceTransaction(
|
||||||
mTmpDestinationRectF.left, mTmpDestinationRectF.top,
|
positionX, positionY, mTmpFloat9, 0 /* rotation */, cornerRadius, sourceBounds);
|
||||||
mTmpFloat9, 0 /* rotation */, cornerRadius, sourceBounds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PictureInPictureSurfaceTransaction scale(
|
public PictureInPictureSurfaceTransaction scale(
|
||||||
@@ -61,6 +63,7 @@ public class PipSurfaceTransactionHelper {
|
|||||||
float degree, float positionX, float positionY) {
|
float degree, float positionX, float positionY) {
|
||||||
mTmpSourceRectF.set(sourceBounds);
|
mTmpSourceRectF.set(sourceBounds);
|
||||||
mTmpDestinationRectF.set(destinationBounds);
|
mTmpDestinationRectF.set(destinationBounds);
|
||||||
|
mTmpDestinationRectF.offsetTo(0, 0);
|
||||||
mTmpTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
|
mTmpTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
|
||||||
mTmpTransform.postRotate(degree, 0, 0);
|
mTmpTransform.postRotate(degree, 0, 0);
|
||||||
final float cornerRadius = getScaledCornerRadius(sourceBounds, destinationBounds);
|
final float cornerRadius = getScaledCornerRadius(sourceBounds, destinationBounds);
|
||||||
|
|||||||
Reference in New Issue
Block a user