Skip to content

Commit

Permalink
Revert "Do not measure clipped graphics" (#1285)
Browse files Browse the repository at this point in the history
This reverts commit ac6cd20. It was
incorrect last-minute optimization in #1190

## Testing

Test: See #1190
  • Loading branch information
MatkovIvan committed Apr 18, 2024
1 parent dd22ec6 commit 58dbfc0
Showing 1 changed file with 5 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ package androidx.compose.ui.platform
import org.jetbrains.skia.Rect as SkRect
import androidx.compose.ui.geometry.MutableRect
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.geometry.RoundRect
import androidx.compose.ui.geometry.toRect
import androidx.compose.ui.graphics.Canvas
Expand All @@ -43,7 +42,6 @@ import androidx.compose.ui.graphics.asSkiaPath
import androidx.compose.ui.graphics.nativeCanvas
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.graphics.toSkiaRRect
import androidx.compose.ui.graphics.toSkiaRect
import androidx.compose.ui.node.OwnedLayer
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.IntOffset
Expand Down Expand Up @@ -239,12 +237,11 @@ internal class RenderNodeLayer(

override fun drawLayer(canvas: Canvas) {
if (picture == null) {
val bounds = size.toSize().toRect()
val pictureCanvas = pictureRecorder.beginRecording(
bounds = if (clip) bounds.toSkiaRect() else PICTURE_BOUNDS,
bbh = if (clip) null else bbhFactory
bounds = PICTURE_BOUNDS,
bbh = bbhFactory
)
performDrawLayer(pictureCanvas.asComposeCanvas(), bounds)
performDrawLayer(pictureCanvas.asComposeCanvas())
picture = pictureRecorder.finishRecordingAsPicture()
}

Expand All @@ -263,7 +260,7 @@ internal class RenderNodeLayer(
matrix.timesAssign(inverseMatrix)
}

private fun performDrawLayer(canvas: Canvas, bounds: Rect) {
private fun performDrawLayer(canvas: Canvas) {
if (alpha > 0) {
if (shadowElevation > 0) {
drawShadow(canvas)
Expand All @@ -284,6 +281,7 @@ internal class RenderNodeLayer(
currentRenderEffect != null ||
compositingStrategy == CompositingStrategy.Offscreen
if (requiresLayer) {
val bounds = size.toSize().toRect()
canvas.saveLayer(
bounds,
Paint().apply {
Expand Down

0 comments on commit 58dbfc0

Please sign in to comment.