All Data Structures Files Functions Variables Typedefs Macros Groups Pages
Multi-monitor guide

# Monitor objects

The GLFWmonitor object represents a currently connected monitor.

# Retrieving monitors

The primary monitor is returned by glfwGetPrimaryMonitor. It is usually the user's preferred monitor and the one with global UI elements like task bar or menu bar.

GLFWmonitor* primary = glfwGetPrimaryMonitor();

You can retrieve all currently connected monitors with glfwGetMonitors.

int count;
GLFWmonitor** monitors = glfwGetMonitors(&count);

# Retrieving video modes

Although GLFW generally does a good job at selecting a suitable video mode for you when you open a full screen window, it is sometimes useful to know exactly which modes are available on a certain system. For example, you may want to present the user with a list of video modes to select from. To get a list of available video modes, you can use the function glfwGetVideoModes.

int count;
GLFWvidmode* modes = glfwGetVideoModes(monitor, &count);

To get the current video mode of a monitor call glfwGetVideoMode.

const GLFWvidmode* mode = glfwGetVideoMode(monitor);

# Monitor physical size

The physical size in millimetres of a monitor, or an approximation of it, can be retrieved with glfwGetMonitorPhysicalSize.

int widthMM, heightMM;
glfwGetMonitorPhysicalSize(monitor, &widthMM, &heightMM);

This can, for example, be used together with the current video mode to calculate the DPI of a monitor.

const double dpi = mode->width / (widthMM / 25.4);

# Monitor name

The name of a monitor is returned by glfwGetMonitorName.

const char* name = glfwGetMonitorName(monitor);

The monitor name is a regular C string using the UTF-8 encoding. Note that monitor names are not guaranteed to be unique.

# Monitor gamma ramp

The gamma ramp of a monitor can be set with glfwSetGammaRamp, which accepts a monitor handle and a pointer to a GLFWgammaramp structure.

glfwSetGammaRamp(monitor, &ramp);

The current gamma ramp for a monitor is returned by glfwGetGammaRamp.

const GLFWgammaramp* ramp = glfwGetGammaRamp(monitor);

If you wish to set a regular gamma ramp, you can have GLFW calculate it for you from the desired exponent with glfwSetGamma, which in turn calls glfwSetGammaRamp with the resulting ramp.

glfwSetGamma(monitor, 1.0);