---
title: currentSwapChainPreTransform
product: Unity Editor
version: '7000.0'
latest_version: '7000.0'
status: This page documents version 7000.0. The latest version is 7000.0.
canonical: https://docs.unity.com/en-us/engine/7000.0/script-reference/unityengine/screen/currentswapchainpretransform
latest_url: https://docs.unity.com/en-us/engine/7000.0/script-reference/unityengine/screen/currentswapchainpretransform.md
last_updated: 2026-11-10
generated_at: 2026-11-11T23:26:53.771Z
locale: en-us
---

# currentSwapChainPreTransform

> The rotation that Unity applies during rendering to match the native orientation of the device's display panel.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine](/engine/7000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static SwapchainPreTransform currentSwapChainPreTransform { get; }
```

### Remarks

When pre-rotation is active, Unity renders each frame to the backbuffer already rotated to the native orientation of the display panel, so the operating system doesn't need to rotate the image again before it displays it. Use this property to find out which rotation Unity applies in the current frame. For more information, refer to [Framebuffer orientation](/engine/7000.0/manual/platform-specific/android/developing/graphics/vulkan-swapchain-pre-rotation.md).

This value isn't a screen orientation or a device orientation. It describes the rotation of the app's window relative to the native orientation of the display panel, which differs between devices:

* Most phones have a portrait native panel. A landscape app on a phone reports [SwapchainPreTransform.Rotate90](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform/rotate90.md) or [SwapchainPreTransform.Rotate270](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform/rotate270.md).
* Most tablets, foldables, and Chromebooks have a landscape native panel. A landscape app on these devices reports [SwapchainPreTransform.Identity](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform/identity.md), and a portrait app reports [SwapchainPreTransform.Rotate90](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform/rotate90.md) or [SwapchainPreTransform.Rotate270](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform/rotate270.md).
* The value follows the rotation of the app's window, not the physical device. If the screen orientation is locked and the user turns the device, [Input.deviceOrientation](/engine/7000.0/script-reference/unityengine/input/deviceorientation.md) changes but this value doesn't.

To find out whether the app is in portrait or landscape, use [Screen.orientation](/engine/7000.0/script-reference/unityengine/screen/orientation.md). To read the physical orientation of the device, use [Input.deviceOrientation](/engine/7000.0/script-reference/unityengine/input/deviceorientation.md).

The value is [SwapchainPreTransform.Identity](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform/identity.md) in the following cases, because Unity doesn't apply pre-rotation:

* The platform or graphics API doesn't support pre-rotation, and [SystemInfo.supportsSwapChainPreTransform](/engine/7000.0/script-reference/unityengine/systeminfo/supportsswapchainpretransform.md) is `false`. Only Android with the Vulkan graphics API supports pre-rotation.
* **Apply display rotation during rendering** is disabled in the Android Player settings. To check this setting from an Editor script, use [PlayerSettings.vulkanEnablePreTransform](/engine/7000.0/script-reference/unityeditor/playersettings/vulkanenablepretransform.md).
* [QualitySettings.disableSwapChainPreTransform](/engine/7000.0/script-reference/unityengine/qualitysettings/disableswapchainpretransform.md) is `true`.
* The app has no visible window, for example when it's in the background.
* The app runs in the Unity Editor, including the Device Simulator.

Unity applies pre-rotation only when it renders to the backbuffer, not when it renders to a [RenderTexture](/engine/7000.0/script-reference/unityengine/rendertexture.md). When Unity renders to the backbuffer, the shader constant `UNITY_DISPLAY_ORIENTATION_PRETRANSFORM` has the matching value.

Unity updates this value when it recreates the swapchain after the display rotates. During a rotation, this value can briefly differ from [Screen.orientation](/engine/7000.0/script-reference/unityengine/screen/orientation.md).

Additional Resources: [SwapchainPreTransform](/engine/7000.0/script-reference/unityengine/rendering/swapchainpretransform.md), [SystemInfo.supportsSwapChainPreTransform](/engine/7000.0/script-reference/unityengine/systeminfo/supportsswapchainpretransform.md), [QualitySettings.disableSwapChainPreTransform](/engine/7000.0/script-reference/unityengine/qualitysettings/disableswapchainpretransform.md).
