---
title: "drawLayer"
description: "Draw the provided [GraphicsLayer] into the current [DrawScope]. The [GraphicsLayer] provided must
have [GraphicsLayer.record] invoked on it otherwise no visual output will be seen in the rendered
result."
type: "function"
---

<div class='type'>Function</div>


<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


```kotlin
fun DrawScope.drawLayer(graphicsLayer: GraphicsLayer)
```


Draw the provided `GraphicsLayer` into the current `DrawScope`. The `GraphicsLayer` provided must
have `GraphicsLayer.record` invoked on it otherwise no visual output will be seen in the rendered
result.



## Code Examples
### GraphicsLayerAlphaSample
```kotlin
fun DrawScope.GraphicsLayerAlphaSample(layer: GraphicsLayer) {
    // Create a layer sized to the destination draw scope that is comprised
    // of an inset red rectangle
    layer.apply {
        record { inset(20f, 20f) { drawRect(Color.Red) } }
        // Renders the content of the layer with 50% alpha when it is drawn
        // into the destination
        alpha = 0.5f
    }
    drawLayer(layer)
}
```
### GraphicsLayerColorFilterSample
```kotlin
fun DrawScope.GraphicsLayerColorFilterSample(layer: GraphicsLayer) {
    // Create a layer with the same configuration as the destination DrawScope
    // and draw a red rectangle in the layer
    layer.apply {
        record { drawRect(Color.Red) }
        // Apply a ColorFilter that will tint the contents of the layer to blue
        // when it is drawn into the destination DrawScope
        colorFilter = ColorFilter.tint(Color.Blue)
    }
    drawLayer(layer)
}
```
### GraphicsLayerRenderEffectSample
```kotlin
@RequiresApi(Build.VERSION_CODES.S)
fun DrawScope.GraphicsLayerRenderEffectSample(layer: GraphicsLayer) {
    // Create a layer sized to the destination draw scope that is comprised
    // of an inset red rectangle
    layer.apply {
        record { inset(20f, 20f) { drawRect(Color.Red) } }
        // Configure a blur to the contents of the layer that is applied
        // when drawn to the destination DrawScope
        renderEffect = BlurEffect(20f, 20f, TileMode.Decal)
    }
    drawLayer(layer)
}
```
### GraphicsLayerRotationX
```kotlin
fun DrawScope.GraphicsLayerRotationX(layer: GraphicsLayer) {
    layer.apply {
        record { drawRect(Color.Yellow) }
        // Rotates the yellow rect 45f clockwise relative to the x axis
        rotationX = 45f
    }
    drawLayer(layer)
}
```
### GraphicsLayerRotationYWithCameraDistance
```kotlin
fun DrawScope.GraphicsLayerRotationYWithCameraDistance(layer: GraphicsLayer) {
    layer.apply {
        record { drawRect(Color.Yellow) }
        // Rotates the yellow rect 45f clockwise relative to the y axis
        rotationY = 45f
        cameraDistance = 5.0f
    }
    drawLayer(layer)
}
```
### GraphicsLayerScaleAndPivotSample
```kotlin
fun DrawScope.GraphicsLayerScaleAndPivotSample(layer: GraphicsLayer) {
    // Create a 200 x 200 pixel layer that has a red rectangle drawn in the lower right
    // corner.
    layer.apply {
        record(size = IntSize(200, 200)) {
            drawRect(Color.Red, topLeft = Offset(size.width / 2f, size.height / 2f))
        }
        // Scale the layer by 1.5x in both the x and y axis relative to the bottom
        // right corner
        scaleX = 1.5f
        scaleY = 1.5f
        pivotOffset = Offset(this.size.width.toFloat(), this.size.height.toFloat())
    }
    // Draw the layer into the provided DrawScope
    drawLayer(layer)
}
```
### GraphicsLayerTopLeftSample
```kotlin
fun DrawScope.GraphicsLayerTopLeftSample(layer: GraphicsLayer) {
    // Build the layer with the density, layout direction and size from the DrawScope
    // and position the top left to be 20 pixels from the left and 30 pixels from the top.
    // This will the bounds of the layer with a red rectangle
    layer.apply {
        record { drawRect(Color.Red) }
        this.topLeft = IntOffset(20, 30)
    }
    // Draw the layer into the provided DrawScope
    drawLayer(layer)
}
```

