20
WINDOW MANAGER AGL F2F Technical discussion San Jose July 11, 2017

WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

WINDOW MANAGER

AGL F2F Technical discussion

San Jose

July 11, 2017

Page 2: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation2 - Confidential

Agenda

Window Manager Requirements Plan

Window manager Features Overview architecture Internal components Features Use cases (sample) Sequence chart (draft)

Window manager APIs (draft)

Page 3: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation3 - Confidential

Window ManagerRequirements To support multi applications and multi GUI

(e.g., Qt, HTML5, JavaFX, EB)

To support (OEM specific) Policy

To support multi ECU and Multi Display

MAIN SUB HOME NAVI BASE

Hs HOME HOME — To n1 To b1

n1 NAVI NAVI To Hs — To n2

n2 NAVI * To Hs To n1 MAIN:NAVI

SUB:BASE

b1 BASE BASE To Hs To n1 —

b2 BASE * To Hs To n1 To b1

Page 4: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation4 - Confidential

Page 5: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation

WINDOW MANAGER FEATURES

Page 6: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation6 - Confidential

Window Manager – Overview 1/3

ArchitectureQt Application

WM API Client Library

AG

L Fr

amew

ork

Application HMI-QML

Homescreen

WM API Client Library

AG

L Fr

amew

ork

HomeScreen HMI

HTML Application

WM API Client Library

AG

L Fr

amew

ork

HTML

AGL Binding Layer

Weston

IVI Shell / XDG Shell

Wayland Server

Wayland Compositor

IVI Application

Window Manager

AG

L Fr

amew

ork

WM API Service

Wayland Client

WindowManager internals2

1

WindowManager

APP

Wayland

Legend:

Page 7: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation7 - Confidential

Window Manager – Overview 2/3Internal Components and External dependencies

OEM Specific

APPs

Wayland

Legend:

WindowManager

Weston

Wayland Compositor

IVI Shell

Qt Application EB Application

API Client Library

HTML Application

API Client Library

Java FX Application

API Client Library

Window Manager

API Service

Wayland InterfaceWayland Client

Resource Database

Policy Database

Layout Database

Resource Manager

Policy Manager

Layout Manager

API Client Library

Page 8: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation8 - Confidential

Window Manager – Overview 2/3

Page 9: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation9 - Confidential

Window Manager – Sample Use Cases

Page 10: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation10 - Confidential

Window Manager – Sample Use Cases 1/4

Page 11: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation11 - Confidential

Window Manager – Sample Use Cases 2/4

Page 12: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation12 - Confidential

Window Manager – Sample Use Cases 3/4

Page 13: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation13 - Confidential

Window Manager – Sample Use Cases 4/4

Page 14: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation14 - Confidential

Window Manager – APIsS.No.

API Description

1 bool registerApplication(int appid)Register one application with id appid, tied to the PID determined by the connection.

2 int areaid registerSurface(int appid, surface_type type)

Provide the areaid to an application to then create its owned surface with id areaid and type. Type can be something like default (generic surface, no special handling) or popup (which must be placed on a popup-layer).

3 bool allocateWindowResources(int appid, int areaid)Activate the areaid application surface, i.e. make it visible in its assigned area according to layout

4 bool deallocateWindowResources(int appid, int areaid) Deactivate an application surface, based on the areaid

5 void endDraw(int areaid) Rendering Completed

6 bool requestApplication(int appid)Request to window manager for application with appid to be displayed, this

might trigger a layout change, depending on policies and current layout.

Page 15: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation15 - Confidential

Window Manager – APIsS.No.

API Description

1 void visible(int areaid) Notify that area areaid has become visible

2 void invisible(int areaid) Notify that area areaid has become invisible

3 void active(int areaid) Notify that an area areaid is currently active (has focus)

4 void inactive(int areaid) Notify that an area areaid is currently inactive (has lost focus)

5 void layoutChanged(int areaid, layout newlayout) Notify a client area that its layout changed

6 void syncDraw(int areaid) Redraw area after layout change

7 void flushDraw(int areaid) Notify client that it should swap buffers (after SyncDraw)

8 void endDraw(int areaid) Notify client that the drawing process ended after swap buffers

9 void popupTimedOut(int areaid) Notify a client, that its popup surface timeout is expired

Page 16: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation

THANK YOU

Page 17: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporationwww.mentor.com

Page 18: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation

REFERENCES

Page 19: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation19 - Confidential

Window Manager

Page 20: WINDOW MANAGER - Automotive Grade Linux...2017/07/11  · Window Manager –Overview 2/3 Internal Components and External dependencies OEM Specific APPs Wayland Legend: Window Manager

Restricted © 2017 Mentor Graphics Corporation20 - Confidential

Window Manager