# CurvedTextStyle

Artifact: [androidx.wear.compose:compose-foundation](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/foundation/CurvedTextStyle.kt+class:androidx.wear.compose.foundation.CurvedTextStyle) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)


```
class CurvedTextStyle
```

<br />

*** ** * ** ***

Styling configuration for a curved text.

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedModifier
import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.foundation.background
import androidx.wear.compose.foundation.basicCurvedText
import androidx.wear.compose.foundation.curvedComposable
import androidx.wear.compose.foundation.padding
import androidx.wear.compose.foundation.size
import androidx.wear.compose.material.Text

CurvedLayout(modifier = Modifier.fillMaxSize()) {
    basicCurvedText(
        "Curved Text",
        CurvedModifier.padding(10.dp),
        style = {
            CurvedTextStyle(fontSize = 16.sp, color = Color.Black, background = Color.White)
        },
    )
    curvedComposable { Box(modifier = Modifier.size(20.dp).background(Color.Gray)) }
    curvedComposable {
        BasicText(
            "Normal Text",
            Modifier.padding(5.dp),
            TextStyle(fontSize = 16.sp, color = Color.Black, background = Color.White),
        )
    }
}
```

Sample using different letter spacings for top \& bottom text:

```kotlin
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedDirection
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.foundation.basicCurvedText
import androidx.wear.compose.material.Text

val style =
    CurvedTextStyle(
        letterSpacing = 0.6.sp,
        letterSpacingCounterClockwise = 1.4.sp,
        color = Color.White,
    )
Box {
    CurvedLayout(modifier = Modifier.fillMaxSize()) {
        basicCurvedText("Clockwise", style = style)
    }
    CurvedLayout(
        modifier = Modifier.fillMaxSize(),
        angularDirection = CurvedDirection.Angular.CounterClockwise,
        anchor = 90f,
    ) {
        basicCurvedText("Counter Clockwise", style = style)
    }
}
```

Sample using different warping:

```kotlin
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.sp
import androidx.wear.compose.foundation.CurvedDirection
import androidx.wear.compose.foundation.CurvedLayout
import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.foundation.basicCurvedText
import androidx.wear.compose.material.Text

val style =
    CurvedTextStyle(
        letterSpacing = 0.6.sp,
        letterSpacingCounterClockwise = 1.4.sp,
        color = Color.White,
    )
Box {
    CurvedLayout(modifier = Modifier.fillMaxSize()) {
        basicCurvedText(
            "No Warping",
            style = style.copy(warpOffset = CurvedTextStyle.WarpOffset.None),
        )
    }
    CurvedLayout(
        modifier = Modifier.fillMaxSize(),
        angularDirection = CurvedDirection.Angular.CounterClockwise,
        anchor = 90f,
    ) {
        basicCurvedText(
            "Standard Warping",
            style.copy(warpOffset = CurvedTextStyle.WarpOffset.HalfOpticalHeight),
        )
    }
}
```

## Summary

| ### Nested types |
|---|
| `value class https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle.WarpOffset` Used to specify if we want to warp the text, and if so, the offset for warping. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#CurvedTextStyle(androidx.compose.ui.text.TextStyle)(style: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle)` Create a curved text style from the given text style. |
| `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#CurvedTextStyle(androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle.WarpOffset)( background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily?, fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight?, fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle?, fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis?, letterSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, letterSpacingCounterClockwise: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, lineHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, warpOffset: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle.WarpOffset )` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#copy(androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.text.font.FontFamily,androidx.compose.ui.text.font.FontWeight,androidx.compose.ui.text.font.FontStyle,androidx.compose.ui.text.font.FontSynthesis,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.compose.ui.unit.TextUnit,androidx.wear.compose.foundation.CurvedTextStyle.WarpOffset)( background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color, fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily?, fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight?, fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle?, fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis?, letterSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, letterSpacingCounterClockwise: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, lineHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit, warpOffset: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle.WarpOffset )` |
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#equals(kotlin.Any)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#hashCode()()` |
| `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)(other: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle?)` Returns a new curved text style that is a combination of this style and the given `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)` style. |
| `operator https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#plus(androidx.wear.compose.foundation.CurvedTextStyle)(other: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle)` Plus operator overload that applies a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)`. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#toString()()` |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#background()` The background color for the text. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#color()` The text color. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily?` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#fontFamily()` The font family to be used when rendering the text. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#fontSize()` The size of glyphs (in logical pixels) to use when painting the text. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle?` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#fontStyle()` The typeface variant to use when drawing the letters (e.g. italic). |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis?` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#fontSynthesis()` Whether to synthesize font weight and/or style when the requested weight or style cannot be found in the provided font family. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight?` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#fontWeight()` The thickness of the glyphs, in a range of 1, 1000. see `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight` |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#letterSpacing()` The amount of space (in em or sp) to add between each letter, when text is going clockwise. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#letterSpacingCounterClockwise()` The amount of space (in em or sp) to add between each letter, when text is going counterClockwise. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#lineHeight()` Line height for the text in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` unit, e.g. SP or EM. |
| `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle.WarpOffset` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#warpOffset()` specifies if we want to warp the text, and if so, the offset for warping. |

## Public constructors

### CurvedTextStyle

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
CurvedTextStyle(style: TextStyle)
```

Create a curved text style from the given text style.

Note that not all parameters in the text style will be used, only `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#color()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontSize()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#background()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontFamily()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontWeight()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontStyle()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#fontSynthesis()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#letterSpacing()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextStyle#lineHeight()`.

### CurvedTextStyle

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.6.0)

```
CurvedTextStyle(
    background: Color = Color.Unspecified,
    color: Color = Color.Unspecified,
    fontSize: TextUnit = TextUnit.Unspecified,
    fontFamily: FontFamily? = null,
    fontWeight: FontWeight? = null,
    fontStyle: FontStyle? = null,
    fontSynthesis: FontSynthesis? = null,
    letterSpacing: TextUnit = TextUnit.Unspecified,
    letterSpacingCounterClockwise: TextUnit = TextUnit.Unspecified,
    lineHeight: TextUnit = TextUnit.Unspecified,
    warpOffset: CurvedTextStyle.WarpOffset = WarpOffset.Unspecified
)
```

| Parameters |
|---|---|
| `background: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color = Color.Unspecified` | The background color for the text. |
| `color: https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Color = Color.Unspecified` | The text color. |
| `fontSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The size of glyphs (in logical pixels) to use when painting the text. This may be `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit#Unspecified()` for inheriting from another `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle`. |
| `fontFamily: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontFamily? = null` | The font family to be used when rendering the text. |
| `fontWeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight? = null` | The thickness of the glyphs, in a range of 1, 1000. see `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight` |
| `fontStyle: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontStyle? = null` | The typeface variant to use when drawing the letters (e.g. italic). |
| `fontSynthesis: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontSynthesis? = null` | Whether to synthesize font weight and/or style when the requested weight or style cannot be found in the provided font family. |
| `letterSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The amount of space (in em or sp) to add between each letter, when text is going clockwise. |
| `letterSpacingCounterClockwise: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | The amount of space (in em or sp) to add between each letter, when text is going counterClockwise. Note that this usually needs to be bigger than `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#letterSpacing()` to account for the fact that going clockwise, text fans out from the baseline while going counter clockwise text fans in. If not specified, the value for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#letterSpacing()` will be used. |
| `lineHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit = TextUnit.Unspecified` | Line height for the text in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` unit, e.g. SP or EM. Note that since curved text only has one line, this used the equivalent of a lineHeightStyle: alignment = Center, trim = None, mode = Fixed |
| `warpOffset: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle.WarpOffset = WarpOffset.Unspecified` | specifies if we want to warp the text, and if so, the offset for warping. Warping the text will cause each character to be modified in shape so that it is thinner when it is closer to the center of the screen and wider when it's further away. This also makes adjacent characters share a line, so this is particularly useful for cursive fonts. When warping is active, this parameter specifies which horizontal line of the text will keep its width. |

## Public functions

### copy

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.6.0)

```
fun copy(
    background: Color = this.background,
    color: Color = this.color,
    fontSize: TextUnit = this.fontSize,
    fontFamily: FontFamily? = this.fontFamily,
    fontWeight: FontWeight? = this.fontWeight,
    fontStyle: FontStyle? = this.fontStyle,
    fontSynthesis: FontSynthesis? = this.fontSynthesis,
    letterSpacing: TextUnit = this.letterSpacing,
    letterSpacingCounterClockwise: TextUnit = this.letterSpacingCounterClockwise,
    lineHeight: TextUnit = this.lineHeight,
    warpOffset: CurvedTextStyle.WarpOffset = this.warpOffset
): CurvedTextStyle
```

### equals

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
open operator fun equals(other: Any?): Boolean
```

### hashCode

```
open fun hashCode(): Int
```

### merge

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
fun merge(other: CurvedTextStyle? = null): CurvedTextStyle
```

Returns a new curved text style that is a combination of this style and the given `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)` style.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)` curved text style's null or inherit properties are replaced with the non-null properties of this curved text style. Another way to think of it is that the "missing" properties of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)` style are *filled* by the properties of this style.

If the given curved text style is null, returns this curved text style.

### plus

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
operator fun plus(other: CurvedTextStyle): CurvedTextStyle
```

Plus operator overload that applies a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#merge(androidx.wear.compose.foundation.CurvedTextStyle)`.

### toString

```
open fun toString(): String
```

## Public properties

### background

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
val background: Color
```

The background color for the text.

### color

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
val color: Color
```

The text color.

### fontFamily

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.1.0)

```
val fontFamily: FontFamily?
```

The font family to be used when rendering the text.

### fontSize

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.0.0)

```
val fontSize: TextUnit
```

The size of glyphs (in logical pixels) to use when painting the text. This may be `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit#Unspecified()` for inheriting from another `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle`.

### fontStyle

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.1.0)

```
val fontStyle: FontStyle?
```

The typeface variant to use when drawing the letters (e.g. italic).

### fontSynthesis

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.1.0)

```
val fontSynthesis: FontSynthesis?
```

Whether to synthesize font weight and/or style when the requested weight or style cannot be found in the provided font family.

### fontWeight

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.1.0)

```
val fontWeight: FontWeight?
```

The thickness of the glyphs, in a range of 1, 1000. see `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontWeight`

### letterSpacing

```
val letterSpacing: TextUnit
```

The amount of space (in em or sp) to add between each letter, when text is going clockwise.

### letterSpacingCounterClockwise

```
val letterSpacingCounterClockwise: TextUnit
```

The amount of space (in em or sp) to add between each letter, when text is going counterClockwise. Note that this usually needs to be bigger than `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#letterSpacing()` to account for the fact that going clockwise, text fans out from the baseline while going counter clockwise text fans in. If not specified, the value for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/CurvedTextStyle#letterSpacing()` will be used.

### lineHeight

```
val lineHeight: TextUnit
```

Line height for the text in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` unit, e.g. SP or EM. Note that since curved text only has one line, this used the equivalent of a lineHeightStyle: alignment = Center, trim = None, mode = Fixed

### warpOffset

```
val warpOffset: CurvedTextStyle.WarpOffset
```

specifies if we want to warp the text, and if so, the offset for warping. Warping the text will cause each character to be modified in shape so that it is thinner when it is closer to the center of the screen and wider when it's further away. This also makes adjacent characters share a line, so this is particularly useful for cursive fonts. When warping is active, this parameter specifies which horizontal line of the text will keep its width.