我需要我的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;
}