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; |