Overview of Screen

Screen is a compositing windowing system. Unlike traditional windowing systems that arbitrate access to a single buffer associated with a display, this compositing windowing system provides the means for applications to render off-screen.

Rendering to off-screen buffers allows the manipulation of window contents without having to involve the applications that are doing the rendering. Windows can be moved, zoomed (in or out), rotated, or have other effects applied to them, without requiring the application to be aware that such effects are taking place or to perform a redraw.

Screen is responsible for:

  • running all drivers (for example, input, display, OpenGL ES)
  • allocating memory needed by application windows
  • displaying content when rendering completes

Screen integrates multiple graphics and user interface (UI) technologies into a single scene. This scene is rendered into one image that is associated with a display.

Diagram showing Screen as a compositing window manager.

Handling composition

The main responsibility of Screen is to combine all visible window buffers into a single displayable image. The Composition Manager is responsible for creating this image.

Screen has a plug-in architecture that includes hardware-specific compositing modules and a module for OpenGL for Embedded Systems (OpenGL ES).

Screen uses GPU-accelerated operations to optimally build the final scene.

Communicating with applications

Applications communicate with the Composition Manager using Screen API to perform tasks such as the following:
  • creating and destroying windows
  • creating and destroying pixmaps
  • using accessor functions to set and get native window, pixmap, display, device, and buffer properties
  • drawing into native buffers that are associated with windows and pixmaps
  • making areas, within buffers, that can be displayed
  • Receiving and processing asynchronous events from Screen
  • sending events to other windowed applications
Applications can render using:
  • software; applications access the window buffer and write to it using the CPU
  • OpenGL ES; use EGL to target the window buffer(s) with OpenGL ES calls

Last modified: 2015-03-31

Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus