Get the properties associated with a display.
Defined in <SDL3/SDL_video.h>
SDL_PropertiesID SDL_GetDisplayProperties(SDL_DisplayID displayID);
SDL_DisplayID | displayID | the instance ID of the display to query. |
(SDL_PropertiesID) Returns a valid property ID on success or 0 on failure; call SDL_GetError() for more information.
The following read-only properties are provided by SDL:
SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN
: true if the display has HDR headroom above the SDR white point. This is for informational and diagnostic purposes only, as not all platforms provide this information at the display level.On KMS/DRM:
SDL_PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER
: the "panel orientation" property for the display in degrees of clockwise rotation. Note that this is provided only as a hint, and the application is responsible for any coordinate transformations needed to conform to the requested display orientation.This function should only be called on the main thread.
This function is available since SDL 3.1.3.
// Example program
// Use SDL3 to check whether displays have HDR enabled
#include <SDL3/SDL_log.h>
#include <SDL3/SDL_main.h>
#include <SDL3/SDL_stdinc.h>
#include <SDL3/SDL_video.h>
int
int argc, char** argv)
main(
{if (!SDL_Init(SDL_INIT_VIDEO)) {
"Unable to initialize SDL: %s", SDL_GetError());
SDL_Log(return 0;
}
"SDL initialized");
SDL_Log(
int num_displays;
SDL_DisplayID *displays = SDL_GetDisplays(&num_displays);
for(int i = 0; i < num_displays; i++) {
SDL_PropertiesID prop_id = SDL_GetDisplayProperties(displays[i]);
if(!SDL_GetBooleanProperty(prop_id, SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN, false)) {
"Display with ID %"SDL_PRIu32 " does not have HDR enabled.", displays[i]);
SDL_Log(else {
} "Display with ID %"SDL_PRIu32 " has HDR enabled.", displays[i]);
SDL_Log(
}
}
SDL_free(displays);
return 0;
}