2009/12/27 Jay Tennant <[email protected]>:
>> From: Ralph Versteegen <[email protected]>
>> Sent: Thursday, December 24, 2009 10:45 AM
>>
>> For a few years, the default zoom level between all the graphics
>> backends has been 2x, and before that, they defaulted to fullscreen.
>> I've always been a bit unsure about that default, and unhappy that
>> there was no way to resize the window without using a commandline
>> option. I've heard complaints that 2x is too small, especially on
>> large monitors.
>>
>> Now gfx_directx lets the user resize the window to any resolution.
>> Unfortunately the options to set the size to an integer multiple of
>> 320x200, from earlier versions, are no longer there, but Jay says he
>> will work on a replacement. Anyway, Jay set the default at 3x zoom.
>> I'm finding this annoying in Custom, where it takes up the whole of my
>> small monitor. If we want to try using it as the default, we probably
>> should change the zoom to 2x to avoid annoying other people? I do find
>> 3x or fullscreen better for playing. Maybe Custom and Game could use
>> different defaults.
>>
>> I really wish we had preference files and a configuration screen.
>
> What if there were an ascii-text based custom.ini and game.ini? A list of 
> preferences could be contained and loaded from either the backends or the 
> engine. If loaded from the backends, they could also save their last state as 
> the default for when the app runs next. So if a user runs game.exe at 960x600 
> in the upper-left corner of their screen with smooth rendering, the next time 
> the app boots, it will attempt to build the window at 960x600 in the 
> upper-left corner with smooth rendering, etc.
>
> We could write a set of standard interfaces, such as:
> int gfx_QueryPreferences(gfx::Preferences* pPreferences, const char* szFile);
> int gfx_SavePreferences(gfx::Preferences* pPreferences, const char* szFile);
>
> And if the engine is loading preferences (which would make more sense), a set 
> of interfaces could communicate with the backend:
> int gfx_SetPreferences(gfx::Preferences* pPreferences);
> int gfx_GetPreferences(gfx::Preferences* pPreferences);
>
> The Preferences structure could contain state about width, height, top-left 
> window corner position, full-screen state, smoothing state, screenshot 
> format, vsync, etc. Not all the data would need to be used by all the 
> backends. Any function that fails returns 0. Then we could move command-line 
> options to the engine for setting preferences for uniform functionality.

Yes, I agree completely. I've been meaning to suggest this for a few
weeks, when I have time I'll talk about it in more detail. The engine
should read/write the files and communicate with the backends.
Probably the preference files should store options for each backend
separately.
_______________________________________________
Ohrrpgce mailing list
[email protected]
http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org

Reply via email to