Retained mode in computer graphics is a major pattern of
API design in graphics libraries, in which
* the
graphics library, instead of the
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuabl ...
, retains the scene (complete
object model
In computing, object model has two related but distinct meanings:
# The properties of objects in general in a specific computer programming language, technology, notation or methodology that uses them. Examples are the object models of ''Java'', ...
of the
rendering primitive
This is a glossary of terms relating to computer graphics.
For more general computer hardware terms, see glossary of computer hardware terms.
0–9
A
B
...
s) to be
rendered and
* the
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuabl ...
calls into the
graphics library do not directly cause actual rendering, but make use of extensive indirection to resources, managed thus ''retained'' by the
graphics library.
It does not preclude the use of
double-buffering.
Immediate mode is an alternative approach. Historically, retained mode has been the dominant style in
GUI libraries;
however, both can coexist in the same library and are not necessarily exclusionary in practice.
Overview

In retained mode the
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuabl ...
calls do not directly cause actual rendering, but instead update an
abstract internal model (typically a list of objects) which is maintained within the library's data space. This allows the library to optimize when actual rendering takes place along with the processing of related objects.
Some techniques to optimize rendering include:
* managing
double buffering
* treatment of
hidden surfaces by
backface culling
In computer graphics, back-face culling determines whether a polygon of a graphical object is drawn. It is a step in the graphical pipeline that tests whether the points in the polygon appear in clockwise or counter-clockwise order when projected ...
/
occlusion culling (
Z-buffering
A depth buffer, also known as a z-buffer, is a type of data buffer used in computer graphics to represent depth information of objects in 3D space from a particular perspective. Depth buffers are an aid to rendering a scene to ensure that th ...
)
* only transferring data that has changed from one frame to the next from the application to the library
Example of coexistence with immediate mode in the same library is
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
. OpenGL has immediate mode functions that can use previously defined server side objects (
textures,
vertex buffers and
index buffers,
shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as '' shading''. Shaders have evolved to perform a variety of spec ...
s, etc.) without resending unchanged data.
Examples of retained mode rendering systems include
Windows Presentation Foundation
Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was init ...
,
SceneKit on macOS,
and
PHIGS.
See also
*
Compositing window manager
*
Scene graph
Scene (from Greek σκηνή ''skēnḗ'') may refer to:
Arts, entertainment, and media Music
*Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers
* The Scene who recor ...
References
{{DEFAULTSORT:Retained Mode
Computer graphics
3D computer graphics