Guilherme Delgado
05/02/2022, 9:01 PMandroid.graphics.Camera
equivalent (for 3D operations) so we can perform code like this:
val matrix = android.graphics.Matrix() //we have androidx.compose.ui.graphics.Matrix
val camera = Camera()
drawScope.drawIntoCanvas { canvas ->
//camera transformations like camera.rotateZ, etc..
camera.getMatrix(matrix)
matrix.preTranslate(-x, -y)
matrix.postTranslate(x, y)
canvas.save()
canvas.nativeCanvas.concat(matrix)
drawScope.draw...
canvas.restore()
}
Thanks.Michael Paus
05/03/2022, 9:34 AMGuilherme Delgado
05/03/2022, 9:57 AMMichael Paus
05/03/2022, 10:43 AMGuilherme Delgado
05/03/2022, 10:44 AM//camera transformations like camera.rotateZ, etc..
Michael Paus
05/03/2022, 10:58 AMGuilherme Delgado
05/03/2022, 11:20 AMval matrix = Matrix()
matrix.rotateX(45f)
matrix.rotateY(45f)
matrix.rotateZ(45f)
drawContext.canvas.save()
drawContext.canvas.concat(matrix)
draw...
drawContext.canvas.restore()
Seems to work 🙂Michael Paus
05/03/2022, 11:40 AMdrawScope.withTransform({transform(matrix)}) {
...
}
This should avoid all these concat/save/restore