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 around, zoomed in, zoomed out, rotated, or have transparency effects applied to them, all without requiring the application to redraw or even be aware that such effects are taking place.

Screen is responsible for:

  • running all drivers (e.g., 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 one final image that is displayed. This responsibility is handled by the Composition Manager.

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 such tasks 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: 2013-12-21

comments powered by Disqus