Unity7HighDPI

  • Launchpad entry: (none)

  • Created: 07-12-2013

  • Contributors: Stephen M. Webb

  • Packages affected: unity

This is the specification for the task of adjusting Unity7 to adapt to high-DPI displays.

Introduction

Purpose

This specification defines the work required to modify the Unity 7 Desktop Environment to support higher-DPI display hardware.

Scope

This specification applies to the unity Version 7 Desktop Shell and some of the software suite required to implement that product.

Definitions, Acronyms, and Abbreviations

DPI
dots per inch -- a measure of pixel density on a display
em

a unit of measure: effectively the same number of puxels as the width of the letter m in the current font.

high-DPI
more than 100 pixels per inch (eg. 3200 x 1800 on a 15" display)

Overview

This specification consists of an overall description of the changes required to the Unity 7 Desktop Shell to adapt to and improve the user experience on high-DPI display hardware, followed by descriptions of changes required to the individual components that make up the Unity 7 Desktop Shell.

Overall Description

Product Perspective

The Unity 7 Desktop shell is a primary interface for launching and control of applications on a desk computer. In 2013, a number of readily-available consumer grade device are appearing on the market with display devices capable of high-resolution (high pixels-per-inch), sometimes up to 3200 x 1800 pixels on a 15 inch screen. When Unity 7 is run in such a device's native resolution, the controls shrink to an unusable size. Increasing the system font size to accommodate the shrinkage causes problems because some text fields have hard-coded sizes, and has no effect on control sizes (for example, the close button on windows).

Because the Unity 7 product does not adjust well to higher pixel density displays at their native resolution, the user is forced to run their device at a lower, non-native resolution. This defeats the purpose of such a device and causes frustration and product dissatisfaction.

Product Functions

Modifications to the Unity 7 Desktop Shell must include the ability to scale text fields, decorations, icons, and spacing automatically to adjust to font size changes. To this end, all decoration and widget sizes should be expressible in em units.

The ability to scale all graphics on a display device to adjust for different DPI is required. Each display shall have a different adjustable configurable scale factor with a reasonable default based on a multiplier ration to the original designed 96 DPI.

User Characteristics

Expected user of the high-DPI Unity 7 Desktop Shell range from casual users with a modern laptop computer to artists or engineers with a multiple-monitor setup including one or more 4K displays. Set up and adjustment of high-DPI behaviour must be simple and straightforward.

Constraints

The scope of adjusting the Unity 7 Desktop Shell for high-DPI devices is large and the resources for completing this task in the Ubuntu cadence timeframe are few. It is possible or even likely that not all required tasks can be completed by the 14.04 LTS release dates.

Apportioning of Requirements

Modules and tasks not complete by the Ubuntu 14.04 LTS feature freeze may need to be delayed indefinitely.

Specific Requirements

External interface requirements

User Interfaces

Unity Font Settings

Display-Specific Scaling Settings

Hardware Interfaces

Autodetection of Display Addition and Removal

Software Interfaces

System Notifications of Changes

Modules

Dash

Launcher

Panel

Shortcuts

Shutdown Dialogs

Switcher

Tooltips

Decorations

Performance Requirements

References


CategorySpec

Unity/Desktop/14.04/Unity7HighDPI (last edited 2014-01-24 00:08:51 by 3v1n0)