diff src/video/macdsp/SDL_dspvideo.c @ 1545:8d9bb0cf2c2a

Added current_w and current_h to the SDL_VideoInfo structure, which is set to the desktop resolution during video intialization, and then set to the current resolution when a video mode is set. SDL_SetVideoMode() now accepts 0 for width or height and will use the current video mode (or the desktop mode if no mode has been set.)
author Sam Lantinga <slouken@libsdl.org>
date Wed, 15 Mar 2006 17:46:41 +0000
parents 7a610f25c12f
children e49147870aac e6de7e5fd451
line wrap: on
line diff
--- a/src/video/macdsp/SDL_dspvideo.c	Wed Mar 15 15:47:49 2006 +0000
+++ b/src/video/macdsp/SDL_dspvideo.c	Wed Mar 15 17:46:41 2006 +0000
@@ -329,7 +329,7 @@
 };
 
 /* Use DSp/Display Manager to build mode list for given screen */
-static SDL_Rect**  DSp_BuildModeList (const GDHandle gDevice)
+static SDL_Rect**  DSp_BuildModeList (const GDHandle gDevice, int *displayWidth, int *displayHeight)
 {
 	DSpContextAttributes  attributes;
 	DSpContextReference   context;
@@ -355,6 +355,9 @@
 	
 	if ( DSpContext_GetAttributes (context, &attributes) != noErr )
 		return NULL;
+
+	*displayWidth = attributes.displayWidth;
+	*displayHeight = attributes.displayHeight;
 			
 	for ( i = 0; i < SDL_arraysize(temp_list); i++ ) {
 		width  = attributes.displayWidth;
@@ -556,14 +559,14 @@
 			break;
 	}
    
-   if ( DSp_CreatePalette (this) < 0 ) {
-   
-      SDL_SetError ("Could not create palette");
-      return (-1);
-   }
+	if ( DSp_CreatePalette (this) < 0 ) {
+		SDL_SetError ("Could not create palette");
+		return (-1);
+	}
    
 	/* Get a list of available fullscreen modes */
-	SDL_modelist = DSp_BuildModeList (SDL_Display);
+	SDL_modelist = DSp_BuildModeList (SDL_Display,
+	                                  &this->info.current_w, &this->info.current_h);
 	if (SDL_modelist == NULL) {
 		SDL_SetError ("DrawSprocket could not build a mode list");
 		return (-1);