Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/hardware/DisplayLuts#nestedclasses) \| [Ctors](https://developer.android.com/reference/android/hardware/DisplayLuts#pubctors) \| [Methods](https://developer.android.com/reference/android/hardware/DisplayLuts#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/hardware/DisplayLuts#inhmethods)

# DisplayLuts

*** ** * ** ***

` public final class DisplayLuts `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.hardware.DisplayLuts |

<br />

*** ** * ** ***

DisplayLuts provides the developers to apply Lookup Tables (Luts) to a `https://developer.android.com/reference/android/view/SurfaceControl`. Luts provides ways to control tonemapping for specific content. The general flow for how DisplayLuts fits into a display pipeline is as follows:

![](https://developer.android.com/static/reference/android/images/graphics/DisplayLuts.png)
DisplayLuts flow

<br />

Or in list form:

1. A `https://developer.android.com/reference/android/view/SurfaceControl`'s content is converted to RGB colors, if the source is YUV.
2. The RGB colors are de-gammed into linear values, normalized to the range of \[0, 1\].
3. The linear values are passed through a 1D LUT (if set). The 1D LUT looks up and applies gain multipliers.
4. The linear values are passed through a 3D LUT (if set). The 3D LUT maps input colors to a final linear color.
5. The output values are transformed to the panel color gamut, and then gammed to arrive at the final color.

Importantly: the LUT is applied on colors in linear space, in the source content's color gamut.
**See also:**

- `https://developer.android.com/reference/android/hardware/LutProperties`

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/hardware/DisplayLuts.Entry` |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/hardware/DisplayLuts#DisplayLuts()() ` Create a `https://developer.android.com/reference/android/hardware/DisplayLuts` instance. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/hardware/DisplayLuts#set(android.hardware.DisplayLuts.Entry)(https://developer.android.com/reference/android/hardware/DisplayLuts.Entry entry) ` Set a Lut to be applied. |
| ` void` | ` https://developer.android.com/reference/android/hardware/DisplayLuts#set(android.hardware.DisplayLuts.Entry,%20android.hardware.DisplayLuts.Entry)(https://developer.android.com/reference/android/hardware/DisplayLuts.Entry first, https://developer.android.com/reference/android/hardware/DisplayLuts.Entry second) ` Set Luts in order to be applied. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/hardware/DisplayLuts#toString()() ` Returns a string representation of the object. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### DisplayLuts

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public DisplayLuts ()
```

Create a `https://developer.android.com/reference/android/hardware/DisplayLuts` instance.

<br />

## Public methods

### set

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void set (DisplayLuts.Entry entry)
```

Set a Lut to be applied.

Use either this or `https://developer.android.com/reference/android/hardware/DisplayLuts#set(android.hardware.DisplayLuts.Entry,%20android.hardware.DisplayLuts.Entry)`. The function will replace any previously set lut(s).

<br />

<br />

| Parameters ||
|---|---|
| `entry` | `DisplayLuts.Entry`: Either an 1D Lut or a 3D Lut. This value cannot be `null`. <br /> |

### set

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void set (DisplayLuts.Entry first, 
                DisplayLuts.Entry second)
```

Set Luts in order to be applied.

An 1D Lut and 3D Lut will be applied in order. Use either this or `https://developer.android.com/reference/android/hardware/DisplayLuts#set(android.hardware.DisplayLuts.Entry)`. The function will replace any previously set lut(s)

<br />

<br />

| Parameters ||
|---|---|
| `first` | `DisplayLuts.Entry`: An 1D Lut. This value cannot be `null`. <br /> |
| `second` | `DisplayLuts.Entry`: A 3D Lut. This value cannot be `null`. <br /> |

### toString

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |