gfx_recenter_window_hint is no longer called when changing the window scale; so you should call Window::centerWindow() from inside gfx_setoption in gfx_directx.cpp.
Secondly (and this is moot because gfx_directx doesn't support other resolutions anyway), gfx_recenter_window_hint as implemented in gfx_sdl takes effect at the next call to gfx_showpage, whereas if you make it call Window::centerWindow() to recenter the window immediately that actually won't work, because it'll recenter using the previous game resolution rather than the new one. Probably gfx_sdl should be changed (as well as apply_game_window_settings) On 1 March 2016 at 04:20, James Paige <[email protected]> wrote: > I noticed that gfx_directx's window.cpp has a function named > Window::centerWindow() but when I tried to use it to implement > gfx_recenter_window_hint it did not seem to actually do anything. > > --- > James > > On Sun, Feb 28, 2016 at 6:27 AM, Ralph Versteegen <[email protected]> > wrote: >> >> The trick of quitting and reiniting the video subsystem was already >> using on OSX. >> >> Anyway, that was the easy bug. More complex was the bug that puts the >> window completely off the top-left of the screen if the resolution is >> low (happened on both X11/Linux and Windows) and in general doesn't >> center it if it's not 320x200. I fixed that by painfully trying every >> combination of resolution and scale changes when entering and quitting >> a game or exiting or leaving the graphics editors in Custom against >> many combinations of possible calls into the backend. The fundamental >> reason for these problems is that all the resolution and scaling stuff >> is an absolute mess; it's given to the gfx backend through multiple >> calls. We need to add a new gfx API call to set the window resolution >> and size. The backend learns about page size changes through >> gfx_showpage, scale changes through gfx_setoption, requests for >> recentering through gfx_recenter_window_hint which affects the next >> call to gfx_sdl_set_screen_mode, and several other gfx_* calls have >> the side effect of calling gfx_sdl_set_screen_mode, like >> set_safe_zone_margin. The latter was the main reason for the bug. >> >> On 28 February 2016 at 23:22, Ralph Versteegen <[email protected]> wrote: >> > I thought you meant in gfx_directx (gfx_recenter_window_hint isn't >> > implemented in it), but I see it doesn't work with gfx_sdl on Windows >> > either. Some fiddling around reveals that under Windows, >> > SDL_SetVideoMode only repositions the window when something, eg. >> > window size, is changed from the previous settings. >> > >> > On 27 February 2016 at 09:20, James Paige <[email protected]> >> > wrote: >> >> Actually, I take that back... this only seems to fix the bug on Linux, >> >> not >> >> on Windows >> >> >> >> >> >> On Fri, Feb 26, 2016 at 12:18 PM, <[email protected]> >> >> wrote: >> >>> >> >>> james >> >>> 2016-02-26 12:18:31 -0800 (Fri, 26 Feb 2016) >> >>> 263 >> >>> gfx_recenter_window_hint() was not being called when the window was >> >>> scaled, only when the game had a resolution other than 320x200 >> >>> Fixed the bug where for most games, the window was being centered at >> >>> 50% >> >>> and then resized to 80% without moving the top left corner >> >>> --- >> >>> U wip/yetmore2.bas >> >>> _______________________________________________ >> >>> Ohrrpgce mailing list >> >>> [email protected] >> >>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org >> >> >> >> >> >> >> >> _______________________________________________ >> >> Ohrrpgce mailing list >> >> [email protected] >> >> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org >> >> >> _______________________________________________ >> Ohrrpgce mailing list >> [email protected] >> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org > > > > _______________________________________________ > Ohrrpgce mailing list > [email protected] > http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org > _______________________________________________ Ohrrpgce mailing list [email protected] http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
