[Ohrrpgce] SVN: james/7725 gfx_recenter_window_hint() was not being called when the window was scal

James Paige Bob at HamsterRepublic.com
Mon Feb 29 13:12:19 PST 2016


Ah, thanks. That makes sense now. I have implemented rescale recentering in
gfx_directx as you suggested.

---
James

On Mon, Feb 29, 2016 at 8:51 AM, Ralph Versteegen <teeemcee at gmail.com>
wrote:

> As I said, there are no dedicated gfx API calls for changing the
> window size, or for changing the window scale. Scaling is set by
> calling gfx_setoption - see set_scale_factor in allmodex.bas.
>
> gfx_sdl calls gfx_sdl_recenter_window_hint() from inside
> gfx_sdl_set_zoom and I think gfx_directx should do the equivalent
> thing.
>
> I wanted to add support for -z to gfx_directx, but I didn't because I
> couldn't compile it at the time.
>
> On 1 March 2016 at 05:32, James Paige <Bob at hamsterrepublic.com> wrote:
> >
> >
> > On Mon, Feb 29, 2016 at 7:57 AM, Ralph Versteegen <teeemcee at gmail.com>
> > wrote:
> >>
> >> 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.
> >
> >
> > I am confused. I am looking at gfx_setoption, and this seems to be called
> > once for each command-line argument. That does not seem to be the right
> > place to center the window after it is resized to 80% of the screen.
> >
> > I also notice that gfx_directx has no support for the -z command line for
> > forcing zoom level (and produces a pretty confusing error message if you
> try
> > to use it)
> >
> >>
> >> 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 <Bob at hamsterrepublic.com> 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 <teeemcee at gmail.com
> >
> >> > 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 <teeemcee at gmail.com>
> >> >> 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 <Bob at hamsterrepublic.com
> >
> >> >> > 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, <subversion at hamsterrepublic.com
> >
> >> >> >> 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
> >> >> >>> ohrrpgce at lists.motherhamster.org
> >> >> >>>
> >> >> >>>
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> Ohrrpgce mailing list
> >> >> >> ohrrpgce at lists.motherhamster.org
> >> >> >>
> >> >> >>
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
> >> >> >>
> >> >> _______________________________________________
> >> >> Ohrrpgce mailing list
> >> >> ohrrpgce at lists.motherhamster.org
> >> >>
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > Ohrrpgce mailing list
> >> > ohrrpgce at lists.motherhamster.org
> >> >
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
> >> >
> >> _______________________________________________
> >> Ohrrpgce mailing list
> >> ohrrpgce at lists.motherhamster.org
> >> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
> >
> >
> >
> > _______________________________________________
> > Ohrrpgce mailing list
> > ohrrpgce at lists.motherhamster.org
> > http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
> >
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20160229/a1a5f552/attachment-0001.htm>


More information about the Ohrrpgce mailing list