src/video/SDL_video.c
changeset 853 dddfc37e1f65
parent 769 b8d311d90021
child 883 50f5a29c6a17
equal deleted inserted replaced
852:2651b6b43840 853:dddfc37e1f65
   357 	{ 0, 24, 32, 16, 15, 8, 0, 0 },
   357 	{ 0, 24, 32, 16, 15, 8, 0, 0 },
   358 	/* 32 bit closest depth ordering */
   358 	/* 32 bit closest depth ordering */
   359 	{ 0, 32, 16, 15, 24, 8, 0, 0 }
   359 	{ 0, 32, 16, 15, 24, 8, 0, 0 }
   360 };
   360 };
   361 
   361 
   362 int SDL_VideoModeOK (int width, int height, int bpp, Uint32 flags) 
   362 
       
   363 #ifdef macintosh /* MPW optimization bug? */
       
   364 #define NEGATIVE_ONE 0xFFFFFFFF
       
   365 #else
       
   366 #define NEGATIVE_ONE -1
       
   367 #endif
       
   368 
       
   369 int SDL_VideoModeOK (int width, int height, int bpp, Uint32 flags)
   363 {
   370 {
   364 	int table, b, i;
   371 	int table, b, i;
   365 	int supported;
   372 	int supported;
   366 	SDL_PixelFormat format;
   373 	SDL_PixelFormat format;
   367 	SDL_Rect **sizes;
   374 	SDL_Rect **sizes;
   385 		sizes = SDL_ListModes(&format, flags);
   392 		sizes = SDL_ListModes(&format, flags);
   386 		if ( sizes == (SDL_Rect **)0 ) {
   393 		if ( sizes == (SDL_Rect **)0 ) {
   387 			/* No sizes supported at this bit-depth */
   394 			/* No sizes supported at this bit-depth */
   388 			continue;
   395 			continue;
   389 		} else 
   396 		} else 
   390 #ifdef macintosh /* MPW optimization bug? */
   397 		if (sizes == (SDL_Rect **)NEGATIVE_ONE) {
   391 		if ( (sizes == (SDL_Rect **)0xFFFFFFFF) ||
       
   392 #else
       
   393 		if ( (sizes == (SDL_Rect **)-1) ||
       
   394 #endif
       
   395 		     current_video->handles_any_size ) {
       
   396 			/* Any size supported at this bit-depth */
   398 			/* Any size supported at this bit-depth */
   397 			supported = 1;
   399 			supported = 1;
   398 			continue;
   400 			continue;
       
   401 		} else if (current_video->handles_any_size) {
       
   402 			/* Driver can center a smaller surface to simulate fullscreen */
       
   403 			for ( i=0; sizes[i]; ++i ) {
       
   404 				if ((sizes[i]->w >= width) && (sizes[i]->h >= height)) {
       
   405 					supported = 1; /* this mode can fit the centered window. */
       
   406 					break;
       
   407 				}
       
   408 			}
   399 		} else
   409 		} else
   400 		for ( i=0; sizes[i]; ++i ) {
   410 		for ( i=0; sizes[i]; ++i ) {
   401 			if ((sizes[i]->w == width) && (sizes[i]->h == height)) {
   411 			if ((sizes[i]->w == width) && (sizes[i]->h == height)) {
   402 				supported = 1;
   412 				supported = 1;
   403 				break;
   413 				break;