In computer graphics programming, an Open Graphics Library® (OpenGL®) display is an area of a monitor or other visual display device that is managed either fully or partially by the OpenGL® libraries and drivers. An OpenGL® display can be an entire screen, which is known as full-screen mode, or it can be only the area inside a window within a graphical user interface (GUI) or a small panel embedded in a larger layout, when the larger layout is not managed by OpenGL®. Some operating systems and computer configurations use OpenGL® as the default method for drawing to a screen, meaning that, technically, everything shown on the monitor is contained in an OpenGL® display.
Most end users do not make a distinction between what is and is not an OpenGL® display, because this type of technical aspect is usually transparent in most software. From a computer graphics programming perspective, however, an OpenGL® display needs to be a known quantity that is created with specific attributes such as dimensions, color depth and other properties. The display itself is basically a rectangular Cartesian grid that relates to the rectangular area of the physical screen on which it will appear. The graphics hardware and OpenGL® drivers both use the attributes of the OpenGL® display during the process of rasterization, which involves turning three-dimensional (3D) objects that are defined mathematically into two-dimensional (2D) pixels that are placed on the display surface.
In general, an OpenGL® display is not usually drawn directly to a visible screen, mostly because it creates visual artifacts and on-screen tearing. Instead, the display is attached to a specific location in memory, called a buffer, which is drawn to by the OpenGL® drawing commands. Once the image to be displayed is rendered, it is then copied onto the display so it appears on screen as quickly as possible.
To a certain extent, use of the OpenGL® display is abstracted for programmers. As with many aspects of OpenGL®, there are functions that can define, draw to and otherwise manipulate the display, but they can produce varied results on different types of hardware. Some configurations, for example, will attempt to automatically scale a display to fit a given area, regardless of how many pixels are contained within the target rectangle, potentially reducing the quality of the rendered frame. Even with the issue of variable quality, however, it is still beneficial in most cases to have the ability to send output to any type of display device, regardless of whether it is a mobile phone, digital projector or virtual reality headset.