draw
Function
Common
Deprecated Please use a new overload accepting nullable GraphicsLayer
inline fun DrawScope.draw(
    density: Density,
    layoutDirection: LayoutDirection,
    canvas: Canvas,
    size: Size,
    block: DrawScope.() -> Unit,
)
Common
inline fun DrawScope.draw(
    density: Density,
    layoutDirection: LayoutDirection,
    canvas: Canvas,
    size: Size,
    graphicsLayer: GraphicsLayer? = null,
    block: DrawScope.() -> Unit,
)
Draws into the provided Canvas with the commands specified in the lambda with this DrawScope
as a receiver
Parameters
| density | Densityused to assist in conversions of density independent pixels to raw pixels to draw | 
| layoutDirection | LayoutDirectionof the layout being drawn in. | 
| canvas | target canvas to render into | 
| size | bounds relative to the current canvas translation in which the DrawScopeshould draw within | 
| graphicsLayer | Current GraphicsLayerwe are drawing into. Might be null if thecanvasis not provided by aGraphicsLayer, for example in the case of a software-accelerated drawing | 
| block | lambda that is called to issue drawing commands on this DrawScope | 
Code Examples
DrawScopeRetargetingSample
@Composable
fun DrawScopeRetargetingSample() {
    Box(
        modifier =
            Modifier.size(120.dp).drawWithCache {
                // Example that shows how to redirect rendering to an Android Picture and then
                // draw the picture into the original destination
                // Note:
                // Canvas#drawPicture is supported with hardware acceleration on Android API 23+
                // Check
                // https://developer.android.com/topic/performance/hardware-accel#drawing-support
                // for details of which drawing operations are supported with hardware acceleration
                val picture = android.graphics.Picture()
                val width = this.size.width.toInt()
                val height = this.size.height.toInt()
                onDrawWithContent {
                    val pictureCanvas =
                        androidx.compose.ui.graphics.Canvas(picture.beginRecording(width, height))
                    draw(this, this.layoutDirection, pictureCanvas, this.size) {
                        this@onDrawWithContent.drawContent()
                    }
                    picture.endRecording()
                    drawIntoCanvas { canvas -> canvas.nativeCanvas.drawPicture(picture) }
                }
            }
    )
}
