我需要我的SDL2程序來了解窗口是否全屏,並且我認爲我可以使用SDL_GetWindowFlags()來獲取該信息。默認情況下,我用兩個標誌初始化我的窗口:SDL_WINDOW_SHOWN和SDL_WINDOW_BORDERLESS,它們分別等於16和4。所以我期望函數返回20,但是我得到了532.而且有時也有1556,甚至在重新初始化窗口幾次後,在運行時更改爲532。但是,532在運行時不會更改爲1556。SDL_GetWindowFlags()返回看似隨機的值
這些標誌如何工作?
bool init(int windowflags)
{
bool success = true;
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
printf("Video initialization failed: %s\n", SDL_GetError());
success = false;
}
else
{
gWindow = SDL_CreateWindow("VIRGULE", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIN_W, WIN_H, SDL_WINDOW_SHOWN + windowflags);
if(gWindow == NULL)
{
printf("Window could not be created: %s\n", SDL_GetError());
success = false;
}
else
{
gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED + SDL_RENDERER_TARGETTEXTURE);
if(gRenderer == NULL)
{
printf("Renderer could not be created: %s\n", SDL_GetError());
success = false;
}
else
{
gTexture = SDL_CreateTexture(gRenderer, SDL_PIXELFORMAT_UNKNOWN, SDL_TEXTUREACCESS_TARGET, SCR_W, SCR_H);
if(gTexture == NULL)
{
printf("Texture creation failed: %s\n", SDL_GetError());
success = false;
}
}
}
}
printf("%i\n", SDL_GetWindowFlags(gWindow));
//this is either prints 1556 or 532
return success;
}