IP Library Granted Patent US 9,324,183
Granted Patent B2
US 9,324,183 · App. 13/306,803 · Granted Apr 26, 2016

Dynamic graphical interface shadows

Inventors: Nicholas V. King (San Jose, CA); Duncan Robert Kerr (San Francisco, CA)
Assignee: Apple Inc.
G06T15/60G06T2200/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,324,183
App. No.
13/306,803
Granted
Apr 26, 2016
Kind
B2
Abstract

Dynamic window and cursor shadows are described. In some implementations, graphical user interface display objects can be configured with elevation offset information to give the display objects a three-dimensional surface that can have pixels of varying height. In some implementations, shadows that are rendered upon display objects configured with pixel elevation offset information can be adjusted to reflect the three-dimensional surface of the objects thereby better approximating real-life shadows. In some implementations, shadows can be dynamically rendered in real-time and adjusted according to the elevations of display objects onto which they are cast.

Claims (75)

1. A method comprising:

determining a first elevation value for a first graphical user interface element, where the first elevation value corresponds to a distance along an axis perpendicular to a graphical user interface display;

obtaining a first elevation offset value associated with a first pixel of the first graphical user interface element indicating an elevation offset of the first pixel with respect to the first elevation value of the first graphical user interface element, and obtaining a second elevation offset value associated with a second pixel of the first graphical user interface element indicating an elevation offset of the second pixel with respect to the first elevation value of the first graphical user interface element, wherein the first elevation offset value is different from the second elevation offset value;

generating a shadow associated with a second graphical user interface element based on the determined first elevation value and the first and second elevation offset values; and

displaying the first graphical user interface element and the shadow.

2. The method of claim 1 , where the first graphical user interface element is a window of an operating system.

3. The method of claim 1 , where the first graphical user interface element is an icon.

4. The method of claim 1 , further comprising:

determining a size of the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined size.

5. The method of claim 1 , further comprising:

determining an opacity of the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined opacity.

6. The method of claim 1 , further comprising:

determining a blur radius for the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined blur radius.

7. The method of claim 1 , the method further comprising:

determining a second elevation value for the second graphical user interface element, and determining a third elevation value for a graphical user interface background, wherein the shadow is generated based on the first and second elevation values and the first and second elevation offset values, independent of the third elevation value for the graphical user interface background.

8. The method of claim 1 , wherein the first graphical user interface element has a contoured surface, and the first and second elevation offset values correspond to different pixels along the contoured surface.

9. The method of claim 1 , the method further comprising:

receiving input moving the second graphical user interface element from a first position to a second position;

in response to the input:

obtaining a third elevation offset value associated with a third pixel of the first graphical user interface element indicating an elevation offset of the third pixel with respect to the first elevation value of the first graphical user interface element, wherein the third elevation offset value is different from the first and second elevation offset values, and wherein the shadow is generated independent of the third elevation offset value; and

after the shadow is generated independent of the third elevation offset value, updating the shadow associated with the second graphical user interface element based on the determined first elevation value and the third elevation offset value and independent of the first and second elevation offset values.

10. The method of claim 1 , wherein the first graphical user interface element and the second graphical user interface elements are both objects displayed on top of a background.

11. The method of claim 10 , wherein the background is a virtual desktop.

12. The method of claim 10 , wherein the background is the background of an application window.

13. A non-transitory computer-readable medium including one or more sequences of instructions which, when executed by one or more processors, causes:

determining a first elevation value for a first graphical user interface element, where the first elevation value corresponds to a distance along an axis perpendicular to a graphical user interface display;

obtaining a first elevation offset value associated with a first pixel of the first graphical user interface element indicating an elevation offset of the first pixel with respect to the first elevation value of the first graphical user interface element, and obtaining a second elevation offset value associated with a second pixel of the first graphical user interface element indicating an elevation offset of the second pixel with respect to the first elevation value of the first graphical user interface element, wherein the first elevation offset value is different from the second elevation offset value;

generating a shadow associated with a second graphical user interface element based on the determined elevation value and the first and second elevation offset values; and

displaying the first graphical user interface element and the shadow.

14. The computer-readable medium of claim 13 , where the first graphical user interface element is a window of an operating system.

15. The computer-readable medium of claim 13 , where the first graphical user interface element is an icon.

16. The computer-readable medium of claim 13 , where the instructions cause:

determining a size of the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined size.

17. The computer-readable medium of claim 13 , where the instructions cause:

determining an opacity of the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined opacity.

18. The computer-readable medium of claim 13 , where the instructions cause:

determining a blur radius for the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined blur radius.

19. The computer-readable medium of claim 13 , wherein the first graphical user interface element has a contoured surface, and the first and second elevation offset values correspond to different pixels along the contoured surface.

20. The computer-readable medium of claim 13 , wherein the instructions cause:

receiving input moving the second graphical user interface element from a first position to a second position;

in response to the input:

obtaining a third elevation offset value associated with a third pixel of the first graphical user interface element indicating an elevation offset of the third pixel with respect to the first elevation value of the first graphical user interface element, wherein the third elevation offset value is different from the first and second elevation offset values, and wherein the shadow is generated independent of the third elevation offset value; and

after the shadow is generated independent of the third elevation offset value, updating the shadow associated with the second graphical user interface element based on the determined first elevation value and the third elevation offset value and independent of the first and second elevation offset values.

21. A method comprising:

receiving touch input to a touch interface of a computing device;

determining an area of the touch interface associated with the touch input;

determining a first elevation value for a first graphical user interface element, where the first elevation value corresponds to a distance along an axis perpendicular to a graphical user interface display;

obtaining a first elevation offset value associated with a first pixel of the first graphical user interface element indicating an elevation offset of the first pixel with respect to the first elevation value of the first graphical user interface element, and obtaining a second elevation offset value associated with a second pixel of the first graphical user interface element indicating an elevation offset of the second pixel with respect to the first elevation value of the first graphical user interface element, wherein the first elevation offset value is different from the second elevation offset value;

generating a shadow associated with the touch input based on the area, the determined elevation value and the first and second elevation offset values; and

displaying the first graphical user interface element and the shadow.

22. A system comprising:

one or more processors; and

a computer-readable medium including one or more sequences of instructions which, when executed by the one or more processors, causes:

determining a first elevation value for a first graphical user interface element, where the first elevation value corresponds to a distance along an axis perpendicular to a graphical user interface display;

obtaining a first elevation offset value associated with a first pixel of the first graphical user interface element indicating an elevation offset of the first pixel with respect to the first elevation value of the first graphical user interface element, and obtaining a second elevation offset value associated with a second pixel of the first graphical user interface element indicating an elevation offset of the second pixel with respect to the first elevation value of the first graphical user interface element, wherein the first elevation offset value is different from the second elevation offset value;

generating a shadow associated with a second graphical user interface element based on the determined elevation value and the first and second elevation offset values; and

displaying the first graphical user interface element and the shadow.

23. The system of claim 22 , where the instructions cause:

determining a size of the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined size.

24. The system of claim 22 , where the instructions cause:

determining an opacity of the shadow based on the first elevation value and the first and second elevation offset values; and

generating the shadow based on the determined opacity.

25. The system of claim 22 , wherein the first graphical user interface element has a contoured surface, and the first and second elevation offset values correspond to different pixels along the contoured surface.

26. The system of claim 22 , wherein the instructions cause:

receiving input moving the second graphical user interface element from a first position to a second position;

in response to the input:

obtaining a third elevation offset value associated with a third pixel of the first graphical user interface element indicating an elevation offset of the third pixel with respect to the first elevation value of the first graphical user interface element, wherein the third elevation offset value is different from the first and second elevation offset values, and wherein the shadow is generated independent of the third elevation offset value; and

after the shadow is generated independent of the third elevation offset value, updating the shadow associated with the second graphical user interface element based on the determined first elevation value and the third elevation offset value and independent of the first and second elevation offset values.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SUBMISSION OF CORRECTIVE PAGES OF THE ASSIGNMENT PREVIOUSLY RECORDED ON REEL 027443 FRAME 0685. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNOR'S INTEREST. Recorded Mar 28, 2012
From: KING, NICHOLAS V.; KERR, DUNCAN ROBERT
To: APPLE INC.
Reel/Frame 027945/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2011
From: KING, NICHOLAS V.; KERR, DUNCAN ROBERT
To: APPLE INC.
Reel/Frame 027443/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2011
From: KING, NICHOLAS V.; KERR, DUNCAN ROBERT
To: APPLE INC.
Reel/Frame 027443/0685 →
Continuity (1)
Related Publication 20130135309A1 · May 30, 2013