#include "SDL.h"
SDL_Rect **SDL_ListModes(SDL_PixelFormat *format, Uint32 flags);
返回一個指向給定格式及視頻標記下可用屏幕範圍的數組的指針,該數組元素以從大到小的順序存儲(譯注:返回這樣的指針的前提是以下兩種情況之外的情況)。若指定的格式下無可用範圍,則返回NULL;若給定格式下任何範圍皆可用,則返回-1(譯注:準確來說,應該是(SDL_Rect **)-1)。
若format為NULL,模式列表將會是SDL_GetVideoInfo()->vfmt所返回的格式。參數flags是平面標記按位與的組合。這些標記跟SDL_SetVideoMode所用的一樣,它們在判定哪些是有效的模式方面扮演著重要的角色。譬如:若你以SDL_HWSURFACE為標記來傳遞,則會僅僅返回那些支持硬件視頻平面的模式。
SDL_Rect **modes; int i; . . . /* 獲取可用的全屏/硬件模式 */ modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE); /* 檢測有沒有可用的模式 */ if(modes == (SDL_Rect **)0){ printf("沒有可用模式"); exit(-1); } /* 檢測是否存在受限模式 */ if(modes == (SDL_Rect **)-1){ printf("所有模式皆可用。"); } else{ /* 顯示所有有效的模式 */ printf("有效的模式"); for(i=0;modes[i];++i) printf(" %d x %d ", modes[i]->w, modes[i]->h); } . .
SDL_SetVideoMode、SDL_GetVideoInfo、SDL_Rect、SDL_PixelFormat
2010年2月15日