Commit e9689c29 authored by Sam Lantinga's avatar Sam Lantinga

Be explicit about what display you're querying. The default display is 0.

parent e0f869b6
...@@ -236,7 +236,6 @@ extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void); ...@@ -236,7 +236,6 @@ extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void);
* \brief Returns the number of available video displays. * \brief Returns the number of available video displays.
* *
* \sa SDL_GetDisplayBounds() * \sa SDL_GetDisplayBounds()
* \sa SDL_SelectVideoDisplay()
*/ */
extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void);
...@@ -248,34 +247,14 @@ extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); ...@@ -248,34 +247,14 @@ extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void);
* *
* \sa SDL_GetNumVideoDisplays() * \sa SDL_GetNumVideoDisplays()
*/ */
extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int index, SDL_Rect * rect); extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect);
/** /**
* \brief Set the index of the currently selected display. * \brief Returns the number of available display modes.
*
* \return 0 on success, or -1 if the index is out of range.
*
* \sa SDL_GetNumVideoDisplays()
* \sa SDL_GetCurrentVideoDisplay()
*/
extern DECLSPEC int SDLCALL SDL_SelectVideoDisplay(int index);
/**
* \brief Get the index of the currently selected display.
*
* \return The index of the currently selected display.
*
* \sa SDL_GetNumVideoDisplays()
* \sa SDL_SelectVideoDisplay()
*/
extern DECLSPEC int SDLCALL SDL_GetCurrentVideoDisplay(void);
/**
* \brief Returns the number of available display modes for the current display.
* *
* \sa SDL_GetDisplayMode() * \sa SDL_GetDisplayMode()
*/ */
extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(void); extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(int displayIndex);
/** /**
* \brief Fill in information about a specific display mode. * \brief Fill in information about a specific display mode.
...@@ -288,19 +267,18 @@ extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(void); ...@@ -288,19 +267,18 @@ extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(void);
* *
* \sa SDL_GetNumDisplayModes() * \sa SDL_GetNumDisplayModes()
*/ */
extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int index, extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int displayIndex, int modeIndex,
SDL_DisplayMode * mode); SDL_DisplayMode * mode);
/** /**
* \brief Fill in information about the desktop display mode for the current * \brief Fill in information about the desktop display mode.
* display.
*/ */
extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(SDL_DisplayMode * mode); extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode);
/** /**
* \brief Fill in information about the current display mode. * \brief Fill in information about the current display mode.
*/ */
extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(SDL_DisplayMode * mode); extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode);
/** /**
...@@ -323,16 +301,13 @@ extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(SDL_DisplayMode * mode); ...@@ -323,16 +301,13 @@ extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(SDL_DisplayMode * mode);
* \sa SDL_GetNumDisplayModes() * \sa SDL_GetNumDisplayModes()
* \sa SDL_GetDisplayMode() * \sa SDL_GetDisplayMode()
*/ */
extern DECLSPEC SDL_DisplayMode *SDLCALL SDL_GetClosestDisplayMode(const extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest);
SDL_DisplayMode
* mode,
SDL_DisplayMode
* closest);
/** /**
* \brief Set the display mode used when a fullscreen window is visible * \brief Set the display mode used when a fullscreen window is visible.
* on the currently selected display. By default the window's *
* dimensions and the desktop format and refresh rate are used. * By default the window's dimensions and the desktop format and refresh rate
* are used.
* *
* \param mode The mode to use, or NULL for the default mode. * \param mode The mode to use, or NULL for the default mode.
* *
...@@ -347,7 +322,7 @@ extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window, ...@@ -347,7 +322,7 @@ extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window,
/** /**
* \brief Fill in information about the display mode used when a fullscreen * \brief Fill in information about the display mode used when a fullscreen
* window is visible on the currently selected display. * window is visible.
* *
* \sa SDL_SetWindowDisplayMode() * \sa SDL_SetWindowDisplayMode()
* \sa SDL_SetWindowFullscreen() * \sa SDL_SetWindowFullscreen()
......
...@@ -71,15 +71,17 @@ SDL_VideoDriverName(char *namebuf, int maxlen) ...@@ -71,15 +71,17 @@ SDL_VideoDriverName(char *namebuf, int maxlen)
return NULL; return NULL;
} }
static void static int
SelectVideoDisplay() GetVideoDisplay()
{ {
const char *variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_DISPLAY"); const char *variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_DISPLAY");
if ( !variable ) { if ( !variable ) {
variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_HEAD"); variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_HEAD");
} }
if ( variable ) { if ( variable ) {
SDL_SelectVideoDisplay(SDL_atoi(variable)); SDL_atoi(variable);
} else {
return 0;
} }
} }
...@@ -89,10 +91,8 @@ SDL_GetVideoInfo(void) ...@@ -89,10 +91,8 @@ SDL_GetVideoInfo(void)
static SDL_VideoInfo info; static SDL_VideoInfo info;
SDL_DisplayMode mode; SDL_DisplayMode mode;
SelectVideoDisplay();
/* Memory leak, compatibility code, who cares? */ /* Memory leak, compatibility code, who cares? */
if (!info.vfmt && SDL_GetDesktopDisplayMode(&mode) == 0) { if (!info.vfmt && SDL_GetDesktopDisplayMode(GetVideoDisplay(), &mode) == 0) {
int bpp; int bpp;
Uint32 Rmask, Gmask, Bmask, Amask; Uint32 Rmask, Gmask, Bmask, Amask;
...@@ -114,17 +114,15 @@ SDL_VideoModeOK(int width, int height, int bpp, Uint32 flags) ...@@ -114,17 +114,15 @@ SDL_VideoModeOK(int width, int height, int bpp, Uint32 flags)
return 0; return 0;
} }
SelectVideoDisplay();
if (!(flags & SDL_FULLSCREEN)) { if (!(flags & SDL_FULLSCREEN)) {
SDL_DisplayMode mode; SDL_DisplayMode mode;
SDL_GetDesktopDisplayMode(&mode); SDL_GetDesktopDisplayMode(GetVideoDisplay(), &mode);
return SDL_BITSPERPIXEL(mode.format); return SDL_BITSPERPIXEL(mode.format);
} }
for (i = 0; i < SDL_GetNumDisplayModes(); ++i) { for (i = 0; i < SDL_GetNumDisplayModes(GetVideoDisplay()); ++i) {
SDL_DisplayMode mode; SDL_DisplayMode mode;
SDL_GetDisplayMode(i, &mode); SDL_GetDisplayMode(GetVideoDisplay(), i, &mode);
if (!mode.w || !mode.h || (width == mode.w && height == mode.h)) { if (!mode.w || !mode.h || (width == mode.w && height == mode.h)) {
if (!mode.format) { if (!mode.format) {
return bpp; return bpp;
...@@ -147,8 +145,6 @@ SDL_ListModes(const SDL_PixelFormat * format, Uint32 flags) ...@@ -147,8 +145,6 @@ SDL_ListModes(const SDL_PixelFormat * format, Uint32 flags)
return NULL; return NULL;
} }
SelectVideoDisplay();
if (!(flags & SDL_FULLSCREEN)) { if (!(flags & SDL_FULLSCREEN)) {
return (SDL_Rect **) (-1); return (SDL_Rect **) (-1);
} }
...@@ -160,11 +156,11 @@ SDL_ListModes(const SDL_PixelFormat * format, Uint32 flags) ...@@ -160,11 +156,11 @@ SDL_ListModes(const SDL_PixelFormat * format, Uint32 flags)
/* Memory leak, but this is a compatibility function, who cares? */ /* Memory leak, but this is a compatibility function, who cares? */
nmodes = 0; nmodes = 0;
modes = NULL; modes = NULL;
for (i = 0; i < SDL_GetNumDisplayModes(); ++i) { for (i = 0; i < SDL_GetNumDisplayModes(GetVideoDisplay()); ++i) {
SDL_DisplayMode mode; SDL_DisplayMode mode;
int bpp; int bpp;
SDL_GetDisplayMode(i, &mode); SDL_GetDisplayMode(GetVideoDisplay(), i, &mode);
if (!mode.w || !mode.h) { if (!mode.w || !mode.h) {
return (SDL_Rect **) (-1); return (SDL_Rect **) (-1);
} }
...@@ -342,7 +338,7 @@ GetEnvironmentWindowPosition(int w, int h, int *x, int *y) ...@@ -342,7 +338,7 @@ GetEnvironmentWindowPosition(int w, int h, int *x, int *y)
} }
if (center) { if (center) {
SDL_DisplayMode mode; SDL_DisplayMode mode;
SDL_GetDesktopDisplayMode(&mode); SDL_GetDesktopDisplayMode(GetVideoDisplay(), &mode);
*x = (mode.w - w) / 2; *x = (mode.w - w) / 2;
*y = (mode.h - h) / 2; *y = (mode.h - h) / 2;
} }
...@@ -453,9 +449,7 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) ...@@ -453,9 +449,7 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags)
} }
} }
SelectVideoDisplay(); SDL_GetDesktopDisplayMode(GetVideoDisplay(), &desktop_mode);
SDL_GetDesktopDisplayMode(&desktop_mode);
if (width == 0) { if (width == 0) {
width = desktop_mode.w; width = desktop_mode.w;
......
...@@ -322,18 +322,10 @@ extern VideoBootStrap Android_bootstrap; ...@@ -322,18 +322,10 @@ extern VideoBootStrap Android_bootstrap;
extern VideoBootStrap DUMMY_bootstrap; extern VideoBootStrap DUMMY_bootstrap;
#endif #endif
#define SDL_CurrentDisplay (&_this->displays[_this->current_display])
extern SDL_VideoDevice *SDL_GetVideoDevice(void); extern SDL_VideoDevice *SDL_GetVideoDevice(void);
extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode); extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode);
extern int SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display);
extern int SDL_GetDisplayModeForDisplay(SDL_VideoDisplay * display, int index, SDL_DisplayMode * mode);
extern int SDL_GetDesktopDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode);
extern int SDL_GetCurrentDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode);
extern SDL_DisplayMode * SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode, SDL_DisplayMode * closest);
extern int SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode);
extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags); extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
......
...@@ -96,6 +96,17 @@ static SDL_VideoDevice *_this = NULL; ...@@ -96,6 +96,17 @@ static SDL_VideoDevice *_this = NULL;
return retval; \ return retval; \
} }
#define CHECK_DISPLAY_INDEX(displayIndex, retval) \
if (!_this) { \
SDL_UninitializedVideo(); \
return retval; \
} \
if (displayIndex < 0 || displayIndex >= _this->num_displays) { \
SDL_SetError("displayIndex must be in the range 0 - %d", \
_this->num_displays - 1); \
return retval; \
}
/* Various local functions */ /* Various local functions */
static void SDL_UpdateWindowGrab(SDL_Window * window); static void SDL_UpdateWindowGrab(SDL_Window * window);
...@@ -581,19 +592,12 @@ SDL_GetNumVideoDisplays(void) ...@@ -581,19 +592,12 @@ SDL_GetNumVideoDisplays(void)
} }
int int
SDL_GetDisplayBounds(int index, SDL_Rect * rect) SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect)
{ {
if (!_this) { CHECK_DISPLAY_INDEX(displayIndex, -1);
SDL_UninitializedVideo();
return -1;
}
if (index < 0 || index >= _this->num_displays) {
SDL_SetError("index must be in the range 0 - %d",
_this->num_displays - 1);
return -1;
}
if (rect) { if (rect) {
SDL_VideoDisplay *display = &_this->displays[index]; SDL_VideoDisplay *display = &_this->displays[displayIndex];
if (_this->GetDisplayBounds) { if (_this->GetDisplayBounds) {
if (_this->GetDisplayBounds(_this, display, rect) < 0) { if (_this->GetDisplayBounds(_this, display, rect) < 0) {
...@@ -601,11 +605,11 @@ SDL_GetDisplayBounds(int index, SDL_Rect * rect) ...@@ -601,11 +605,11 @@ SDL_GetDisplayBounds(int index, SDL_Rect * rect)
} }
} else { } else {
/* Assume that the displays are left to right */ /* Assume that the displays are left to right */
if (index == 0) { if (displayIndex == 0) {
rect->x = 0; rect->x = 0;
rect->y = 0; rect->y = 0;
} else { } else {
SDL_GetDisplayBounds(index-1, rect); SDL_GetDisplayBounds(displayIndex-1, rect);
rect->x += rect->w; rect->x += rect->w;
} }
rect->w = display->desktop_mode.w; rect->w = display->desktop_mode.w;
...@@ -615,32 +619,6 @@ SDL_GetDisplayBounds(int index, SDL_Rect * rect) ...@@ -615,32 +619,6 @@ SDL_GetDisplayBounds(int index, SDL_Rect * rect)
return 0; return 0;
} }
int
SDL_SelectVideoDisplay(int index)
{
if (!_this) {
SDL_UninitializedVideo();
return (-1);
}
if (index < 0 || index >= _this->num_displays) {
SDL_SetError("index must be in the range 0 - %d",
_this->num_displays - 1);
return -1;
}
_this->current_display = index;
return 0;
}
int
SDL_GetCurrentVideoDisplay(void)
{
if (!_this) {
SDL_UninitializedVideo();
return (-1);
}
return _this->current_display;
}
SDL_bool SDL_bool
SDL_AddDisplayMode(SDL_VideoDisplay * display, const SDL_DisplayMode * mode) SDL_AddDisplayMode(SDL_VideoDisplay * display, const SDL_DisplayMode * mode)
{ {
...@@ -677,7 +655,7 @@ SDL_AddDisplayMode(SDL_VideoDisplay * display, const SDL_DisplayMode * mode) ...@@ -677,7 +655,7 @@ SDL_AddDisplayMode(SDL_VideoDisplay * display, const SDL_DisplayMode * mode)
return SDL_TRUE; return SDL_TRUE;
} }
int static int
SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display) SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display)
{ {
if (!display->num_display_modes && _this->GetDisplayModes) { if (!display->num_display_modes && _this->GetDisplayModes) {
...@@ -689,17 +667,21 @@ SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display) ...@@ -689,17 +667,21 @@ SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display)
} }
int int
SDL_GetNumDisplayModes() SDL_GetNumDisplayModes(int displayIndex)
{ {
if (_this) { CHECK_DISPLAY_INDEX(displayIndex, -1);
return SDL_GetNumDisplayModesForDisplay(SDL_CurrentDisplay);
} return SDL_GetNumDisplayModesForDisplay(&_this->displays[displayIndex]);
return 0;
} }
int int
SDL_GetDisplayModeForDisplay(SDL_VideoDisplay * display, int index, SDL_DisplayMode * mode) SDL_GetDisplayMode(int displayIndex, int index, SDL_DisplayMode * mode)
{ {
SDL_VideoDisplay *display;
CHECK_DISPLAY_INDEX(displayIndex, -1);
display = &_this->displays[displayIndex];
if (index < 0 || index >= SDL_GetNumDisplayModesForDisplay(display)) { if (index < 0 || index >= SDL_GetNumDisplayModesForDisplay(display)) {
SDL_SetError("index must be in the range of 0 - %d", SDL_SetError("index must be in the range of 0 - %d",
SDL_GetNumDisplayModesForDisplay(display) - 1); SDL_GetNumDisplayModesForDisplay(display) - 1);
...@@ -712,14 +694,13 @@ SDL_GetDisplayModeForDisplay(SDL_VideoDisplay * display, int index, SDL_DisplayM ...@@ -712,14 +694,13 @@ SDL_GetDisplayModeForDisplay(SDL_VideoDisplay * display, int index, SDL_DisplayM
} }
int int
SDL_GetDisplayMode(int index, SDL_DisplayMode * mode) SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode)
{ {
return SDL_GetDisplayModeForDisplay(SDL_CurrentDisplay, index, mode); SDL_VideoDisplay *display;
}
int CHECK_DISPLAY_INDEX(displayIndex, -1);
SDL_GetDesktopDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode)
{ display = &_this->displays[displayIndex];
if (mode) { if (mode) {
*mode = display->desktop_mode; *mode = display->desktop_mode;
} }
...@@ -727,35 +708,20 @@ SDL_GetDesktopDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode ...@@ -727,35 +708,20 @@ SDL_GetDesktopDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode
} }
int int
SDL_GetDesktopDisplayMode(SDL_DisplayMode * mode) SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode)
{ {
if (!_this) { SDL_VideoDisplay *display;
SDL_UninitializedVideo();
return -1;
}
return SDL_GetDesktopDisplayModeForDisplay(SDL_CurrentDisplay, mode);
}
int CHECK_DISPLAY_INDEX(displayIndex, -1);
SDL_GetCurrentDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode)
{ display = &_this->displays[displayIndex];
if (mode) { if (mode) {
*mode = display->current_mode; *mode = display->current_mode;
} }
return 0; return 0;
} }
int static SDL_DisplayMode *
SDL_GetCurrentDisplayMode(SDL_DisplayMode * mode)
{
if (!_this) {
SDL_UninitializedVideo();
return -1;
}
return SDL_GetCurrentDisplayModeForDisplay(SDL_CurrentDisplay, mode);
}
SDL_DisplayMode *
SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display,
const SDL_DisplayMode * mode, const SDL_DisplayMode * mode,
SDL_DisplayMode * closest) SDL_DisplayMode * closest)
...@@ -863,14 +829,16 @@ SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display, ...@@ -863,14 +829,16 @@ SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display,
} }
SDL_DisplayMode * SDL_DisplayMode *
SDL_GetClosestDisplayMode(const SDL_DisplayMode * mode, SDL_GetClosestDisplayMode(int displayIndex,
const SDL_DisplayMode * mode,
SDL_DisplayMode * closest) SDL_DisplayMode * closest)
{ {
if (!_this) { SDL_VideoDisplay *display;
SDL_UninitializedVideo();
return NULL; CHECK_DISPLAY_INDEX(displayIndex, NULL);
}
return SDL_GetClosestDisplayModeForDisplay(SDL_CurrentDisplay, mode, closest); display = &_this->displays[displayIndex];
return SDL_GetClosestDisplayModeForDisplay(display, mode, closest);
} }
int int
...@@ -907,7 +875,7 @@ SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * ...@@ -907,7 +875,7 @@ SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode *
} }
/* See if there's anything left to do */ /* See if there's anything left to do */
SDL_GetCurrentDisplayModeForDisplay(display, &current_mode); current_mode = display->current_mode;
if (SDL_memcmp(&display_mode, &current_mode, sizeof(display_mode)) == 0) { if (SDL_memcmp(&display_mode, &current_mode, sizeof(display_mode)) == 0) {
return 0; return 0;
} }
...@@ -1054,7 +1022,7 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags) ...@@ -1054,7 +1022,7 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
} }
SDL_GL_LoadLibrary(NULL); SDL_GL_LoadLibrary(NULL);
} }
display = SDL_CurrentDisplay; display = &_this->displays[0]; /* FIXME */
window = (SDL_Window *)SDL_calloc(1, sizeof(*window)); window = (SDL_Window *)SDL_calloc(1, sizeof(*window));
window->magic = &_this->window_magic; window->magic = &_this->window_magic;
window->id = _this->next_object_id++; window->id = _this->next_object_id++;
...@@ -1102,7 +1070,7 @@ SDL_CreateWindowFrom(const void *data) ...@@ -1102,7 +1070,7 @@ SDL_CreateWindowFrom(const void *data)
SDL_UninitializedVideo(); SDL_UninitializedVideo();
return NULL; return NULL;
} }
display = SDL_CurrentDisplay; display = &_this->displays[0]; /* FIXME */
window = (SDL_Window *)SDL_calloc(1, sizeof(*window)); window = (SDL_Window *)SDL_calloc(1, sizeof(*window));
window->magic = &_this->window_magic; window->magic = &_this->window_magic;
window->id = _this->next_object_id++; window->id = _this->next_object_id++;
...@@ -1676,7 +1644,7 @@ SDL_GetFocusWindow(void) ...@@ -1676,7 +1644,7 @@ SDL_GetFocusWindow(void)
if (!_this) { if (!_this) {
return NULL; return NULL;
} }
display = SDL_CurrentDisplay; display = &_this->displays[0]; /* FIXME */
for (window = display->windows; window; window = window->next) { for (window = display->windows; window; window = window->next) {
if (window->flags & SDL_WINDOW_INPUT_FOCUS) { if (window->flags & SDL_WINDOW_INPUT_FOCUS) {
return window; return window;
......
...@@ -220,7 +220,7 @@ static void ...@@ -220,7 +220,7 @@ static void
X11_GL_InitExtensions(_THIS) X11_GL_InitExtensions(_THIS)
{ {
Display *display = ((SDL_VideoData *) _this->driverdata)->display; Display *display = ((SDL_VideoData *) _this->driverdata)->display;
int screen = ((SDL_DisplayData *) SDL_CurrentDisplay->driverdata)->screen; int screen = DefaultScreen(display);
XVisualInfo *vinfo; XVisualInfo *vinfo;
XSetWindowAttributes xattr; XSetWindowAttributes xattr;
Window w; Window w;
......
...@@ -594,9 +594,8 @@ CommonInit(CommonState * state) ...@@ -594,9 +594,8 @@ CommonInit(CommonState * state)
fprintf(stderr, "Number of displays: %d\n", n); fprintf(stderr, "Number of displays: %d\n", n);
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i) {
fprintf(stderr, "Display %d:\n", i); fprintf(stderr, "Display %d:\n", i);
SDL_SelectVideoDisplay(i);
SDL_GetDesktopDisplayMode(&mode); SDL_GetDesktopDisplayMode(i, &mode);
SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask,
&Bmask, &Amask); &Bmask, &Amask);
fprintf(stderr, fprintf(stderr,
...@@ -612,13 +611,13 @@ CommonInit(CommonState * state) ...@@ -612,13 +611,13 @@ CommonInit(CommonState * state)
} }
/* Print available fullscreen video modes */ /* Print available fullscreen video modes */
m = SDL_GetNumDisplayModes(); m = SDL_GetNumDisplayModes(i);
if (m == 0) { if (m == 0) {
fprintf(stderr, "No available fullscreen video modes\n"); fprintf(stderr, "No available fullscreen video modes\n");
} else { } else {
fprintf(stderr, " Fullscreen video modes:\n"); fprintf(stderr, " Fullscreen video modes:\n");
for (j = 0; j < m; ++j) { for (j = 0; j < m; ++j) {
SDL_GetDisplayMode(j, &mode); SDL_GetDisplayMode(i, j, &mode);
SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask,
&Gmask, &Bmask, &Amask); &Gmask, &Bmask, &Amask);
fprintf(stderr, fprintf(stderr,
...@@ -642,7 +641,6 @@ CommonInit(CommonState * state) ...@@ -642,7 +641,6 @@ CommonInit(CommonState * state)
} }
} }
SDL_SelectVideoDisplay(state->display);
if (state->verbose & VERBOSE_RENDER) { if (state->verbose & VERBOSE_RENDER) {
SDL_RendererInfo info; SDL_RendererInfo info;
......
...@@ -234,7 +234,7 @@ main(int argc, char *argv[]) ...@@ -234,7 +234,7 @@ main(int argc, char *argv[])
SDL_GL_SetSwapInterval(0); SDL_GL_SetSwapInterval(0);
} }
SDL_GetCurrentDisplayMode(&mode); SDL_GetCurrentDisplayMode(0, &mode);
printf("Screen BPP: %d\n", SDL_BITSPERPIXEL(mode.format)); printf("Screen BPP: %d\n", SDL_BITSPERPIXEL(mode.format));
printf("\n"); printf("\n");
printf("Vendor : %s\n", glGetString(GL_VENDOR)); printf("Vendor : %s\n", glGetString(GL_VENDOR));
......
...@@ -122,12 +122,9 @@ void InitVideo(int argc, char *argv[]) ...@@ -122,12 +122,9 @@ void InitVideo(int argc, char *argv[])
if (fullscreen) if (fullscreen)
{ {
SDL_DisplayMode mode; /* Use the desktop mode */
SDL_GetDesktopDisplayMode(&mode); width = 0;
height = 0;
width = mode.w;
height = mode.h;
fprintf(stderr, "%dx%d\n", width, height);
flags |= SDL_FULLSCREEN; flags |= SDL_FULLSCREEN;
} }
...@@ -375,3 +372,5 @@ int main(int argc, char *argv[]) ...@@ -375,3 +372,5 @@ int main(int argc, char *argv[])
CleanupVideo(); CleanupVideo();
return 0; return 0;
} }
/* vi: set ts=4 sw=4 expandtab: */
...@@ -455,9 +455,7 @@ main(int argc, char *argv[]) ...@@ -455,9 +455,7 @@ main(int argc, char *argv[])
printf("Display %d: %dx%d at %d,%d\n", d, printf("Display %d: %dx%d at %d,%d\n", d,
bounds.w, bounds.h, bounds.x, bounds.y); bounds.w, bounds.h, bounds.x, bounds.y);
SDL_SelectVideoDisplay(d); SDL_GetDesktopDisplayMode(d, &mode);
SDL_GetDesktopDisplayMode(&mode);
SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, &Bmask, SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, &Bmask,
&Amask); &Amask);
printf(" Current mode: %dx%d@%dHz, %d bits-per-pixel\n", mode.w, printf(" Current mode: %dx%d@%dHz, %d bits-per-pixel\n", mode.w,
...@@ -471,13 +469,13 @@ main(int argc, char *argv[]) ...@@ -471,13 +469,13 @@ main(int argc, char *argv[])
} }
/* Print available fullscreen video modes */ /* Print available fullscreen video modes */
nmodes = SDL_GetNumDisplayModes(); nmodes = SDL_GetNumDisplayModes(d);
if (nmodes == 0) { if (nmodes == 0) {
printf("No available fullscreen video modes\n"); printf("No available fullscreen video modes\n");
} else { } else {
printf(" Fullscreen video modes:\n"); printf(" Fullscreen video modes:\n");
for (i = 0; i < nmodes; ++i) { for (i = 0; i < nmodes; ++i) {
SDL_GetDisplayMode(i, &mode); SDL_GetDisplayMode(d, i, &mode);
SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask,
&Gmask, &Bmask, &Amask); &Gmask, &Bmask, &Amask);
printf(" Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", i, printf(" Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", i,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment