J'ai besoin de mon programme SDL2 pour savoir si une fenêtre est en plein écran, et j'ai pensé que je pourrais obtenir cette information en utilisant SDL_GetWindowFlags(). Par défaut, j'initialise ma fenêtre avec deux drapeaux: SDL_WINDOW_SHOWN et SDL_WINDOW_BORDERLESS, qui sont respectivement 16 et 4. Donc je m'attendais à ce que la fonction retourne 20, mais à la place j'en ai 532. Et aussi parfois 1556, qui passe même à 532 pendant l'exécution après avoir réinitialisé la fenêtre plusieurs fois. 532 ne change jamais à 1556 pendant l'exécution cependant.SDL_GetWindowFlags() renvoie des valeurs apparemment aléatoires
Comment ces drapeaux fonctionnent-ils?
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;
}