Updated DrawScope and ContentDrawScope
to extend from CanvasScope to access
the declarative graphics framework
Relnote: "Updated higher level
compose APIs that expose a Canvas to
expose CanvasScope instead. This removes
the need for consumers to maintain their
own Paint objects. For consumers that
still require access to a Canvas
they can use the drawCanvas extension
method which provides a callback to issue
drawing commands with the underlying
Canvas."
Bug: 154835459
Test: re-ran compose tests
Change-Id: I80afdf4c0a648962aa6ef1efc05b1d3b65757094
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
index cd36940..617c0e8 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
@@ -24,11 +24,9 @@
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.ui.core.Modifier
-import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
-import androidx.ui.geometry.toRect
+import androidx.ui.foundation.drawBackground
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.layout.fillMaxSize
import org.junit.FixMethodOrder
import org.junit.Ignore
@@ -154,12 +152,9 @@
}
}
-private fun background(paint: Paint) =
- Modifier.drawBehind { drawRect(size.toRect(), paint) }
-
-private val redBackground = background(Paint().also { it.color = Color.Red })
-private val blackBackground = background(Paint().also { it.color = Color.Black })
-private val yellowBackground = background(Paint().also { it.color = Color.Yellow })
+private val redBackground = Modifier.drawBackground(Color.Red)
+private val blackBackground = Modifier.drawBackground(Color.Black)
+private val yellowBackground = Modifier.drawBackground(Color.Yellow)
private val defaultBackground = yellowBackground
@Model
@@ -173,7 +168,7 @@
Color.Red -> redBackground
Color.Black -> blackBackground
Color.Yellow -> yellowBackground
- else -> background(Paint().also { it.color = color })
+ else -> Modifier.drawBackground(color)
}
}
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
index ade564a..80a364f 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
@@ -18,23 +18,18 @@
import androidx.compose.Composable
import androidx.ui.core.Modifier
-import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
-import androidx.ui.geometry.toRect
+import androidx.ui.foundation.drawBackground
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.layout.Column
import androidx.ui.layout.Row
import androidx.ui.layout.fillMaxHeight
import androidx.ui.layout.fillMaxSize
import androidx.ui.layout.fillMaxWidth
-private fun background(paint: Paint) =
- Modifier.drawBehind { drawRect(size.toRect(), paint) }
-
-val blueBackground = background(Paint().also { it.color = Color.Blue })
-val magentaBackground = background(Paint().also { it.color = Color.Magenta })
-val blackBackground = background(Paint().also { it.color = Color.Black })
+val blueBackground = Modifier.drawBackground(Color.Blue)
+val magentaBackground = Modifier.drawBackground(Color.Magenta)
+val blackBackground = Modifier.drawBackground(Color.Black)
@Composable
fun Terminal(style: Int) {
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
index bc58362..fcad6e0 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
@@ -20,12 +20,10 @@
import androidx.compose.Pivotal
import androidx.compose.key
import androidx.ui.core.Modifier
-import androidx.ui.core.drawBehind
import androidx.ui.foundation.Box
import androidx.ui.foundation.Text
-import androidx.ui.geometry.toRect
+import androidx.ui.foundation.drawBackground
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.layout.Column
import androidx.ui.layout.Row
import androidx.ui.layout.fillMaxHeight
@@ -34,12 +32,9 @@
import androidx.ui.text.TextStyle
import kotlin.random.Random
-private fun background(paint: Paint) =
- Modifier.drawBehind { drawRect(size.toRect(), paint) }
-
-val blackBackground = background(Paint().also { it.color = Color.Black })
-val blueBackground = background(Paint().also { it.color = Color.Black })
-val magentaBackground = background(Paint().also { it.color = Color.Magenta })
+val blackBackground = Modifier.drawBackground(Color.Black)
+val blueBackground = Modifier.drawBackground(Color.Blue)
+val magentaBackground = Modifier.drawBackground(Color.Magenta)
val blackStyle = TextStyle(color = Color.Black)
val blueStyle = TextStyle(color = Color.Blue)
val magentaStyle = TextStyle(color = Color.Magenta)
diff --git a/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt b/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt
index 7803ca8..4598241 100644
--- a/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt
+++ b/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt
@@ -21,7 +21,7 @@
import androidx.ui.core.Modifier
import androidx.ui.foundation.Border
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.ContentGravity
import androidx.ui.foundation.shape.corner.CircleShape
import androidx.ui.graphics.Color
@@ -42,7 +42,7 @@
) {
val innerSize = getInnerSize().value
val density = DensityAmbient.current
- Canvas2(Modifier.preferredSize(innerSize)) {
+ Canvas(Modifier.preferredSize(innerSize)) {
drawOutline(
CircleShape.createOutline(PxSize(Px(size.width), Px(size.height)), density),
Color.Cyan
diff --git a/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt b/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt
index 65fae25..b0db286 100644
--- a/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt
+++ b/ui/integration-tests/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt
@@ -18,7 +18,7 @@
import androidx.compose.Composable
import androidx.ui.core.Modifier
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.graphics.Color
import androidx.ui.graphics.painter.Stroke
import androidx.ui.layout.preferredSize
@@ -30,7 +30,7 @@
override fun emitContent() {
val innerSize = getInnerSize()
val stroke = Stroke()
- Canvas2(Modifier.preferredSize(48.dp)) {
+ Canvas(Modifier.preferredSize(48.dp)) {
drawCircle(Color.Black, size.minDimension, style = stroke)
drawCircle(Color.Black, innerSize.value.value / 2f, center)
}
diff --git a/ui/integration-tests/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt b/ui/integration-tests/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt
index 6dd8fb5..3d138e6 100644
--- a/ui/integration-tests/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt
+++ b/ui/integration-tests/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt
@@ -18,7 +18,7 @@
import androidx.compose.Composable
import androidx.ui.core.Modifier
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.ScrollerPosition
import androidx.ui.foundation.VerticalScroller
import androidx.ui.graphics.Color
@@ -70,7 +70,7 @@
@Composable
fun ColorStripe(red: Int, green: Int, blue: Int) {
- Canvas2(Modifier.preferredSize(45.dp, 5.dp)) {
+ Canvas(Modifier.preferredSize(45.dp, 5.dp)) {
drawRect(Color(red = red, green = green, blue = blue))
}
}
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBarDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBarDemo.kt
index 15804e9..b5eadde 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBarDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBarDemo.kt
@@ -32,7 +32,7 @@
import androidx.ui.core.gesture.pressIndicatorGestureFilter
import androidx.ui.core.gesture.rawDragGestureFilter
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -67,7 +67,7 @@
initState = "start",
toState = "end"
) { state ->
- Canvas2(Modifier.preferredSize(600.dp, 400.dp)) {
+ Canvas(Modifier.preferredSize(600.dp, 400.dp)) {
val rectSize = size * 0.2f
drawRect(Color(1.0f, 0f, 0f, state[alphaKey]), size = rectSize)
@@ -123,7 +123,7 @@
@Composable
fun DrawSeekBar(modifier: Modifier = Modifier, x: Float, clock: ManualAnimationClock) {
- Canvas2(modifier.fillMaxWidth().preferredHeight(60.dp)) {
+ Canvas(modifier.fillMaxWidth().preferredHeight(60.dp)) {
val xConstraint = x.coerceIn(0f, size.width)
clock.clockTimeMillis = (400 * (x / size.width)).toLong().coerceIn(0, 399)
// draw bar
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrollingDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrollingDemo.kt
index 785608f..970ca10 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrollingDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrollingDemo.kt
@@ -27,7 +27,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.gesture.DragObserver
import androidx.ui.core.gesture.rawDragGestureFilter
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -77,7 +77,7 @@
}
})
- Canvas2(gesture.fillMaxWidth().preferredHeight(400.dp)) {
+ Canvas(gesture.fillMaxWidth().preferredHeight(400.dp)) {
val width = size.width / 2f
val scroll = animScroll.value + width / 2
itemWidth.value = width
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/GestureBasedAnimationDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/GestureBasedAnimationDemo.kt
index e23ff6e..17872f7 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/GestureBasedAnimationDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/GestureBasedAnimationDemo.kt
@@ -24,7 +24,7 @@
import androidx.ui.animation.Transition
import androidx.ui.core.Modifier
import androidx.ui.core.gesture.pressIndicatorGestureFilter
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
import androidx.ui.graphics.Color
@@ -72,7 +72,7 @@
@Composable
private fun ScaledColorRect(modifier: Modifier = Modifier, scale: Float, color: Color) {
- Canvas2(modifier.fillMaxSize()) {
+ Canvas(modifier.fillMaxSize()) {
drawRect(
color,
topLeft = Offset(center.dx - halfSize * scale, center.dy - halfSize * scale),
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/MultiDimensionalAnimationDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/MultiDimensionalAnimationDemo.kt
index dbdd101..5b9d4ee 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/MultiDimensionalAnimationDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/MultiDimensionalAnimationDemo.kt
@@ -25,7 +25,7 @@
import androidx.ui.animation.RectPropKey
import androidx.ui.animation.Transition
import androidx.ui.core.Modifier
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Clickable
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Rect
@@ -53,7 +53,7 @@
},
toState = currentState.value
) { state ->
- Canvas2(modifier = Modifier.fillMaxSize()) {
+ Canvas(modifier = Modifier.fillMaxSize()) {
width.value = size.width
height.value = size.height
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationDemo.kt
index c4c6297..1eebd5e 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationDemo.kt
@@ -25,7 +25,7 @@
import androidx.ui.core.Alignment
import androidx.ui.core.Modifier
import androidx.ui.core.gesture.tapGestureFilter
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.graphics.Color
import androidx.ui.graphics.painter.rotate
@@ -61,7 +61,7 @@
definition = definition,
toState = state.value
) { state ->
- Canvas2(Modifier.preferredSize(100.dp)) {
+ Canvas(Modifier.preferredSize(100.dp)) {
rotate(state[rotation], 0.0f, 0.0f) {
drawRect(Color(0xFF00FF00))
}
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrollingDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrollingDemo.kt
index d987ca9..cd7cd01 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrollingDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrollingDemo.kt
@@ -26,7 +26,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.gesture.DragObserver
import androidx.ui.core.gesture.rawDragGestureFilter
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -67,7 +67,7 @@
})
}
})
- Canvas2(gesture.fillMaxWidth().preferredHeight(400.dp)) {
+ Canvas(gesture.fillMaxWidth().preferredHeight(400.dp)) {
itemWidth.value = size.width / 2f
if (isFlinging.value) {
// Figure out what position to spring back to
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateAnimationWithInterruptionsDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateAnimationWithInterruptionsDemo.kt
index a7313a0..cc0cdce 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateAnimationWithInterruptionsDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateAnimationWithInterruptionsDemo.kt
@@ -27,7 +27,7 @@
import androidx.ui.animation.Transition
import androidx.ui.core.Modifier
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.drawBackground
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -96,7 +96,7 @@
private fun ColorRectState(state: TransitionState) {
val color = state[background]
val scaleY = state[y]
- Canvas2(Modifier.fillMaxSize().drawBackground(color = color)) {
+ Canvas(Modifier.fillMaxSize().drawBackground(color = color)) {
drawRect(
Color(alpha = 255, red = 255, green = 255, blue = 255),
topLeft = Offset(100f, 0f),
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleDemo.kt
index e6013b5..a0212fd 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleDemo.kt
@@ -30,7 +30,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.gesture.pressIndicatorGestureFilter
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.geometry.Offset
import androidx.ui.graphics.Color
import androidx.ui.layout.fillMaxSize
@@ -68,7 +68,7 @@
@Composable
private fun RippleRectFromState(modifier: Modifier = Modifier, state: TransitionState) {
- Canvas2(modifier.fillMaxSize()) {
+ Canvas(modifier.fillMaxSize()) {
// TODO: file bug for when "down" is not a file level val, it's not memoized correctly
drawCircle(
Color(
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismissDemo.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismissDemo.kt
index 41ee964..86cbf9f 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismissDemo.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismissDemo.kt
@@ -30,7 +30,7 @@
import androidx.ui.core.gesture.DragObserver
import androidx.ui.core.gesture.rawDragGestureFilter
import androidx.ui.core.onPositioned
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -122,7 +122,7 @@
val heightDp = with(DensityAmbient.current) { height.toDp() }
- Canvas2(
+ Canvas(
modifier.fillMaxWidth()
.preferredHeight(heightDp)
.onPositioned { coordinates ->
diff --git a/ui/ui-core/api/0.1.0-dev11.txt b/ui/ui-core/api/0.1.0-dev11.txt
index 8826b33..337681d 100644
--- a/ui/ui-core/api/0.1.0-dev11.txt
+++ b/ui/ui-core/api/0.1.0-dev11.txt
@@ -234,8 +234,9 @@
method public androidx.ui.unit.PxPosition getPositionChange();
}
- public interface ContentDrawScope extends androidx.ui.core.DrawScope {
- method public void drawContent();
+ public abstract class ContentDrawScope extends androidx.ui.core.DrawScope {
+ ctor public ContentDrawScope();
+ method public abstract void drawContent();
}
public interface ContentScale {
@@ -351,11 +352,10 @@
property public final kotlin.jvm.functions.Function3<androidx.ui.core.ContentDrawScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
}
- public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
- method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public long getSize();
+ public abstract class DrawScope extends androidx.ui.graphics.painter.CanvasScope implements androidx.ui.unit.Density {
+ ctor public DrawScope();
+ method public abstract androidx.ui.core.LayoutDirection getLayoutDirection();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/current.txt b/ui/ui-core/api/current.txt
index 8826b33..337681d 100644
--- a/ui/ui-core/api/current.txt
+++ b/ui/ui-core/api/current.txt
@@ -234,8 +234,9 @@
method public androidx.ui.unit.PxPosition getPositionChange();
}
- public interface ContentDrawScope extends androidx.ui.core.DrawScope {
- method public void drawContent();
+ public abstract class ContentDrawScope extends androidx.ui.core.DrawScope {
+ ctor public ContentDrawScope();
+ method public abstract void drawContent();
}
public interface ContentScale {
@@ -351,11 +352,10 @@
property public final kotlin.jvm.functions.Function3<androidx.ui.core.ContentDrawScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
}
- public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
- method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public long getSize();
+ public abstract class DrawScope extends androidx.ui.graphics.painter.CanvasScope implements androidx.ui.unit.Density {
+ ctor public DrawScope();
+ method public abstract androidx.ui.core.LayoutDirection getLayoutDirection();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt b/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt
index a5fd02b..7d9bf17 100644
--- a/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt
+++ b/ui/ui-core/api/public_plus_experimental_0.1.0-dev11.txt
@@ -234,8 +234,9 @@
method public androidx.ui.unit.PxPosition getPositionChange();
}
- public interface ContentDrawScope extends androidx.ui.core.DrawScope {
- method public void drawContent();
+ public abstract class ContentDrawScope extends androidx.ui.core.DrawScope {
+ ctor public ContentDrawScope();
+ method public abstract void drawContent();
}
public interface ContentScale {
@@ -352,11 +353,10 @@
property public final kotlin.jvm.functions.Function3<androidx.ui.core.ContentDrawScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
}
- public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
- method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public long getSize();
+ public abstract class DrawScope extends androidx.ui.graphics.painter.CanvasScope implements androidx.ui.unit.Density {
+ ctor public DrawScope();
+ method public abstract androidx.ui.core.LayoutDirection getLayoutDirection();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/public_plus_experimental_current.txt b/ui/ui-core/api/public_plus_experimental_current.txt
index a5fd02b..7d9bf17 100644
--- a/ui/ui-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-core/api/public_plus_experimental_current.txt
@@ -234,8 +234,9 @@
method public androidx.ui.unit.PxPosition getPositionChange();
}
- public interface ContentDrawScope extends androidx.ui.core.DrawScope {
- method public void drawContent();
+ public abstract class ContentDrawScope extends androidx.ui.core.DrawScope {
+ ctor public ContentDrawScope();
+ method public abstract void drawContent();
}
public interface ContentScale {
@@ -352,11 +353,10 @@
property public final kotlin.jvm.functions.Function3<androidx.ui.core.ContentDrawScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
}
- public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
- method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public long getSize();
+ public abstract class DrawScope extends androidx.ui.graphics.painter.CanvasScope implements androidx.ui.unit.Density {
+ ctor public DrawScope();
+ method public abstract androidx.ui.core.LayoutDirection getLayoutDirection();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/restricted_0.1.0-dev11.txt b/ui/ui-core/api/restricted_0.1.0-dev11.txt
index 8dfbd96..3e4b4ba 100644
--- a/ui/ui-core/api/restricted_0.1.0-dev11.txt
+++ b/ui/ui-core/api/restricted_0.1.0-dev11.txt
@@ -240,8 +240,9 @@
method public androidx.ui.unit.PxPosition getPositionChange();
}
- public interface ContentDrawScope extends androidx.ui.core.DrawScope {
- method public void drawContent();
+ public abstract class ContentDrawScope extends androidx.ui.core.DrawScope {
+ ctor public ContentDrawScope();
+ method public abstract void drawContent();
}
public interface ContentScale {
@@ -358,11 +359,10 @@
property public final kotlin.jvm.functions.Function3<androidx.ui.core.ContentDrawScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
}
- public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
- method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public long getSize();
+ public abstract class DrawScope extends androidx.ui.graphics.painter.CanvasScope implements androidx.ui.unit.Density {
+ ctor public DrawScope();
+ method public abstract androidx.ui.core.LayoutDirection getLayoutDirection();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/api/restricted_current.txt b/ui/ui-core/api/restricted_current.txt
index 8dfbd96..3e4b4ba 100644
--- a/ui/ui-core/api/restricted_current.txt
+++ b/ui/ui-core/api/restricted_current.txt
@@ -240,8 +240,9 @@
method public androidx.ui.unit.PxPosition getPositionChange();
}
- public interface ContentDrawScope extends androidx.ui.core.DrawScope {
- method public void drawContent();
+ public abstract class ContentDrawScope extends androidx.ui.core.DrawScope {
+ ctor public ContentDrawScope();
+ method public abstract void drawContent();
}
public interface ContentScale {
@@ -358,11 +359,10 @@
property public final kotlin.jvm.functions.Function3<androidx.ui.core.ContentDrawScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
}
- public interface DrawScope extends androidx.ui.graphics.Canvas androidx.ui.unit.Density {
- method public androidx.ui.core.LayoutDirection getLayoutDirection();
- method public long getSize();
+ public abstract class DrawScope extends androidx.ui.graphics.painter.CanvasScope implements androidx.ui.unit.Density {
+ ctor public DrawScope();
+ method public abstract androidx.ui.core.LayoutDirection getLayoutDirection();
property public abstract androidx.ui.core.LayoutDirection layoutDirection;
- property public abstract long size;
}
public final class DrawShadowKt {
diff --git a/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/DeclarativeGraphicsDemo.kt b/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/DeclarativeGraphicsDemo.kt
index e6a1ca6..dd5e0db 100644
--- a/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/DeclarativeGraphicsDemo.kt
+++ b/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/DeclarativeGraphicsDemo.kt
@@ -18,7 +18,7 @@
import androidx.compose.Composable
import androidx.ui.core.Alignment
import androidx.ui.core.Modifier
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.graphics.Color
import androidx.ui.graphics.painter.inset
import androidx.ui.graphics.painter.rotate
@@ -35,7 +35,7 @@
* Demo that shows how to leverage CanvasScope to draw 4 rectangular quadrants
* inset by a given dimension with a diamond drawn within each of the quadrants
*/
- Canvas2(modifier =
+ Canvas(modifier =
Modifier.fillMaxSize()
.wrapContentSize(Alignment.Center)
.preferredSize(120.dp, 120.dp)
diff --git a/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt b/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
index 71d2382..f5d3710 100644
--- a/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
+++ b/ui/ui-core/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
@@ -35,6 +35,7 @@
import androidx.ui.foundation.drawBorder
import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
+import androidx.ui.graphics.painter.clipRect
import androidx.ui.graphics.withSave
import androidx.ui.layout.Column
import androidx.ui.layout.fillMaxWidth
@@ -121,9 +122,8 @@
val ClipModifier = object : DrawModifier {
override fun ContentDrawScope.draw() {
- withSave {
- clipRect(size.toRect())
- drawContent()
+ clipRect {
+ this@draw.drawContent()
}
}
}
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
index 3b911fd..b86c701 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
@@ -66,13 +66,14 @@
import androidx.ui.framework.test.TestActivity
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Rect
-import androidx.ui.geometry.toRect
+import androidx.ui.geometry.Size
import androidx.ui.graphics.Color
import androidx.ui.graphics.Outline
-import androidx.ui.graphics.Paint
-import androidx.ui.graphics.PaintingStyle
import androidx.ui.graphics.Path
import androidx.ui.graphics.Shape
+import androidx.ui.graphics.painter.Stroke
+import androidx.ui.graphics.painter.clipRect
+import androidx.ui.graphics.painter.translate
import androidx.ui.layout.ltr
import androidx.ui.layout.offset
import androidx.ui.layout.padding
@@ -85,7 +86,6 @@
import androidx.ui.unit.ipx
import androidx.ui.unit.max
import androidx.ui.unit.min
-import androidx.ui.unit.px
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
@@ -347,37 +347,28 @@
val contentDrawing = object : DrawModifier {
override fun ContentDrawScope.draw() {
// Fill the space with the outerColor
- val paint = Paint()
- paint.color = model.outerColor
- drawRect(size.toRect(), paint)
- nativeCanvas.save()
+ drawRect(model.outerColor)
val offset = size.width / 3
// clip drawing to the inner rectangle
- clipRect(Rect(offset, offset, offset * 2, offset * 2))
- drawContent()
+ clipRect(offset, offset, offset * 2, offset * 2) {
+ this@draw.drawContent()
- // Fill bottom half with innerColor -- should be clipped
- paint.color = model.innerColor
- val paintRect = Rect(
- 0f, size.height / 2f,
- size.width, size.height
- )
- drawRect(paintRect, paint)
- // restore the canvas
- nativeCanvas.restore()
+ // Fill bottom half with innerColor -- should be clipped
+ drawRect(model.innerColor,
+ topLeft = Offset(0f, size.height / 2f),
+ size = Size(size.width, size.height / 2f)
+ )
+ }
}
}
val paddingContent = Modifier.drawBehind {
// Fill top half with innerColor -- should be clipped
drawLatch.countDown()
- val paint = Paint()
- paint.color = model.innerColor
- val paintRect = Rect(
- 0f, 0f, size.width,
- size.height / 2f
+ drawRect(
+ model.innerColor,
+ size = Size(size.width, size.height / 2f)
)
- drawRect(paintRect, paint)
}
Padding(size = (model.size * 3), modifier = contentDrawing + paddingContent) {
}
@@ -465,18 +456,14 @@
activity.setContent {
Layout(
modifier = Modifier.drawBehind {
- val paint = Paint()
- paint.color = model.outerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.outerColor)
},
children = {
AtLeastSize(
size = model.size,
modifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = model.innerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.innerColor)
}
)
}, measureBlock = { measurables, constraints, _ ->
@@ -682,9 +669,7 @@
activity.setContent {
AtLeastSize(size = 30.ipx, modifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = outerColor
- drawRect(size.toRect(), paint)
+ drawRect(outerColor)
}) {
AtLeastSize(size = 30.ipx) {
if (drawChild.value) {
@@ -693,9 +678,7 @@
size = 10.ipx,
modifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = innerColor
- drawRect(size.toRect(), paint)
+ drawRect(innerColor)
}
)
}
@@ -726,9 +709,7 @@
activity.setContent {
AtLeastSize(size = 30.ipx, modifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = outerColor
- drawRect(size.toRect(), paint)
+ drawRect(outerColor)
}) {
Padding(size = 20.ipx) {
if (drawChild.value) {
@@ -736,9 +717,7 @@
size = 20.ipx,
modifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = innerColor
- drawRect(size.toRect(), paint)
+ drawRect(innerColor)
}
)
}
@@ -1977,12 +1956,12 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
val colorModifier = Modifier.drawBehind {
- val paint = Paint()
- paint.style = PaintingStyle.fill
- paint.color = outerColor
- drawRect(size.toRect(), paint)
- paint.color = innerColor
- drawRect(Rect(10f, 10f, 20f, 20f), paint)
+ drawRect(outerColor)
+ drawRect(
+ innerColor,
+ topLeft = Offset(10f, 10f),
+ size = Size(10f, 10f)
+ )
drawLatch.countDown()
}
FixedSize(30.ipx, colorModifier)
@@ -2039,11 +2018,10 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
val drawAndOffset = Modifier.drawWithContent {
- val paint = Paint().apply { color = outerColor }
- drawRect(size.toRect(), paint)
- translate(10f, 10f)
- drawContent()
- translate(-10f, -10f)
+ drawRect(outerColor)
+ translate(10f, 10f) {
+ this@drawWithContent.drawContent()
+ }
}
FixedSize(30.ipx, drawAndOffset) {
FixedSize(
@@ -2066,16 +2044,14 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
FixedSize(30.ipx, modifier = Modifier.drawBehind {
- drawRect(size.toRect(), Paint().apply { color = green })
+ drawRect(green)
}) {
FixedSize(
model.offset,
modifier = AlignTopLeft.drawLayer()
.drawBehind {
drawLatch.countDown()
- drawRect(
- size.toRect(),
- Paint().apply { color = blue })
+ drawRect(blue)
}
) {
}
@@ -2267,11 +2243,11 @@
clipToOutline = false
)
.drawBehind {
- val paint = Paint().apply {
- color = Color.Blue
- style = PaintingStyle.fill
- }
- drawRect(Rect(-10f, -10f, 20f, 20f), paint)
+ drawRect(
+ Color.Blue,
+ topLeft = Offset(-10f, -10f),
+ size = Size(30.0f, 30.0f)
+ )
}
.background(Color.Red)
.latch(drawLatch)
@@ -2333,13 +2309,11 @@
Modifier.drawBehind { outerLatch.countDown() }.drawLayer()
) {
FixedSize(10.ipx, Modifier.drawBehind {
- val paint = Paint().apply {
- color = Color.Blue
- }
drawLine(
+ Color.Blue,
Offset(model.offset.value.toFloat(), 0f),
Offset(0f, model.offset.value.toFloat()),
- paint
+ stroke = Stroke(width = 0.0f) // 0.0f represents hairline stroke
)
drawLatch.countDown()
})
@@ -2420,15 +2394,11 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
Padding(size = model.size, modifier = Modifier.drawBehind {
- val paint = Paint()
- paint.color = model.outerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.outerColor)
}) {
AtLeastSize(size = model.size, modifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = model.innerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.innerColor)
})
}
}
@@ -2489,21 +2459,16 @@
activityTestRule.runOnUiThreadIR {
activity.setContent {
val fillColorModifier = Modifier.drawBehind {
- drawRect(size.toRect(), Paint().apply {
- this.color = model.innerColor
- })
+ drawRect(model.innerColor)
drawLatch.countDown()
}
val innerDrawWithContentModifier = drawWithContent {
- val paint = Paint()
- paint.color = model.outerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.outerColor)
val start = model.size.value.toFloat()
val end = start * 2
- nativeCanvas.save()
- clipRect(Rect(start, start, end, end))
- drawContent()
- nativeCanvas.restore()
+ clipRect(start, start, end, end) {
+ this@drawWithContent.drawContent()
+ }
}
AtLeastSize(size = (model.size * 3), modifier = innerDrawWithContentModifier) {
AtLeastSize(size = (model.size * 3), modifier = fillColorModifier)
@@ -2532,9 +2497,7 @@
@Composable
private fun fillColor(color: Color, doCountDown: Boolean = true): Modifier =
Modifier.drawBehind {
- drawRect(size.toRect(), Paint().apply {
- this.color = color
- })
+ drawRect(color)
if (doCountDown) {
drawLatch.countDown()
}
@@ -2546,9 +2509,7 @@
isInner: Boolean,
doCountDown: Boolean = true
): Modifier = Modifier.drawBehind {
- drawRect(size.toRect(), Paint().apply {
- this.color = if (isInner) squareModel.innerColor else squareModel.outerColor
- })
+ drawRect(if (isInner) squareModel.innerColor else squareModel.outerColor)
if (doCountDown) {
drawLatch.countDown()
}
@@ -3053,22 +3014,14 @@
}
fun Modifier.background(color: Color) = drawBehind {
- val paint = Paint().apply { this.color = color }
- drawRect(size.toRect(), paint)
+ drawRect(color)
}
fun Modifier.background(model: SquareModel, isInner: Boolean) = drawBehind {
- val paint = Paint().apply {
- this.color = if (isInner) model.innerColor else model.outerColor
- }
- drawRect(size.toRect(), paint)
+ drawRect(if (isInner) model.innerColor else model.outerColor)
}
-class CombinedModifier(color: Color) : LayoutModifier, DrawModifier {
- val paint = Paint().also { paint ->
- paint.color = color
- paint.style = PaintingStyle.fill
- }
+class CombinedModifier(val color: Color) : LayoutModifier, DrawModifier {
override fun MeasureScope.measure(
measurable: Measurable,
@@ -3085,7 +3038,7 @@
}
override fun ContentDrawScope.draw() {
- drawRect(size.toRect(), paint)
+ drawRect(color)
}
}
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
index 3bb889d..ba62942 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
@@ -29,9 +29,11 @@
import androidx.ui.core.drawBehind
import androidx.ui.core.setContent
import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.Offset
import androidx.ui.geometry.RRect
import androidx.ui.geometry.Radius
import androidx.ui.geometry.Rect
+import androidx.ui.geometry.Size
import androidx.ui.graphics.Color
import androidx.ui.graphics.Outline
import androidx.ui.graphics.Paint
@@ -369,14 +371,10 @@
// is not causing invalidation as the DrawModifier didn't change
val drawCallback: DrawScope.() -> Unit = {
drawRect(
- Rect(
- -100f,
- -100f,
- size.width + 100f,
- size.height + 100f
- ), Paint().apply {
- this.color = Color.Cyan
- })
+ Color.Cyan,
+ topLeft = Offset(-100f, -100f),
+ size = Size(size.width + 200f, size.height + 200f)
+ )
drawLatch.countDown()
}
@@ -447,14 +445,10 @@
private fun FillColor(color: Color): Modifier {
return Modifier.drawBehind {
drawRect(
- Rect(
- -100f,
- -100f,
- size.width + 100f,
- size.height + 100f
- ), Paint().apply {
- this.color = color
- })
+ color,
+ topLeft = Offset(-100f, -100f),
+ size = Size(size.width + 200f, size.height + 200f)
+ )
drawLatch.countDown()
}
}
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt
index 8ac5098..5ca90fc 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawReorderingTest.kt
@@ -37,12 +37,9 @@
import androidx.ui.core.setContent
import androidx.ui.core.zIndex
import androidx.ui.framework.test.TestActivity
-import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.unit.IntPx
import androidx.ui.unit.ipx
-import androidx.ui.unit.toRect
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
@@ -649,9 +646,7 @@
color: State<Color>
) = drawBehind {
if (color.value != Color.Transparent) {
- drawRect(size.toRect(), Paint().apply {
- this.color = color.value
- })
+ drawRect(color.value)
}
}
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
index b9459aa..82a3b22 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
@@ -30,10 +30,8 @@
import androidx.ui.core.drawShadow
import androidx.ui.core.setContent
import androidx.ui.framework.test.TestActivity
-import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Outline
-import androidx.ui.graphics.Paint
import androidx.ui.graphics.Shape
import androidx.ui.graphics.luminance
import androidx.ui.unit.Density
@@ -222,9 +220,7 @@
}
private fun background(color: Color) = Modifier.drawBehind {
- drawRect(size.toRect(), Paint().apply {
- this.color = color
- })
+ drawRect(color)
drawLatch.countDown()
}
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt
index 504dfb2..f06dad5 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/LayerTouchTransformTest.kt
@@ -30,9 +30,7 @@
import androidx.ui.core.drawBehind
import androidx.ui.core.drawLayer
import androidx.ui.core.gesture.pressIndicatorGestureFilter
-import androidx.ui.geometry.Rect
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.graphics.toArgb
import androidx.ui.layout.fillMaxSize
import androidx.ui.layout.offset
@@ -84,15 +82,7 @@
}
val background = Modifier.drawBehind {
- drawRect(
- Rect.fromLTWH(
- 0.0f,
- 0.0f,
- size.width,
- size.height
- ),
- Paint().apply { this.color = Color.Gray }
- )
+ drawRect(Color.Gray)
}
val latchDrawModifier = Modifier.drawBehind { latch?.countDown() }
@@ -117,16 +107,7 @@
transformOrigin =
TransformOrigin(1.0f, 1.0f)
).drawBehind {
- val paint = Paint().apply { this.color = color }
- drawRect(
- Rect.fromLTWH(
- 0.0f,
- 0.0f,
- size.width,
- size.height
- ),
- paint
- )
+ drawRect(color)
}
.plus(latchDrawModifier)
.preferredSize(boxDp)
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt
index 2e1c0ce..d505357 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/ParentDataModifierTest.kt
@@ -27,11 +27,8 @@
import androidx.ui.core.setContent
import androidx.ui.core.tag
import androidx.ui.framework.test.TestActivity
-import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.unit.ipx
-import androidx.ui.unit.toRect
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
@@ -151,9 +148,7 @@
@Composable
fun SimpleDrawChild(drawLatch: CountDownLatch) {
AtLeastSize(size = 10.ipx, modifier = Modifier.drawBehind {
- val paint = Paint()
- paint.color = Color(0xFF008000)
- drawRect(size.toRect(), paint)
+ drawRect(Color(0xFF008000))
drawLatch.countDown()
}) {}
}
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
index 1f9bd7b..0791514 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
@@ -48,9 +48,7 @@
import androidx.ui.core.paint
import androidx.ui.core.setContent
import androidx.ui.framework.test.TestActivity
-import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.graphics.vector.VectorPainter
import androidx.ui.layout.Constraints
import androidx.ui.layout.DpConstraints
@@ -63,7 +61,6 @@
import androidx.ui.unit.PxPosition
import androidx.ui.unit.dp
import androidx.ui.unit.ipx
-import androidx.ui.unit.toRect
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
@@ -152,16 +149,12 @@
activity.setContent {
WithConstraints {
val outerModifier = Modifier.drawBehind {
- val paint = Paint()
- paint.color = model.outerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.outerColor)
}
Layout(children = {
val innerModifier = Modifier.drawBehind {
drawLatch.countDown()
- val paint = Paint()
- paint.color = model.innerColor
- drawRect(size.toRect(), paint)
+ drawRect(model.innerColor)
}
Layout(
children = {},
@@ -808,9 +801,7 @@
private fun countdownLatchBackgroundModifier(color: Color) =
Modifier.drawBehind {
- val paint = Paint()
- paint.color = color
- drawRect(size.toRect(), paint)
+ drawRect(color)
drawLatch.countDown()
}
@@ -916,9 +907,7 @@
}
fun backgroundModifier(color: Color) = Modifier.drawBehind {
- val paint = Paint()
- paint.color = color
- drawRect(size.toRect(), paint)
+ drawRect(color)
}
val infiniteConstraints = object : LayoutModifier {
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt b/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
index 385dc86..a6092c9 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
@@ -25,9 +25,7 @@
import androidx.ui.core.paint
import androidx.ui.core.test.AtLeastSize
import androidx.ui.core.test.R
-import androidx.ui.geometry.Rect
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.res.loadVectorResource
import java.util.concurrent.CountDownLatch
@@ -62,15 +60,7 @@
}
val WhiteBackground = Modifier.drawBehind {
- drawRect(
- Rect.fromLTWH(
- 0.0f,
- 0.0f,
- size.width,
- size.height
- ),
- Paint().apply { this.color = Color.White }
- )
+ drawRect(Color.White)
}
fun toggle() {
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt b/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt
index 9e79d3d..f330578 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/AndroidOwner.kt
@@ -68,6 +68,7 @@
import androidx.ui.focus.FocusDetailedState.Inactive
import androidx.ui.geometry.Size
import androidx.ui.graphics.Canvas
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.input.TextInputService
import androidx.ui.input.TextInputServiceAndroid
import androidx.ui.savedinstancestate.UiSavedStateRegistry
@@ -534,16 +535,17 @@
val receiver: DrawScopeImpl
val size = Size(parentSize.width.value, parentSize.height.value)
if (ownerData == null) {
- receiver = DrawScopeImpl(node, canvas, size, density)
+ receiver = DrawScopeImpl(node, density)
node.ownerData = receiver
} else {
receiver = ownerData as DrawScopeImpl
receiver.childDrawn = false
- receiver.canvas = canvas
- receiver.size = size
receiver.currentDensity = density
}
- onPaintWithChildren(receiver, canvas, parentSize)
+ receiver.draw(canvas, size) {
+ onPaintWithChildren(receiver, canvas, parentSize)
+ }
+
if (!receiver.childDrawn) {
with(receiver) {
with(density) {
@@ -864,10 +866,8 @@
private inner class DrawScopeImpl(
private val drawNode: DrawNode,
- var canvas: Canvas,
- override var size: Size,
var currentDensity: Density
- ) : Canvas by canvas, Density by currentDensity, ContentDrawScope {
+ ) : Density by currentDensity, ContentDrawScope() {
internal var childDrawn = false
// Draw composable does not support Rtl and will be removed soon anyway.
// The only place where Draw is in use is Table which will be updated anyway b/150276337.
@@ -878,9 +878,10 @@
throw IllegalStateException("Cannot call drawContent() twice within Draw element")
}
childDrawn = true
- val pxSize = PxSize(Px(size.width), Px(size.height))
- drawNode.visitChildren { child ->
- callDraw(canvas, child, pxSize)
+ drawCanvas { canvas, pxSize ->
+ drawNode.visitChildren { child ->
+ callDraw(canvas, child, pxSize)
+ }
}
}
}
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt b/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt
index 66522ea..1d3a7b8 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/ContentDrawScope.kt
@@ -15,8 +15,7 @@
*/
package androidx.ui.core
-import androidx.ui.geometry.Size
-import androidx.ui.graphics.Canvas
+import androidx.ui.graphics.painter.CanvasScope
import androidx.ui.unit.Density
/**
@@ -24,16 +23,12 @@
* @see Modifier.drawBehind
* @see androidx.ui.foundation.Canvas
*/
-interface DrawScope : Canvas, Density {
- /**
- * The size of layout being drawn in.
- */
- val size: Size
+abstract class DrawScope() : CanvasScope(), Density {
/**
* The layout direction of the layout being drawn in.
*/
- val layoutDirection: LayoutDirection
+ abstract val layoutDirection: LayoutDirection
}
/**
@@ -43,9 +38,9 @@
*
* @see DrawModifier
*/
-interface ContentDrawScope : DrawScope {
+abstract class ContentDrawScope() : DrawScope() {
/**
* Causes child drawing operations to run during the `onPaint` lambda.
*/
- fun drawContent()
+ abstract fun drawContent()
}
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt b/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt
index 0b7284f..6d555cb 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/ModifiedDrawNode.kt
@@ -16,42 +16,38 @@
package androidx.ui.core
-import androidx.ui.geometry.Offset
-import androidx.ui.geometry.Rect
import androidx.ui.geometry.Size
-import androidx.ui.graphics.BlendMode
import androidx.ui.graphics.Canvas
-import androidx.ui.graphics.ClipOp
-import androidx.ui.graphics.ImageAsset
-import androidx.ui.graphics.NativeCanvas
-import androidx.ui.graphics.Paint
-import androidx.ui.graphics.Path
-import androidx.ui.graphics.Picture
-import androidx.ui.graphics.PointMode
-import androidx.ui.graphics.Vertices
-import androidx.ui.graphics.vectormath.Matrix4
+import androidx.ui.graphics.painter.drawCanvas
internal class ModifiedDrawNode(
wrapped: LayoutNodeWrapper,
drawModifier: DrawModifier
) : DelegatingLayoutNodeWrapper<DrawModifier>(wrapped, drawModifier) {
private val drawScope = DrawScopeImpl()
- private var canvas: Canvas? = null
// This is not thread safe
override fun draw(canvas: Canvas) {
withPositionTranslation(canvas) {
- this.canvas = canvas
- with(drawScope) {
- with(modifier) { draw() }
+ val size = Size(
+ measuredSize.width.value.toFloat(),
+ measuredSize.height.value.toFloat()
+ )
+ drawScope.draw(canvas, size) {
+ with(drawScope) {
+ with(modifier) {
+ draw()
+ }
+ }
}
- this.canvas = null
}
}
- inner class DrawScopeImpl() : ContentDrawScope {
+ inner class DrawScopeImpl() : ContentDrawScope() {
override fun drawContent() {
- wrapped.draw(canvas!!)
+ drawCanvas { canvas, _ ->
+ wrapped.draw(canvas)
+ }
}
override val density: Float
@@ -60,108 +56,7 @@
override val fontScale: Float
get() = layoutNode.requireOwner().density.fontScale
- override val size: Size
- get() {
- val pxSize = this@ModifiedDrawNode.measuredSize
- return Size(pxSize.width.value.toFloat(), pxSize.height.value.toFloat())
- }
-
- override val nativeCanvas: NativeCanvas
- get() = canvas!!.nativeCanvas
-
override val layoutDirection: LayoutDirection
get() = this@ModifiedDrawNode.measureScope.layoutDirection
-
- override fun save() = canvas!!.save()
-
- override fun restore() = canvas!!.restore()
-
- override fun saveLayer(bounds: Rect, paint: Paint) = canvas!!.saveLayer(bounds, paint)
-
- override fun translate(dx: Float, dy: Float) = canvas!!.translate(dx, dy)
-
- override fun scale(sx: Float, sy: Float) = canvas!!.scale(sx, sy)
-
- override fun rotate(degrees: Float) = canvas!!.rotate(degrees)
-
- override fun skew(sx: Float, sy: Float) = canvas!!.skew(sx, sy)
-
- override fun concat(matrix4: Matrix4) = canvas!!.concat(matrix4)
-
- override fun clipRect(
- left: Float,
- top: Float,
- right: Float,
- bottom: Float,
- clipOp: ClipOp
- ) = canvas!!.clipRect(left, top, right, bottom, clipOp)
-
- override fun clipPath(path: Path, clipOp: ClipOp) = canvas!!.clipPath(path, clipOp)
-
- override fun drawLine(p1: Offset, p2: Offset, paint: Paint) =
- canvas!!.drawLine(p1, p2, paint)
-
- override fun drawRect(rect: Rect, paint: Paint) = canvas!!.drawRect(rect, paint)
-
- override fun drawRect(left: Float, top: Float, right: Float, bottom: Float, paint: Paint) =
- canvas!!.drawRect(left, top, right, bottom, paint)
-
- override fun drawOval(left: Float, top: Float, right: Float, bottom: Float, paint: Paint) =
- canvas!!.drawOval(left, top, right, bottom, paint)
-
- override fun drawArc(
- left: Float,
- top: Float,
- right: Float,
- bottom: Float,
- startAngle: Float,
- sweepAngle: Float,
- useCenter: Boolean,
- paint: Paint
- ) = canvas!!.drawArc(left, top, right, bottom, startAngle, sweepAngle, useCenter, paint)
-
- override fun drawRoundRect(
- left: Float,
- top: Float,
- right: Float,
- bottom: Float,
- radiusX: Float,
- radiusY: Float,
- paint: Paint
- ) = canvas!!.drawRoundRect(left, top, right, bottom, radiusX, radiusY, paint)
-
- override fun drawOval(rect: Rect, paint: Paint) = canvas!!.drawOval(rect, paint)
-
- override fun drawCircle(center: Offset, radius: Float, paint: Paint) =
- canvas!!.drawCircle(center, radius, paint)
-
- override fun drawPath(path: Path, paint: Paint) = canvas!!.drawPath(path, paint)
-
- override fun drawImage(image: ImageAsset, topLeftOffset: Offset, paint: Paint) =
- canvas!!.drawImage(image, topLeftOffset, paint)
-
- override fun drawImageRect(
- image: ImageAsset,
- srcOffset: Offset,
- srcSize: Size,
- dstOffset: Offset,
- dstSize: Size,
- paint: Paint
- ) = canvas!!.drawImageRect(image, srcOffset, srcSize, dstOffset, dstSize, paint)
-
- override fun drawPicture(picture: Picture) = canvas!!.drawPicture(picture)
-
- override fun drawPoints(pointMode: PointMode, points: List<Offset>, paint: Paint) =
- canvas!!.drawPoints(pointMode, points, paint)
-
- override fun drawRawPoints(pointMode: PointMode, points: FloatArray, paint: Paint) =
- canvas!!.drawRawPoints(pointMode, points, paint)
-
- override fun drawVertices(vertices: Vertices, blendMode: BlendMode, paint: Paint) =
- canvas!!.drawVertices(vertices, blendMode, paint)
-
- override fun enableZ() = canvas!!.enableZ()
-
- override fun disableZ() = canvas!!.disableZ()
}
}
\ No newline at end of file
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt b/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt
index a0d7bfd..1989c15 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/PainterModifier.kt
@@ -22,6 +22,8 @@
import androidx.ui.graphics.ColorFilter
import androidx.ui.graphics.DefaultAlpha
import androidx.ui.graphics.painter.Painter
+import androidx.ui.graphics.painter.drawCanvas
+import androidx.ui.graphics.painter.withTransform
import androidx.ui.unit.IntPx
import androidx.ui.unit.IntPxSize
import androidx.ui.unit.Px
@@ -238,17 +240,19 @@
val dx = alignedPosition.x.value.toFloat()
val dy = alignedPosition.y.value.toFloat()
- save()
- translate(dx, dy)
- scale(scale, scale)
-
- painter.draw(
- canvas = this,
- size = PxSize(Px(srcSize.width), Px(srcSize.height)),
- alpha = alpha,
- colorFilter = colorFilter,
- rtl = rtl)
-
- restore()
+ withTransform({
+ translate(dx, dy)
+ scale(scale, scale, 0.0f, 0.0f)
+ }) {
+ drawCanvas { canvas, _ ->
+ painter.draw(
+ canvas = canvas,
+ size = PxSize(Px(srcSize.width), Px(srcSize.height)),
+ alpha = alpha,
+ colorFilter = colorFilter,
+ rtl = rtl
+ )
+ }
+ }
}
}
\ No newline at end of file
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/selection/SelectionHandles.kt b/ui/ui-core/src/main/java/androidx/ui/core/selection/SelectionHandles.kt
index 20d4459..85aeed4 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/selection/SelectionHandles.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/selection/SelectionHandles.kt
@@ -27,6 +27,7 @@
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
import androidx.ui.graphics.Path
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.text.style.TextDirection
import androidx.ui.unit.Dp
import androidx.ui.unit.dp
@@ -40,33 +41,35 @@
val paint = remember { Paint().also { it.isAntiAlias = true } }
paint.color = HANDLE_COLOR
HandleDrawLayout(width = HANDLE_WIDTH, height = HANDLE_HEIGHT) {
- val path = Path().apply {
- addRect(
- Rect(
- top = 0f,
- bottom = 0.5f * HANDLE_HEIGHT.toPx().value,
- left = if (left) {
- 0.5f * HANDLE_WIDTH.toPx().value
- } else {
- 0f
- },
- right = if (left) {
- HANDLE_WIDTH.toPx().value
- } else {
- 0.5f * HANDLE_WIDTH.toPx().value
- }
+ drawCanvas { canvas, _ ->
+ val path = Path().apply {
+ addRect(
+ Rect(
+ top = 0f,
+ bottom = 0.5f * HANDLE_HEIGHT.toPx().value,
+ left = if (left) {
+ 0.5f * HANDLE_WIDTH.toPx().value
+ } else {
+ 0f
+ },
+ right = if (left) {
+ HANDLE_WIDTH.toPx().value
+ } else {
+ 0.5f * HANDLE_WIDTH.toPx().value
+ }
+ )
)
- )
- addOval(
- Rect(
- top = 0f,
- bottom = HANDLE_HEIGHT.toPx().value,
- left = 0f,
- right = HANDLE_WIDTH.toPx().value
+ addOval(
+ Rect(
+ top = 0f,
+ bottom = HANDLE_HEIGHT.toPx().value,
+ left = 0f,
+ right = HANDLE_WIDTH.toPx().value
+ )
)
- )
+ }
+ canvas.drawPath(path, paint)
}
- drawPath(path, paint)
}
}
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
index 3d5c8c9..027e00b 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
@@ -35,6 +35,8 @@
import androidx.ui.graphics.ColorFilter
import androidx.ui.graphics.StrokeCap
import androidx.ui.graphics.StrokeJoin
+import androidx.ui.graphics.painter.drawCanvas
+import androidx.ui.graphics.painter.translate
import androidx.ui.graphics.withSave
import androidx.ui.unit.Dp
import androidx.ui.unit.IntPx
@@ -216,9 +218,10 @@
vector.root.scaleX = (vectorWidth / viewportWidth) * scale
vector.root.scaleY = (vectorHeight / viewportHeight) * scale
- withSave {
- translate(translateX, translateY)
- vector.draw(this, DefaultAlpha, ColorFilter(tintColor, tintBlendMode))
+ translate(translateX, translateY) {
+ drawCanvas { canvas, _ ->
+ vector.draw(canvas, DefaultAlpha, ColorFilter(tintColor, tintBlendMode))
+ }
}
}
}
diff --git a/ui/ui-core/src/main/java/androidx/ui/node/ViewInterop.kt b/ui/ui-core/src/main/java/androidx/ui/node/ViewInterop.kt
index 39db2e8..9a7cad3 100644
--- a/ui/ui-core/src/main/java/androidx/ui/node/ViewInterop.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/node/ViewInterop.kt
@@ -30,6 +30,7 @@
import androidx.ui.core.MeasureScope
import androidx.ui.core.Modifier
import androidx.ui.core.drawBehind
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.unit.IntPx
import androidx.ui.unit.ipx
import androidx.ui.unit.isFinite
@@ -100,7 +101,9 @@
val layoutNode = LayoutNode()
layoutNode.modifier = Modifier
.pointerInteropModifier(this)
- .drawBehind { draw(nativeCanvas) }
+ .drawBehind {
+ drawCanvas { canvas, _ -> draw(canvas.nativeCanvas) }
+ }
layoutNode. owner ->
(owner as? AndroidOwner)?.addAndroidView(this, layoutNode)
}
diff --git a/ui/ui-foundation/api/0.1.0-dev11.txt b/ui/ui-foundation/api/0.1.0-dev11.txt
index ab4cc94..25159bd 100644
--- a/ui/ui-foundation/api/0.1.0-dev11.txt
+++ b/ui/ui-foundation/api/0.1.0-dev11.txt
@@ -25,8 +25,7 @@
}
public final class CanvasKt {
- method @Deprecated public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
- method public static void Canvas2(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
}
public final class ClickableKt {
diff --git a/ui/ui-foundation/api/current.txt b/ui/ui-foundation/api/current.txt
index ab4cc94..25159bd 100644
--- a/ui/ui-foundation/api/current.txt
+++ b/ui/ui-foundation/api/current.txt
@@ -25,8 +25,7 @@
}
public final class CanvasKt {
- method @Deprecated public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
- method public static void Canvas2(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
}
public final class ClickableKt {
diff --git a/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev11.txt b/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev11.txt
index ab4cc94..25159bd 100644
--- a/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev11.txt
+++ b/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev11.txt
@@ -25,8 +25,7 @@
}
public final class CanvasKt {
- method @Deprecated public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
- method public static void Canvas2(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
}
public final class ClickableKt {
diff --git a/ui/ui-foundation/api/public_plus_experimental_current.txt b/ui/ui-foundation/api/public_plus_experimental_current.txt
index ab4cc94..25159bd 100644
--- a/ui/ui-foundation/api/public_plus_experimental_current.txt
+++ b/ui/ui-foundation/api/public_plus_experimental_current.txt
@@ -25,8 +25,7 @@
}
public final class CanvasKt {
- method @Deprecated public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
- method public static void Canvas2(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
}
public final class ClickableKt {
diff --git a/ui/ui-foundation/api/restricted_0.1.0-dev11.txt b/ui/ui-foundation/api/restricted_0.1.0-dev11.txt
index ab4cc94..25159bd 100644
--- a/ui/ui-foundation/api/restricted_0.1.0-dev11.txt
+++ b/ui/ui-foundation/api/restricted_0.1.0-dev11.txt
@@ -25,8 +25,7 @@
}
public final class CanvasKt {
- method @Deprecated public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
- method public static void Canvas2(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
}
public final class ClickableKt {
diff --git a/ui/ui-foundation/api/restricted_current.txt b/ui/ui-foundation/api/restricted_current.txt
index ab4cc94..25159bd 100644
--- a/ui/ui-foundation/api/restricted_current.txt
+++ b/ui/ui-foundation/api/restricted_current.txt
@@ -25,8 +25,7 @@
}
public final class CanvasKt {
- method @Deprecated public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
- method public static void Canvas2(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.DrawScope,kotlin.Unit> onCanvas);
}
public final class ClickableKt {
diff --git a/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt b/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt
index 61fe47c..0af15da 100644
--- a/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt
+++ b/ui/ui-foundation/samples/src/main/java/androidx/ui/foundation/samples/CanvasSamples.kt
@@ -18,15 +18,10 @@
import androidx.annotation.Sampled
import androidx.compose.Composable
-import androidx.compose.remember
import androidx.ui.core.Modifier
import androidx.ui.foundation.Canvas
-import androidx.ui.foundation.Canvas2
import androidx.ui.geometry.Offset
-import androidx.ui.geometry.toRect
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
-import androidx.ui.graphics.painter.CanvasScope
import androidx.ui.graphics.painter.Stroke
import androidx.ui.graphics.painter.inset
import androidx.ui.layout.preferredSize
@@ -34,24 +29,9 @@
@Sampled
@Composable
-@Suppress("DEPRECATION")
-@Deprecated("Prefer usage of Canvas2", ReplaceWith("Canvas2Sample"))
fun CanvasSample() {
- val paint = remember { Paint().apply { color = Color.Magenta } }
Canvas(modifier = Modifier.preferredSize(100.dp)) {
- drawRect(size.toRect(), paint)
- }
-}
-
-/**
- * Sample showing how to create a composable that supports issuing
- * drawing commands through a [CanvasScope]
- */
-@Sampled
-@Composable
-fun Canvas2Sample() {
- Canvas2(modifier = Modifier.preferredSize(20.dp)) {
- drawRect(color = Color.White)
+ drawRect(Color.Magenta)
inset(10.0f) {
drawLine(
p1 = Offset.zero,
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/Canvas2Test.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/Canvas2Test.kt
deleted file mode 100644
index e3738cb..0000000
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/Canvas2Test.kt
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package androidx.ui.foundation
-
-import android.os.Build
-import androidx.compose.Composable
-import androidx.test.filters.SdkSuppress
-import androidx.test.filters.LargeTest
-import androidx.ui.core.Alignment
-import androidx.ui.core.DensityAmbient
-import androidx.ui.core.Modifier
-import androidx.ui.core.TestTag
-import androidx.ui.core.onPositioned
-import androidx.ui.foundation.shape.corner.CircleShape
-import androidx.ui.geometry.Offset
-import androidx.ui.graphics.Color
-import androidx.ui.graphics.RectangleShape
-import androidx.ui.graphics.painter.Stroke
-import androidx.ui.graphics.toArgb
-import androidx.ui.layout.Stack
-import androidx.ui.layout.preferredSize
-import androidx.ui.layout.wrapContentSize
-import androidx.ui.semantics.Semantics
-import androidx.ui.test.assertShape
-import androidx.ui.test.captureToBitmap
-import androidx.ui.test.createComposeRule
-import androidx.ui.test.findByTag
-import androidx.ui.test.setContentAndCollectSizes
-import androidx.ui.unit.Density
-import androidx.ui.unit.IntPxSize
-import androidx.ui.unit.dp
-import androidx.ui.unit.px
-import com.google.common.truth.Truth
-import org.junit.Assert
-import org.junit.Assert.assertTrue
-import org.junit.Rule
-import org.junit.Test
-import java.util.concurrent.CountDownLatch
-import java.util.concurrent.TimeUnit
-
-@LargeTest
-@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
-class Canvas2Test {
-
- val contentTag = "Canvas2Test"
- val boxWidth = 100
- val boxHeight = 100
- val containerSize = boxWidth
-
- @get:Rule
- val composeTestRule = createComposeRule()
-
- @Test
- fun testCanvas2() {
- val strokeWidth = 5.0f
- composeTestRule.setContent {
- val density = DensityAmbient.current.density
- val containerSize = (containerSize * 2 / density).dp
- val minWidth = (boxWidth / density).dp
- val minHeight = (boxHeight / density).dp
- Box(modifier = Modifier.preferredSize(containerSize)
- .drawBackground(Color.White)
- .wrapContentSize(Alignment.Center)) {
- TestTag(contentTag) {
- Canvas2(modifier = Modifier.preferredSize(minWidth, minHeight)) {
- drawLine(
- p1 = Offset.zero,
- p2 = Offset(size.width, size.height),
- color = Color.Red,
- stroke = Stroke(width = strokeWidth)
- )
- }
- }
- }
- }
-
- val paintBoxColor = Color.Red.toArgb()
- val containerBgColor = Color.White.toArgb()
- val strokeOffset = (strokeWidth / 2).toInt() + 3
- findByTag(contentTag).captureToBitmap().apply {
- val imageStartX = width / 2 - boxWidth / 2
- val imageStartY = height / 2 - boxHeight / 2
-
- // Top left
- Assert.assertEquals(paintBoxColor, getPixel(imageStartX, imageStartY))
-
- // Top Left, to the left of the line
- Assert.assertEquals(containerBgColor,
- getPixel(imageStartX - strokeOffset, imageStartY))
-
- // Top Left, to the right of the line
- Assert.assertEquals(containerBgColor,
- getPixel(imageStartX + strokeOffset, imageStartY))
-
- // Bottom right
- Assert.assertEquals(paintBoxColor, getPixel(imageStartX + boxWidth - 1,
- imageStartY + boxHeight - 1))
-
- // Bottom right to the right of the line
- Assert.assertEquals(containerBgColor,
- getPixel(imageStartX + boxWidth + strokeOffset,
- imageStartY + boxHeight))
-
- // Bottom right to the left of the line
- Assert.assertEquals(containerBgColor,
- getPixel(imageStartX + boxWidth - strokeOffset,
- imageStartY + boxHeight))
-
- // Middle
- Assert.assertEquals(paintBoxColor, getPixel(imageStartX + boxWidth / 2,
- imageStartY + boxHeight / 2))
-
- // Middle to the left of the line
- Assert.assertEquals(containerBgColor,
- getPixel(imageStartX + boxWidth / 2 - strokeOffset,
- imageStartY + boxHeight / 2))
-
- // Middle to the right of the line
- Assert.assertEquals(containerBgColor,
- getPixel(imageStartX + boxWidth / 2 + strokeOffset,
- imageStartY + boxHeight / 2))
- }
- }
-
- @Test
- fun canvas2_noSize_emptyCanvas() {
- composeTestRule.setContentAndCollectSizes {
- Canvas2(modifier = Modifier) {
- drawRect(Color.Black)
- }
- }
- .assertHeightEqualsTo(0.dp)
- .assertWidthEqualsTo(0.dp)
- }
-
- @Test
- fun canvas2_exactSizes() {
- var canvasSize: IntPxSize? = null
- val latch = CountDownLatch(1)
- composeTestRule.setContentAndCollectSizes {
- SemanticParent {
- Canvas2(
- Modifier.preferredSize(100.dp)
- .onPositioned { position -> canvasSize = position.size }
- ) {
- drawRect(Color.Red)
-
- latch.countDown()
- }
- }
- }
-
- assertTrue(latch.await(5, TimeUnit.SECONDS))
-
- with(composeTestRule.density) {
- Truth.assertThat(canvasSize!!.width.value).isEqualTo(100.dp.toIntPx().value)
- Truth.assertThat(canvasSize!!.height.value).isEqualTo(100.dp.toIntPx().value)
- }
-
- val bitmap = findByTag(contentTag).captureToBitmap()
- bitmap.assertShape(
- density = composeTestRule.density,
- backgroundColor = Color.Red,
- shapeColor = Color.Red,
- shape = RectangleShape
- )
- }
-
- @Test
- fun canvas2_exactSizes_drawCircle() {
- var canvasSize: IntPxSize? = null
- val latch = CountDownLatch(1)
- composeTestRule.setContentAndCollectSizes {
- SemanticParent {
- Canvas2(
- Modifier.preferredSize(100.dp)
- .onPositioned { position -> canvasSize = position.size }
- ) {
- drawRect(Color.Red)
- drawCircle(
- Color.Blue,
- radius = 10.0f
- )
- latch.countDown()
- }
- }
- }
-
- assertTrue(latch.await(5, TimeUnit.SECONDS))
-
- with(composeTestRule.density) {
- Truth.assertThat(canvasSize!!.width.value).isEqualTo(100.dp.toIntPx().value)
- Truth.assertThat(canvasSize!!.height.value).isEqualTo(100.dp.toIntPx().value)
- }
-
- val bitmap = findByTag(contentTag).captureToBitmap()
- bitmap.assertShape(
- density = composeTestRule.density,
- backgroundColor = Color.Red,
- shapeColor = Color.Blue,
- shape = CircleShape,
- shapeSizeX = 20.px,
- shapeSizeY = 20.px,
- shapeOverlapPixelCount = 2.px
- )
- }
-
- @Composable
- fun SemanticParent(children: @Composable Density.() -> Unit) {
- Stack {
- TestTag(tag = contentTag) {
- Semantics(container = true) {
- Box {
- DensityAmbient.current.children()
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt
index da3aa1a..26dd2de 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/CanvasTest.kt
@@ -20,17 +20,20 @@
import androidx.compose.Composable
import androidx.test.filters.MediumTest
import androidx.test.filters.SdkSuppress
+import androidx.ui.core.Alignment
import androidx.ui.core.DensityAmbient
import androidx.ui.core.Modifier
import androidx.ui.core.TestTag
import androidx.ui.core.onPositioned
import androidx.ui.foundation.shape.corner.CircleShape
-import androidx.ui.geometry.toRect
+import androidx.ui.geometry.Offset
import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
import androidx.ui.graphics.RectangleShape
+import androidx.ui.graphics.painter.Stroke
+import androidx.ui.graphics.toArgb
import androidx.ui.layout.Stack
import androidx.ui.layout.preferredSize
+import androidx.ui.layout.wrapContentSize
import androidx.ui.semantics.Semantics
import androidx.ui.test.assertShape
import androidx.ui.test.captureToBitmap
@@ -42,6 +45,7 @@
import androidx.ui.unit.dp
import androidx.ui.unit.px
import com.google.common.truth.Truth
+import org.junit.Assert
import org.junit.Assert.assertTrue
import org.junit.Rule
import org.junit.Test
@@ -55,17 +59,91 @@
@RunWith(JUnit4::class)
class CanvasTest {
+ val contentTag = "CanvasTest"
+ val boxWidth = 100
+ val boxHeight = 100
+ val containerSize = boxWidth
+
@get:Rule
val composeTestRule = createComposeRule()
- val testTag = "CanvasParent"
+ @Test
+ fun testCanvas() {
+ val strokeWidth = 5.0f
+ composeTestRule.setContent {
+ val density = DensityAmbient.current.density
+ val containerSize = (containerSize * 2 / density).dp
+ val minWidth = (boxWidth / density).dp
+ val minHeight = (boxHeight / density).dp
+ Box(modifier = Modifier.preferredSize(containerSize)
+ .drawBackground(Color.White)
+ .wrapContentSize(Alignment.Center)) {
+ TestTag(contentTag) {
+ Canvas(modifier = Modifier.preferredSize(minWidth, minHeight)) {
+ drawLine(
+ p1 = Offset.zero,
+ p2 = Offset(size.width, size.height),
+ color = Color.Red,
+ stroke = Stroke(width = strokeWidth)
+ )
+ }
+ }
+ }
+ }
+
+ val paintBoxColor = Color.Red.toArgb()
+ val containerBgColor = Color.White.toArgb()
+ val strokeOffset = (strokeWidth / 2).toInt() + 3
+ findByTag(contentTag).captureToBitmap().apply {
+ val imageStartX = width / 2 - boxWidth / 2
+ val imageStartY = height / 2 - boxHeight / 2
+
+ // Top left
+ Assert.assertEquals(paintBoxColor, getPixel(imageStartX, imageStartY))
+
+ // Top Left, to the left of the line
+ Assert.assertEquals(containerBgColor,
+ getPixel(imageStartX - strokeOffset, imageStartY))
+
+ // Top Left, to the right of the line
+ Assert.assertEquals(containerBgColor,
+ getPixel(imageStartX + strokeOffset, imageStartY))
+
+ // Bottom right
+ Assert.assertEquals(paintBoxColor, getPixel(imageStartX + boxWidth - 1,
+ imageStartY + boxHeight - 1))
+
+ // Bottom right to the right of the line
+ Assert.assertEquals(containerBgColor,
+ getPixel(imageStartX + boxWidth + strokeOffset,
+ imageStartY + boxHeight))
+
+ // Bottom right to the left of the line
+ Assert.assertEquals(containerBgColor,
+ getPixel(imageStartX + boxWidth - strokeOffset,
+ imageStartY + boxHeight))
+
+ // Middle
+ Assert.assertEquals(paintBoxColor, getPixel(imageStartX + boxWidth / 2,
+ imageStartY + boxHeight / 2))
+
+ // Middle to the left of the line
+ Assert.assertEquals(containerBgColor,
+ getPixel(imageStartX + boxWidth / 2 - strokeOffset,
+ imageStartY + boxHeight / 2))
+
+ // Middle to the right of the line
+ Assert.assertEquals(containerBgColor,
+ getPixel(imageStartX + boxWidth / 2 + strokeOffset,
+ imageStartY + boxHeight / 2))
+ }
+ }
@Test
- @Suppress("DEPRECATION")
fun canvas_noSize_emptyCanvas() {
composeTestRule.setContentAndCollectSizes {
Canvas(modifier = Modifier) {
- drawRect(size.toRect(), Paint())
+ drawRect(Color.Black)
}
}
.assertHeightEqualsTo(0.dp)
@@ -73,7 +151,6 @@
}
@Test
- @Suppress("DEPRECATION")
fun canvas_exactSizes() {
var canvasSize: IntPxSize? = null
val latch = CountDownLatch(1)
@@ -83,7 +160,8 @@
Modifier.preferredSize(100.dp)
.onPositioned { position -> canvasSize = position.size }
) {
- drawRect(size.toRect(), Paint().apply { color = Color.Red })
+ drawRect(Color.Red)
+
latch.countDown()
}
}
@@ -96,7 +174,7 @@
Truth.assertThat(canvasSize!!.height.value).isEqualTo(100.dp.toIntPx().value)
}
- val bitmap = findByTag(testTag).captureToBitmap()
+ val bitmap = findByTag(contentTag).captureToBitmap()
bitmap.assertShape(
density = composeTestRule.density,
backgroundColor = Color.Red,
@@ -106,7 +184,6 @@
}
@Test
- @Suppress("DEPRECATION")
fun canvas_exactSizes_drawCircle() {
var canvasSize: IntPxSize? = null
val latch = CountDownLatch(1)
@@ -116,11 +193,10 @@
Modifier.preferredSize(100.dp)
.onPositioned { position -> canvasSize = position.size }
) {
- drawRect(size.toRect(), Paint().apply { color = Color.Red })
+ drawRect(Color.Red)
drawCircle(
- size.center(),
- 10f,
- Paint().apply { color = Color.Blue }
+ Color.Blue,
+ radius = 10.0f
)
latch.countDown()
}
@@ -134,7 +210,7 @@
Truth.assertThat(canvasSize!!.height.value).isEqualTo(100.dp.toIntPx().value)
}
- val bitmap = findByTag(testTag).captureToBitmap()
+ val bitmap = findByTag(contentTag).captureToBitmap()
bitmap.assertShape(
density = composeTestRule.density,
backgroundColor = Color.Red,
@@ -149,7 +225,7 @@
@Composable
fun SemanticParent(children: @Composable Density.() -> Unit) {
Stack {
- TestTag(tag = testTag) {
+ TestTag(tag = contentTag) {
Semantics(container = true) {
Box {
DensityAmbient.current.children()
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Canvas.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Canvas.kt
index 542449b..82b39c7 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Canvas.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Canvas.kt
@@ -17,11 +17,9 @@
package androidx.ui.foundation
import androidx.compose.Composable
-import androidx.compose.remember
import androidx.ui.core.Modifier
import androidx.ui.core.DrawScope
import androidx.ui.core.drawBehind
-import androidx.ui.graphics.painter.CanvasScope
import androidx.ui.layout.ColumnScope
import androidx.ui.layout.Spacer
@@ -38,33 +36,6 @@
* called during draw stage, you have no access to composition scope, meaning that [Composable]
* function invocation inside it will result to runtime exception
*/
-@Deprecated("Favor usage of Canvas2 which leverages the CanvasScope API. CanvasScope" +
- " introduces a stateless, declarative API surface without the requirement of maintaining" +
- "a Paint object",
- ReplaceWith("Canvas2"))
@Composable
-fun Canvas(modifier: Modifier, onCanvas: DrawScope.() -> Unit) {
- Spacer(
- modifier.drawBehind(onCanvas)
- )
-}
-
-/**
- * Creates a composable that lays out and draws content within a [CanvasScope].
- * The size of this [Canvas2] is purely dictated by the given modifier chain.
- *
- * @sample androidx.ui.foundation.samples.Canvas2Sample
- *
- * @param modifier Modifier used to adjust the layout algorithm or draw decoration content (ex.
- * background)
- * @param block Lambda callback invoked on the created [CanvasScope] to issue drawing commands
- */
-@Composable
-fun Canvas2(modifier: Modifier, block: CanvasScope.() -> Unit) {
- val canvasScope = remember { CanvasScope() }
- Spacer(
- modifier.drawBehind {
- canvasScope.draw(this, size, block)
- }
- )
-}
\ No newline at end of file
+fun Canvas(modifier: Modifier, onCanvas: DrawScope.() -> Unit) =
+ Spacer(modifier.drawBehind(onCanvas))
\ No newline at end of file
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt
index f348621..b2767ad 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBackground.kt
@@ -32,6 +32,7 @@
import androidx.ui.graphics.Shape
import androidx.ui.graphics.SolidColor
import androidx.ui.graphics.drawOutline
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.unit.Px
import androidx.ui.unit.PxSize
@@ -133,21 +134,23 @@
private var lastOutline: Outline? = null
override fun ContentDrawScope.draw() {
- if (shape === RectangleShape) {
- // shortcut to avoid Outline calculation and allocation
- drawRect(size.toRect(), paint)
- } else {
- val localOutline =
- if (size == lastSize) {
- lastOutline!!
- } else {
- val pxSize = PxSize(Px(size.width), Px(size.height))
- shape.createOutline(pxSize, this)
- }
- drawOutline(localOutline, paint)
- lastOutline = localOutline
- lastSize = size
+ drawCanvas { canvas, _ ->
+ if (shape === RectangleShape) {
+ // shortcut to avoid Outline calculation and allocation
+ canvas.drawRect(size.toRect(), paint)
+ } else {
+ val localOutline =
+ if (size == lastSize) {
+ lastOutline!!
+ } else {
+ val pxSize = PxSize(Px(size.width), Px(size.height))
+ shape.createOutline(pxSize, this)
+ }
+ canvas.drawOutline(localOutline, paint)
+ lastOutline = localOutline
+ lastSize = size
+ }
+ drawContent()
}
- drawContent()
}
}
\ No newline at end of file
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt
index ca35da9c..77c5a40 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/DrawBorder.kt
@@ -38,6 +38,7 @@
import androidx.ui.graphics.Shape
import androidx.ui.graphics.SolidColor
import androidx.ui.graphics.addOutline
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.unit.Density
import androidx.ui.unit.Dp
import androidx.ui.unit.Px
@@ -170,27 +171,34 @@
override fun ContentDrawScope.draw() {
val density = this
- val canvas = this
- with(cache) {
- drawContent()
- modifierSize = PxSize(Px(size.width), Px(size.height))
- val outline = modifierSizeOutline(density)
- val borderSize =
- if (borderWidth == Dp.Hairline) 1f else borderWidth.value * density.density
- brush.applyTo(paint)
- paint.strokeWidth = borderSize
+ drawCanvas { canvas, _ ->
+ with(cache) {
+ drawContent()
+ modifierSize = PxSize(Px(size.width), Px(size.height))
+ val outline = modifierSizeOutline(density)
+ val borderSize =
+ if (borderWidth == Dp.Hairline) 1f else borderWidth.value * density.density
+ brush.applyTo(paint)
+ paint.strokeWidth = borderSize
- if (borderSize <= 0 || size.minDimension <= 0.0f) {
- return
- } else if (outline is Outline.Rectangle) {
- drawRoundRectBorder(borderSize, outline.rect, 0f, canvas, paint)
- } else if (outline is Outline.Rounded && outline.rrect.isSimple) {
- val radius = outline.rrect.bottomLeftRadiusY
- drawRoundRectBorder(borderSize, outline.rrect.outerRect(), radius, canvas, paint)
- } else {
- val path = borderPath(density, borderSize)
- paint.style = PaintingStyle.fill
- drawPath(path, paint)
+ if (borderSize <= 0 || size.minDimension <= 0.0f) {
+ return
+ } else if (outline is Outline.Rectangle) {
+ drawRoundRectBorder(borderSize, outline.rect, 0f, canvas, paint)
+ } else if (outline is Outline.Rounded && outline.rrect.isSimple) {
+ val radius = outline.rrect.bottomLeftRadiusY
+ drawRoundRectBorder(
+ borderSize,
+ outline.rrect.outerRect(),
+ radius,
+ canvas,
+ paint
+ )
+ } else {
+ val path = borderPath(density, borderSize)
+ paint.style = PaintingStyle.fill
+ canvas.drawPath(path, paint)
+ }
}
}
}
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/TextField.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/TextField.kt
index 2fc2136..6df23505 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/TextField.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/TextField.kt
@@ -30,6 +30,7 @@
import androidx.ui.geometry.Rect
import androidx.ui.graphics.Color
import androidx.ui.graphics.Paint
+import androidx.ui.graphics.painter.Stroke
import androidx.ui.graphics.useOrElse
import androidx.ui.input.EditorValue
import androidx.ui.input.ImeAction
@@ -217,9 +218,7 @@
cursorState: CursorState,
editorValue: EditorValue,
transformedText: TransformedText
-): Modifier = composed {
- val paint = remember { Paint() }
-
+): Modifier =
drawBehind {
if (cursorState.focused && editorValue.selection.collapsed) {
val cursorWidth = CursorThickness.value * density
@@ -234,15 +233,12 @@
val cursorX = (cursorRect.left + cursorRect.right) / 2
drawLine(
+ cursorColor,
Offset(cursorX, cursorRect.top),
Offset(cursorX, cursorRect.bottom),
- paint.apply {
- this.color = cursorColor
- this.strokeWidth = cursorWidth
- }
+ stroke = Stroke(cursorWidth)
)
}
}
-}
private val DefaultTextFieldWidth = 280.dp
\ No newline at end of file
diff --git a/ui/ui-graphics/api/0.1.0-dev11.txt b/ui/ui-graphics/api/0.1.0-dev11.txt
index 9bf8346..824c17b 100644
--- a/ui/ui-graphics/api/0.1.0-dev11.txt
+++ b/ui/ui-graphics/api/0.1.0-dev11.txt
@@ -718,29 +718,29 @@
package androidx.ui.graphics.painter {
- @androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
+ @androidx.ui.graphics.painter.CanvasScopeMarker public class CanvasScope {
ctor public CanvasScope();
- method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
- method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public long getCenter();
- method public long getSize();
+ method public final void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public final kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final long getCenter();
+ method public final long getSize();
property public final long center;
property public final long size;
field public static final androidx.ui.graphics.painter.CanvasScope.Companion! Companion;
diff --git a/ui/ui-graphics/api/current.txt b/ui/ui-graphics/api/current.txt
index 9bf8346..824c17b 100644
--- a/ui/ui-graphics/api/current.txt
+++ b/ui/ui-graphics/api/current.txt
@@ -718,29 +718,29 @@
package androidx.ui.graphics.painter {
- @androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
+ @androidx.ui.graphics.painter.CanvasScopeMarker public class CanvasScope {
ctor public CanvasScope();
- method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
- method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public long getCenter();
- method public long getSize();
+ method public final void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public final kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final long getCenter();
+ method public final long getSize();
property public final long center;
property public final long size;
field public static final androidx.ui.graphics.painter.CanvasScope.Companion! Companion;
diff --git a/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt b/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt
index 9bf8346..824c17b 100644
--- a/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt
+++ b/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev11.txt
@@ -718,29 +718,29 @@
package androidx.ui.graphics.painter {
- @androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
+ @androidx.ui.graphics.painter.CanvasScopeMarker public class CanvasScope {
ctor public CanvasScope();
- method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
- method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public long getCenter();
- method public long getSize();
+ method public final void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public final kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final long getCenter();
+ method public final long getSize();
property public final long center;
property public final long size;
field public static final androidx.ui.graphics.painter.CanvasScope.Companion! Companion;
diff --git a/ui/ui-graphics/api/public_plus_experimental_current.txt b/ui/ui-graphics/api/public_plus_experimental_current.txt
index 9bf8346..824c17b 100644
--- a/ui/ui-graphics/api/public_plus_experimental_current.txt
+++ b/ui/ui-graphics/api/public_plus_experimental_current.txt
@@ -718,29 +718,29 @@
package androidx.ui.graphics.painter {
- @androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
+ @androidx.ui.graphics.painter.CanvasScopeMarker public class CanvasScope {
ctor public CanvasScope();
- method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
- method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public long getCenter();
- method public long getSize();
+ method public final void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public final kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final long getCenter();
+ method public final long getSize();
property public final long center;
property public final long size;
field public static final androidx.ui.graphics.painter.CanvasScope.Companion! Companion;
diff --git a/ui/ui-graphics/api/restricted_0.1.0-dev11.txt b/ui/ui-graphics/api/restricted_0.1.0-dev11.txt
index 9bf8346..824c17b 100644
--- a/ui/ui-graphics/api/restricted_0.1.0-dev11.txt
+++ b/ui/ui-graphics/api/restricted_0.1.0-dev11.txt
@@ -718,29 +718,29 @@
package androidx.ui.graphics.painter {
- @androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
+ @androidx.ui.graphics.painter.CanvasScopeMarker public class CanvasScope {
ctor public CanvasScope();
- method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
- method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public long getCenter();
- method public long getSize();
+ method public final void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public final kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final long getCenter();
+ method public final long getSize();
property public final long center;
property public final long size;
field public static final androidx.ui.graphics.painter.CanvasScope.Companion! Companion;
diff --git a/ui/ui-graphics/api/restricted_current.txt b/ui/ui-graphics/api/restricted_current.txt
index 9bf8346..824c17b 100644
--- a/ui/ui-graphics/api/restricted_current.txt
+++ b/ui/ui-graphics/api/restricted_current.txt
@@ -718,29 +718,29 @@
package androidx.ui.graphics.painter {
- @androidx.ui.graphics.painter.CanvasScopeMarker public final class CanvasScope {
+ @androidx.ui.graphics.painter.CanvasScopeMarker public class CanvasScope {
ctor public CanvasScope();
- method public void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
- method public kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
- method public long getCenter();
- method public long getSize();
+ method public final void draw-mEaFHtM(androidx.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.painter.CanvasScope,kotlin.Unit> block);
+ method public final kotlin.Unit? drawArc-_aGsT6c(androidx.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawArc-eUb3Eo4(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-0EImeI8(long color, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawCircle-uHGJFV8(androidx.ui.graphics.Brush brush, float radius = size.minDimension / 2.0, long center = this.center, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-IF_VeeU(androidx.ui.graphics.ImageAsset image, long srcOffset = Offset.zero, long srcSize = Size(image.width.toFloat(), image.height.toFloat()), long dstOffset = Offset.zero, long dstSize = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawImage-zcoU2q0(androidx.ui.graphics.ImageAsset image, long topLeft = Offset.zero, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-MfDnFlo(long color, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawLine-PWBr8KI(androidx.ui.graphics.Brush brush, long p1, long p2, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawOval-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPath-ZizoN6c(androidx.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, androidx.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawPoints-yiE_nf0(java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.PointMode pointMode, long color, androidx.ui.graphics.painter.Stroke stroke, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-EPCrxCw(long color, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRect-cuGMcK0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-5PTu5W0(androidx.ui.graphics.Brush brush, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = radiusX, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final kotlin.Unit? drawRoundRect-A8SqK14(long color, long topLeft = Offset.zero, long size = this.size, float radiusX = 0.0f, float radiusY = 0.0f, androidx.ui.graphics.painter.DrawStyle style = Fill, @FloatRange(from=0.0, to=1.0) float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, androidx.ui.graphics.BlendMode blendMode = DefaultBlendMode);
+ method public final long getCenter();
+ method public final long getSize();
property public final long center;
property public final long size;
field public static final androidx.ui.graphics.painter.CanvasScope.Companion! Companion;
diff --git a/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt b/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt
index 394f9bc..6ccfdac 100644
--- a/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt
+++ b/ui/ui-graphics/src/main/java/androidx/ui/graphics/painter/CanvasScope.kt
@@ -249,7 +249,7 @@
* @sample androidx.ui.graphics.samples.canvasScopeSample
*/
@CanvasScopeMarker
-class CanvasScope {
+open class CanvasScope {
@PublishedApi internal var canvas: Canvas? = null
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt
index 727b7f4..17d39e7 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt
@@ -24,7 +24,7 @@
import androidx.ui.animation.Transition
import androidx.ui.core.DensityAmbient
import androidx.ui.core.Modifier
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
import androidx.ui.graphics.Color
@@ -68,7 +68,7 @@
) {
val stroke = Stroke(5.dp.value * DensityAmbient.current.density)
Transition(definition = CircularTransition, initState = 0, toState = 1) { state ->
- Canvas2(modifier) {
+ Canvas(modifier) {
val innerRadius = (size.minDimension - stroke.width) / 2
val halfSize = size / 2.0f
val topLeft = Offset(
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt b/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt
index c00bd0b..c42952e 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt
@@ -26,7 +26,7 @@
import androidx.ui.core.DensityAmbient
import androidx.ui.core.Modifier
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.ContentGravity
import androidx.ui.foundation.selection.ToggleableState
import androidx.ui.foundation.selection.TriStateToggleable
@@ -138,7 +138,7 @@
strokeWidthPx = StrokeWidth.toPx().value
radiusPx = RadiusSize.toPx().value
}
- Canvas2(modifier.preferredSize(CheckboxSize)) {
+ Canvas(modifier.preferredSize(CheckboxSize)) {
drawBox(
color = state[BoxColorProp],
innerRadiusFraction = state[InnerRadiusFractionProp],
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt b/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
index a05028b..0474a68 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
@@ -27,7 +27,7 @@
import androidx.ui.core.hasBoundedHeight
import androidx.ui.core.hasBoundedWidth
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Clickable
import androidx.ui.foundation.gestures.DragDirection
import androidx.ui.layout.DpConstraints
@@ -262,7 +262,7 @@
// TODO: use enabled = false here when it will be available
val scrimContent = @Composable {
val color = MaterialTheme.colors.onSurface
- Canvas2(Modifier.fillMaxSize()) {
+ Canvas(Modifier.fillMaxSize()) {
drawRect(color, alpha = fraction() * ScrimDefaultOpacity)
}
}
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt b/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt
index 709c3bb..4f32ee2 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt
@@ -28,7 +28,7 @@
import androidx.ui.core.DensityAmbient
import androidx.ui.core.Modifier
import androidx.ui.core.LayoutDirection
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.DeterminateProgressIndicator
import androidx.ui.foundation.Strings
import androidx.ui.geometry.Offset
@@ -68,7 +68,7 @@
)
}
val backgroundColor = color.copy(alpha = BackgroundOpacity)
- Canvas2(modifier.preferredSize(LinearIndicatorWidth, LinearIndicatorHeight)) {
+ Canvas(modifier.preferredSize(LinearIndicatorWidth, LinearIndicatorHeight)) {
drawLinearIndicatorBackground(backgroundColor, stroke)
drawLinearIndicator(0f, progress, color, stroke)
}
@@ -105,7 +105,7 @@
cap = StrokeCap.butt
)
}
- Canvas2(modifier.preferredSize(LinearIndicatorWidth, LinearIndicatorHeight)) {
+ Canvas(modifier.preferredSize(LinearIndicatorWidth, LinearIndicatorHeight)) {
drawLinearIndicatorBackground(backgroundColor, stroke)
if (firstLineHead - firstLineTail > 0) {
drawLinearIndicator(
@@ -172,7 +172,7 @@
val stroke = with(DensityAmbient.current) {
Stroke(width = strokeWidth.toPx().value, cap = StrokeCap.butt)
}
- Canvas2(
+ Canvas(
modifier
.padding(CircularIndicatorPadding)
.preferredSize(CircularIndicatorDiameter)
@@ -223,7 +223,7 @@
startAngle += StartAngleOffset + currentRotationAngleOffset
startAngle += baseRotation
- Canvas2(
+ Canvas(
modifier.padding(CircularIndicatorPadding)
.preferredSize(CircularIndicatorDiameter)
) {
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt b/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt
index 9727e47..eaa5025 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt
@@ -26,7 +26,7 @@
import androidx.ui.core.DensityAmbient
import androidx.ui.core.Modifier
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.foundation.selection.MutuallyExclusiveSetItem
import androidx.ui.geometry.Offset
@@ -218,7 +218,7 @@
gapWidth = state[GapProp].toPx().value
radioStroke = Stroke(RadioStrokeWidth.toPx().value)
}
- Canvas2(Modifier.padding(RadioButtonPadding).preferredSize(RadioButtonSize)) {
+ Canvas(Modifier.padding(RadioButtonPadding).preferredSize(RadioButtonSize)) {
drawRadio(
state[ColorProp],
outerPx,
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt b/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt
index 072eefe..da48657 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt
@@ -34,7 +34,7 @@
import androidx.ui.core.WithConstraints
import androidx.ui.core.gesture.pressIndicatorGestureFilter
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.animation.FlingConfig
import androidx.ui.foundation.animation.fling
import androidx.ui.foundation.gestures.DragDirection
@@ -211,7 +211,7 @@
) {
val activeTickColor = MaterialTheme.colors.onPrimary.copy(alpha = TickColorAlpha)
val inactiveTickColor = color.copy(alpha = TickColorAlpha)
- Canvas2(modifier) {
+ Canvas(modifier) {
val sliderStart = Offset(thumbPx, center.dy)
val sliderMax = Offset(size.width - thumbPx, center.dy)
drawLine(
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt b/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt
index fb00b34..3653978 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt
@@ -21,7 +21,7 @@
import androidx.compose.Composable
import androidx.ui.core.DensityAmbient
import androidx.ui.core.Modifier
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.gestures.DragDirection
import androidx.ui.foundation.selection.Toggleable
import androidx.ui.geometry.Offset
@@ -118,7 +118,7 @@
trackWidth = TrackWidth.toPx().value
thumbDiameter = ThumbDiameter.toPx().value
}
- Canvas2(modifier.preferredSize(SwitchWidth, SwitchHeight)) {
+ Canvas(modifier.preferredSize(SwitchWidth, SwitchHeight)) {
drawTrack(trackColor, trackWidth, trackStroke)
drawThumb(thumbValue.value, thumbDiameter, thumbColor)
}
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt b/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt
index 079d0a1..7ea68f9 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/TextField.kt
@@ -59,6 +59,7 @@
import androidx.ui.input.ImeAction
import androidx.ui.input.KeyboardType
import androidx.ui.input.VisualTransformation
+import androidx.ui.graphics.painter.Stroke
import androidx.ui.layout.padding
import androidx.ui.layout.preferredSizeIn
import androidx.ui.material.ripple.ripple
@@ -647,16 +648,14 @@
*/
@Composable
private fun Modifier.drawIndicatorLine(lineWidth: Dp, color: Color): Modifier {
- val paint = remember { Paint() }
return drawBehind {
val strokeWidth = lineWidth.value * density
- paint.strokeWidth = strokeWidth
- paint.color = color
val y = size.height - strokeWidth / 2
drawLine(
+ color,
Offset(0f, y),
Offset(size.width, y),
- paint
+ stroke = Stroke(width = strokeWidth)
)
}
}
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt b/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt
index 54ecff3..f74478d 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt
@@ -41,6 +41,7 @@
import androidx.ui.core.composed
import androidx.ui.core.gesture.pressIndicatorGestureFilter
import androidx.ui.graphics.Color
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.graphics.useOrElse
import androidx.ui.unit.Density
import androidx.ui.unit.Dp
@@ -152,7 +153,9 @@
override fun ContentDrawScope.draw() {
drawContent()
- effects.fastForEach { it.draw(this, this@RippleModifier.size, color) }
+ drawCanvas { canvas, _ ->
+ effects.fastForEach { it.draw(canvas, this@RippleModifier.size, color) }
+ }
}
override fun onEnter() {
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/AnimationSynchronizationTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/AnimationSynchronizationTest.kt
index 7370875..e0ab1a6 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/AnimationSynchronizationTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/AnimationSynchronizationTest.kt
@@ -29,7 +29,7 @@
import androidx.ui.animation.Transition
import androidx.ui.core.Modifier
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.drawBackground
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -185,7 +185,7 @@
animationRunning = false }
) { state ->
hasRecomposed = true
- Canvas2(modifier = Modifier.fillMaxSize()) {
+ Canvas(modifier = Modifier.fillMaxSize()) {
recordedAnimatedValues.add(state[x])
drawRect(Color.Cyan, Offset(state[x], 0f), rectSize)
}
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/FirstDrawTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/FirstDrawTest.kt
index 015a77fb..fa112c6 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/FirstDrawTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/FirstDrawTest.kt
@@ -25,7 +25,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.setContent
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.graphics.Color
import androidx.ui.layout.fillMaxSize
import androidx.ui.test.android.AndroidComposeTestRule
@@ -46,7 +46,7 @@
fun waitsForFirstDraw() {
var drawn = false
testRule.setContent {
- Canvas2(Modifier.fillMaxSize()) {
+ Canvas(Modifier.fillMaxSize()) {
drawn = true
}
}
@@ -61,7 +61,7 @@
fun waitsForFirstDraw_withoutOnIdle() {
var drawn = false
testRule.setContent {
- Canvas2(Modifier.fillMaxSize()) {
+ Canvas(Modifier.fillMaxSize()) {
drawn = true
}
}
@@ -104,7 +104,7 @@
outOfBoundsView.setContent(Recomposer.current()) {
// If you see this box when running the test, the test is setup incorrectly
Box(Modifier, backgroundColor = Color.Yellow)
- Canvas2(Modifier) {
+ Canvas(Modifier) {
drawn = true
}
}
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt
index ffd3ff6..8cff678 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt
@@ -24,7 +24,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.TestTag
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.Text
import androidx.ui.foundation.VerticalScroller
import androidx.ui.graphics.Color
@@ -232,7 +232,7 @@
val drawRect = @Composable { color: Color ->
Semantics(container = true) {
- Canvas2(Modifier.preferredSize(100.dp)) {
+ Canvas(Modifier.preferredSize(100.dp)) {
drawRect(color)
elementHeight = Px(size.height)
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/TestAnimationClockTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/TestAnimationClockTest.kt
index 457ab16..46bfce8 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/TestAnimationClockTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/TestAnimationClockTest.kt
@@ -29,7 +29,7 @@
import androidx.ui.animation.Transition
import androidx.ui.core.Modifier
import androidx.ui.foundation.Box
-import androidx.ui.foundation.Canvas2
+import androidx.ui.foundation.Canvas
import androidx.ui.foundation.drawBackground
import androidx.ui.geometry.Offset
import androidx.ui.geometry.Size
@@ -178,7 +178,7 @@
animationRunning = false }
) { state ->
hasRecomposed = true
- Canvas2(modifier = Modifier.fillMaxSize()) {
+ Canvas(modifier = Modifier.fillMaxSize()) {
val xValue = state[x]
recordedAnimatedValues.add(xValue)
drawRect(Color.Cyan, Offset(xValue, 0.0f), size)
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/CoreText.kt b/ui/ui-text/src/main/java/androidx/ui/text/CoreText.kt
index 2df3706..961c9a2 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/CoreText.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/CoreText.kt
@@ -36,6 +36,7 @@
import androidx.ui.core.selection.Selectable
import androidx.ui.core.selection.SelectionRegistrarAmbient
import androidx.ui.graphics.Color
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.text.font.Font
import androidx.ui.text.selection.TextSelectionDelegate
import androidx.ui.text.style.TextAlign
@@ -115,16 +116,18 @@
children = emptyContent(),
modifier = modifier.drawBehind {
state.layoutResult?.let { layoutResult ->
- state.selectionRange?.let {
- TextDelegate.paintBackground(
- it.min,
- it.max,
- DefaultSelectionColor,
- this,
- layoutResult
- )
+ drawCanvas { canvas, _ ->
+ state.selectionRange?.let {
+ TextDelegate.paintBackground(
+ it.min,
+ it.max,
+ DefaultSelectionColor,
+ canvas,
+ layoutResult
+ )
+ }
+ TextDelegate.paint(canvas, layoutResult)
}
- TextDelegate.paint(this, layoutResult)
}
}.onPositioned {
// Get the layout coordinates of the text composable. This is for hit test of
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/CoreTextField.kt b/ui/ui-text/src/main/java/androidx/ui/text/CoreTextField.kt
index 8c532e5..be2616d 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/CoreTextField.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/CoreTextField.kt
@@ -38,6 +38,7 @@
import androidx.ui.focus.FocusModifier
import androidx.ui.focus.FocusState
import androidx.ui.focus.focusState
+import androidx.ui.graphics.painter.drawCanvas
import androidx.ui.input.EditProcessor
import androidx.ui.input.EditorValue
import androidx.ui.input.ImeAction
@@ -191,13 +192,15 @@
emptyContent(),
updatedModifier.drawBehind {
state.layoutResult?.let { layoutResult ->
- TextFieldDelegate.draw(
- this,
- value,
- offsetMap,
- layoutResult,
- DefaultSelectionColor
- )
+ drawCanvas { canvas, _ ->
+ TextFieldDelegate.draw(
+ canvas,
+ value,
+ offsetMap,
+ layoutResult,
+ DefaultSelectionColor
+ )
+ }
}
}.onPositioned {
if (textInputService != null) {
diff --git a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
index af08330..7afd759 100644
--- a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
+++ b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
@@ -48,8 +48,7 @@
Inspectable {
Column {
Box(Modifier.preferredSize(100.dp).drawBehind {
- val paint = Paint().also { it.color = Color(0xFF) }
- drawRect(size.toRect(), paint)
+ drawRect(Color(0xFF))
})
}
}