arescentral / antares

A tactical space combat game
http://arescentral.org/antares/
GNU Lesser General Public License v3.0
100 stars 18 forks source link

ui/screens/options: add VideoControlScreen & fullscreen option #475

Closed chaimleib closed 10 months ago

chaimleib commented 10 months ago

There is currently a "fullscreen" option that can only be configured via $HOME/.local/share/games/antares/config.pn. This PR adds an option screen where fullscreen can be controlled from the in-game settings.

ares_video_changed

For more screenshots and the companion PR to the data repo, see https://github.com/arescentral/antares-data/pull/1

chaimleib commented 10 months ago

The test failures are due to the new visual additions to the options screen. Before I go and update the test expectations, I want to make sure everything else is approved.

sfiera commented 10 months ago

Hmm. Thanks for adding the video screen—I’ve been thinking about adding some accessibility-related options, and a new screen was going to be needed for it.

I’m not sure about the specific implementation. You should be able to hit Alt-Enter to switch in/out of fullscreen at runtime with GLFW 3.2+, no restart needed: https://github.com/arescentral/antares/blob/ae48a934e1818a1f702da109469e35d4d3d69bed/src/glfw/video-driver.cpp#L211-L216

I’ve also tried to implement the Mac behavior of “maximized == fullscreen” though that may not be ideal for other platforms: https://github.com/arescentral/antares/blob/ae48a934e1818a1f702da109469e35d4d3d69bed/src/glfw/video-driver.cpp#L394-L398

For now, I think I would prefer to remove that “Changes will apply at next game start” text, as it should be possible to implement without needing a restart. But other than the text, I’d be fine merging this as-is. Once there’s a checkbox I can look into making it work without restart on Mac side myself.

chaimleib commented 10 months ago

I removed the code that supported showing the require-restart message. Now it just writes the config.pn file, no messages.

ares_video