Mercurial > sdl-ios-xcode
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; |