Question

Comment devrais-je dire à SDL de maximiser la fenêtre de l'application?

Je crée la fenêtre avec ces drapeaux: SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE.

Était-ce utile?

La solution

Cette fonctionnalité est contrôlée par le gestionnaire de fenêtres lorsque vous utilisez l'indicateur SDL_RESIZABLE. Pour simuler l'optimisation d'une fenêtre avec SDL, vous devez d'abord déterminer la taille que la fenêtre occupera lorsqu'elle est agrandie. Ensuite, appelez SDL_SetVideoMode de cette taille après avoir placé la fenêtre Variable d'environnement SDL_VIDEO_WINDOW_POS .

Si vous souhaitez vraiment que la fenêtre soit agrandie comme si vous aviez cliqué sur le bouton Agrandir, vous devrez alors accéder directement au gestionnaire de fenêtres sous-jacent (c'est-à-dire que SDL ne vous aidera pas).

Par exemple, la fonction ShowWindow peut être utilisé pour agrandir une fenêtre à l’aide de l’API Win32. Pour obtenir un descripteur de la fenêtre créée par SDL, utilisez la fonction SDL_GetWMInfo . La structure SDL_SysWMinfo résultante contient un champ fenêtre . tapez HWND. Cela doit être passé à la fonction ShowWindow avec l'indicateur SW_MAXIMIZE.

SDL_SysWMinfo info;
SDL_VERSION(&info.version);
SDL_GetWMInfo(&info);
ShowWindow(info.window, SW_MAXIMIZE);

Autres conseils

Dans SDL2.0

sdl_window = SDL_CreateWindow("title", 10, 30, window_width, window_height, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
SDL_MaximizeWindow(sdl_window);
SDL_GetWindowSize(sdl_window, &window_width, &window_height);
sdl_gl_context = SDL_GL_CreateContext(sdl_window);
SDL_GL_MakeCurrent(sdl_window, sdl_gl_context);

Toutes les réponses semblent obsolètes. Désormais, spécifiez SDL_WINDOW_MAXIMIZED comme indicateur pour SDL_CreateWindow .

window = SDL_CreateWindow(
    "Foobar",
    SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720,
    SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_MAXIMIZED
);

D'autres variables d'environnement peuvent être définies pour contrôler la fenêtre d'affichage. Malheureusement, les documents sdl sont en panne pour le moment, je ne peux donc pas rechercher ce dont vous avez besoin.

SDL_FULLSCREEN est l'option que vous recherchez:

flags |= SDL_FULLSCREEN;
screen = SDL_SetVideoMode(..., flags);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top