SDL_GetWindowDisplayIndex() for Multiple Displays

How does SDL_GetWindowDisplayIndex() work if the window spans multiple displays?

When a window spans multiple displays, SDL_GetWindowDisplayIndex() returns the index of the display that contains the largest portion of the window. SDL uses internal calculations based on window bounds to determine this.

Example Code

Here's an example where we create a large window that might span multiple displays:

#include <SDL2/SDL.h>
#include <iostream>

int main() {
  SDL_Init(SDL_INIT_VIDEO);

  // A window that may span multiple displays
  SDL_Window* window = SDL_CreateWindow(
    "Multi-Display Test",
    SDL_WINDOWPOS_CENTERED_DISPLAY(0),
    SDL_WINDOWPOS_CENTERED_DISPLAY(0),
    1920, 1080, SDL_WINDOW_SHOWN);

  int displayIndex =
    SDL_GetWindowDisplayIndex(window); 
  std::cout << "Window is primarily on display: "
    << displayIndex << "\n";

  SDL_Delay(3000);
  SDL_DestroyWindow(window);
  SDL_Quit();
  return 0;
}
Window is primarily on display: 0

Important Notes

  • The returned display index may change if the window is resized or moved.
  • Use SDL_GetDisplayBounds() for additional precision when handling multi-display setups.

Video Displays

Learn how to handle multiple monitors in SDL, including creating windows on specific displays.

Questions & Answers

Answers are generated by AI models and may not have been reviewed. Be mindful when running any code on your device.

Centering Window on Specific Display
How can I move an SDL window to the centre of a specific display?
Handling No Displays in SDL2
How do I handle the case where no displays are available?
SDL_WINDOWPOS_UNDEFINED Explained
What does the SDL_WINDOWPOS_UNDEFINED macro do, and why would I use it?
Understanding SDL Display Indices
What are display indices, and how do they map to physical monitors?
Handling Windows Exceeding Screen Boundaries
How do I handle cases where my window exceeds the screen boundaries on a specific monitor?
Specifying Display Index with SDL_CreateWindow()
Can I specify the display index when using SDL_CreateWindow()?
Forcing a Window to Appear on the Primary Monitor
How can I make my game window always appear on the primary monitor?
Displaying Windows on Different Monitors
How can I ensure windows are displayed on different monitors?
Or Ask your Own Question
Get an immediate answer to your specific question using our AI assistant