sdlxGetFullscreenDisplayModes function video
Get a list of fullscreen display modes available on a display.
The display modes are sorted in this priority:
- w -> largest to smallest
- h -> largest to smallest
- bits per pixel -> more colors to fewer colors
- packed pixel layout -> largest to smallest
- refresh rate -> highest to lowest
- pixel density -> lowest to highest
\param displayID the instance ID of the display to query. \param count a pointer filled in with the number of display modes returned, may be NULL. \returns a NULL terminated array of display mode pointers or NULL on failure; call SDL_GetError() for more information. This is a single allocation that should be freed with SDL_free() when it is no longer needed.
\threadsafety This function should only be called on the main thread.
\since This function is available since SDL 3.2.0.
\sa SDL_GetDisplays
extern SDL_DECLSPEC SDL_DisplayMode ** SDLCALL SDL_GetFullscreenDisplayModes(SDL_DisplayID displayID, int *count)
See also:
Implementation
List<SdlxDisplayMode>? sdlxGetFullscreenDisplayModes(int displayID) =>
ffi.using((arena) {
final countPointer = arena<Int32>();
final resultPointer = sdlGetFullscreenDisplayModes(
displayID,
countPointer,
);
if (resultPointer == nullptr) {
return null;
}
try {
final count = countPointer.value;
final result = <SdlxDisplayMode>[];
for (var i = 0; i < count; i++) {
final modePointer = (resultPointer + i).value;
if (modePointer != nullptr) {
result.add(SdlxDisplayMode.fromPointer(modePointer));
}
}
return List<SdlxDisplayMode>.unmodifiable(result);
} finally {
sdlFree(resultPointer.cast<Void>());
}
});