Age | Commit message (Collapse) | Author | Files | Lines |
|
* Added "Scale" user option, which can either by "Auto" or an explicit
scaling factor. Its maximum value depends on the current resolution.
The "Auto" factor is based on keeping the logical resolution on at
least 800x600, wheres the maximum scale is based on keeping the
logical resolution on at least 640x480.
* Enabled support for High DPI. This means the rendering target can now
have a different resolution than the window size, which can happen on
macOS, Windows and Wayland. The resulting scale is multiplied by the
above user-controlled scale.
Currently, this looks ugly for non-integer scales, which are not used
on macOS and can only be configured on some Wayland compositors.
Has not been tested on Windows.
* Simplified OpenGL initialization (moved out of _beginDraw).
* Made sure _beginDraw/_endDraw sets a clip area also for SDLGraphics.
|
|
* Use default member initializers
* Use range-based for loops
* Avoid needless pointer references for ShopItem::mDuplicates
* Removed type aliases that are only used once or twice
* Removed more unused includes
* Removed some unused functions
* Removed superfluous .c_str()
* Rely on default copy and assignment operators for Vector class
* Use std::unique_ptr in some places
* Removed duplicated mPlayerMoney updating in SellDialog
* Removed duplicated Game::handleInput call
* Removed unused SDLInput::mMouseInWindow
* Removed remnant of manual widget positioning in HelpWindow
* Removed superfluous initialization of static pointers
|
|
The configuration and setup UI were adjusted to the new options.
This also fixes issues in applying new video settings.
Default resolution was changed from 800x600 to 1280x720. VSync is
enabled by default while FPS limit was disabled.
Display aspect ratio for the resolution options.
I had to work around some macOS issues:
* Don't change window size when it appears to be "maximized", since it
just changes the rendering area while leaving the window maximized.
* Unset fullscreen display mode temporarily to allow changing resolutions,
otherwise the rendering area no longer matches the screen and mouse
input is also off.
* Removed SDL_WINDOW_ALLOW_HIGHDPI for now because it causes issues on
macOS, since we're not actually handling the scaling factor.
A Video class and an SDLGraphics subclass were split off from Graphics.
This setup has Less duplication and leaves the OpenGLGraphics and
SDLGraphics better separated.
Fixes #57
Fixes #58
|
|
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
|
|
|
|
|
|
Instead, support for dynamically adjusting layout was added to the
Container class.
Various other places were also adapted to use the new layout support in
Container.
Reviewed-by: Erik Schilling
|
|
Unified Graphics:setFullscreen and Graphics:resize into a single
Graphics:changeVideoMode function that tries to restore the existing mode when
changing to the new mode didn't work, and exists with an error when that also
fails.
Split up handling of SDL_VIDEORESIZE and the adapting to new resolution in the
Client class, so that the second part could also be called when changing
resolution fullscreen mode.
The Video tab in the Setup window now also filters out any modes smaller than
640x480 since the game won't properly adapt to that resolution anyway.
Reviewed-by: Yohann Ferreira
|
|
I think it also looks a bit more organized overall.
Reviewed-by: Erik Schilling
|
|
|
|
enforced by -std=c++0x
Reviewed-by: Thorbjørn Lindeijer
|
|
Keeping the windows within the visible area is expected behavior, no
matter for how long it has been broken. It makes little sense to warn
about expected behavior.
|
|
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
|
|
To make room for the interface tab
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
|
|
Added an 'Interface' tab for the items that seemed to fit better
there than in 'Video'.
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
|
|
This reverts commits e35b3bdd0a74464e4b4d3b931ca416f0c7864ba6
and e35b3bdd0a74464e4b4d3b931ca416f0c7864ba6.
Sometimes the text fields and the list show different server
selected, so you don't see to what server you connect. It is
a big security risk sending your user name and password to
the wrong server.
Reviewed-by: Freeyorp, Bertram
|
|
I have to admit I contributed a large part of these. Sorry for that.
Less empty space, more attention to the code.
Acked-by: Jared Adams
|
|
|
|
Conflicts:
src/being.cpp
src/client.cpp
src/commandhandler.cpp
src/gui/setup_video.cpp
src/gui/socialwindow.cpp
src/gui/viewport.cpp
src/gui/widgets/browserbox.cpp
src/gui/widgets/itemcontainer.cpp
src/imageparticle.cpp
src/localplayer.cpp
src/localplayer.h
src/map.cpp
src/net/tmwa/beinghandler.cpp
src/particle.cpp
src/particle.h
src/player.cpp
src/player.h
|
|
transparency'.
That name is more explicit about what it actually does.
Reviewed-by: CodyMartin.
|
|
Trivial fix.
|
|
Reviewed-by: Bertram, Thorbjorn
|
|
This disables the Image::setAlpha() function, which
uses 60% of the client's CPU cycles.
When enabled, visual quality is slightly decreased,
especially with the particle system.
Toggling this setting On from an Off state requires
a client restart or the graphics look quite funny.
Bertram's addition:
- Renamed 'Low CPU' to 'Disable transparency (Low CPU)' in the gui
for better understanding.
- Removed the sprite display with 30% opacity when disabling
transparency since it made monsters and drops be drawn above all layers
at full opacity.
- Made the OpenGL mode disable the 'low CPU mode'.
- Fixed the GUI logic as much as possible. Please note that the GUI opacity
slider stays enabled when transparency is disabled even if told to be disabled
in that case.
Reviewed-by: CodyMartin, 4144, MadCamel.
|
|
* Shortening option names that got cropped in video setup
* Moving options to the left hand side in player setup, because
they looked like they belong to the "when ignoring" part.
Reviewed-by: Bertram
|
|
Conflicts:
src/actorspritemanager.h
src/beingmanager.cpp
src/game.cpp
src/gui/beingpopup.cpp
src/gui/chat.cpp
src/gui/chat.h
src/gui/inventorywindow.h
src/gui/itempopup.cpp
src/gui/socialwindow.cpp
src/gui/statuswindow.cpp
src/gui/widgets/chattab.cpp
src/gui/widgets/chattab.h
src/net/tmwa/inventoryhandler.cpp
src/net/tmwa/partyhandler.cpp
src/party.cpp
src/sound.cpp
src/utils/stringutils.cpp
src/utils/stringutils.h
|
|
For Linux OpenGL was already deactivated.
For OSX it is still by default switched on.
Reviewed-by: Jaxad0127
|
|
Reviewed-by: Jaxad0127
|
|
Please note that I didn't turned all the getValue() call into new ones,
simply because I have to have config object initiated which is not
forcefully the case the branding file.
Resolves: Manasource Mantis #170.
|
|
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
|
|
Reviewed by: Jaxad0127
|
|
Reviewed-by: Bertram
|
|
|
|
|
|
Not really useful to be able to edit it by hand.
|
|
cancel events.
Signed-off-by: Tametomo <irarice@gmail.com>
|
|
It is more clear in the end. Also fixed deleting of the mode list model.
|
|
|
|
Also added the update copyright tool from the Wormux Team.
( And not forgetting credit's due. :P )
|
|
There was little point in keeping the Engine class separate. It wasn't
an engine at all, but only kept track of the currently active map, a job
more suitable for the Game class anyway.
|
|
|
|
Also remove some extra new lines and fix eAthena's PartyTab define guards.
|
|
Moved remaining widgets into widgets folder, standardized include order, moved TextRenderer out.
|
|
Disabled by default.
|
|
are enabled or not in a static member of class Particle instead of an instanced member of Being.
|
|
|
|
Trying to use the same kind of capitalization and interpunctuation
for various parts of the gui, melding a few split strings, updating
POTFILES.in and adding translators' notes.
|
|
|
|
* Merged a few split strings
* Fixed some spellings and wordings
* Turned a couple of std::cout and std::cerr into logger messages
|
|
Video and player setup pages now look a bit better when translated or
when the font size is increased.
|
|
|