comparison test/common.c @ 3500:4b594623401b

Work in progress on multi-display support: * Added display parameter to many internal functions so video modes can be set on displays that aren't the public current one. * The fullscreen mode is associated with fullscreen windows - not displays, so different windows more naturally have a mode associated with them based on their width and height. It's no longer necessary to specify a fullscreen mode, a default one will be picked automatically for fullscreen windows.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 01 Dec 2009 05:57:15 +0000
parents 55541ddf13e3
children f0b7bc1fe12d
comparison
equal deleted inserted replaced
3499:4cf8a1423d57 3500:4b594623401b
74 74
75 /* Initialize some defaults */ 75 /* Initialize some defaults */
76 state->argv = argv; 76 state->argv = argv;
77 state->flags = flags; 77 state->flags = flags;
78 state->window_title = argv[0]; 78 state->window_title = argv[0];
79 state->window_flags = SDL_WINDOW_SHOWN; 79 state->window_flags = 0;
80 state->window_x = SDL_WINDOWPOS_UNDEFINED; 80 state->window_x = SDL_WINDOWPOS_UNDEFINED;
81 state->window_y = SDL_WINDOWPOS_UNDEFINED; 81 state->window_y = SDL_WINDOWPOS_UNDEFINED;
82 state->window_w = DEFAULT_WINDOW_WIDTH; 82 state->window_w = DEFAULT_WINDOW_WIDTH;
83 state->window_h = DEFAULT_WINDOW_HEIGHT; 83 state->window_h = DEFAULT_WINDOW_HEIGHT;
84 state->num_windows = 1; 84 state->num_windows = 1;
735 PrintRenderer(&info); 735 PrintRenderer(&info);
736 } 736 }
737 } 737 }
738 } 738 }
739 739
740 SDL_zero(fullscreen_mode);
740 switch (state->depth) { 741 switch (state->depth) {
741 case 8: 742 case 8:
742 fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8; 743 fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8;
743 break; 744 break;
744 case 15: 745 case 15:
752 break; 753 break;
753 default: 754 default:
754 fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; 755 fullscreen_mode.format = SDL_PIXELFORMAT_RGB888;
755 break; 756 break;
756 } 757 }
757 fullscreen_mode.w = state->window_w;
758 fullscreen_mode.h = state->window_h;
759 fullscreen_mode.refresh_rate = state->refresh_rate; 758 fullscreen_mode.refresh_rate = state->refresh_rate;
760 if (SDL_SetFullscreenDisplayMode(&fullscreen_mode)<0) {
761 fprintf(stderr, "Can't switch to fullscreen display mode: %s\n",
762 SDL_GetError());
763 return SDL_FALSE;
764 }
765 759
766 state->windows = 760 state->windows =
767 (SDL_WindowID *) SDL_malloc(state->num_windows * 761 (SDL_WindowID *) SDL_malloc(state->num_windows *
768 sizeof(*state->windows)); 762 sizeof(*state->windows));
769 if (!state->windows) { 763 if (!state->windows) {
786 if (!state->windows[i]) { 780 if (!state->windows[i]) {
787 fprintf(stderr, "Couldn't create window: %s\n", 781 fprintf(stderr, "Couldn't create window: %s\n",
788 SDL_GetError()); 782 SDL_GetError());
789 return SDL_FALSE; 783 return SDL_FALSE;
790 } 784 }
785
786 if (SDL_SetWindowDisplayMode(state->windows[i], &fullscreen_mode) < 0) {
787 fprintf(stderr, "Can't set up fullscreen display mode: %s\n",
788 SDL_GetError());
789 return SDL_FALSE;
790 }
791 SDL_ShowWindow(state->windows[i]);
791 792
792 if (!state->skip_renderer 793 if (!state->skip_renderer
793 && (state->renderdriver 794 && (state->renderdriver
794 || !(state->window_flags & SDL_WINDOW_OPENGL))) { 795 || !(state->window_flags & SDL_WINDOW_OPENGL))) {
795 m = -1; 796 m = -1;