PeterN and GitHub
db573c8742
Fix #10660 : Sprite Font scale affected by viewport zoom level limits. ( #10668 )
2023-04-17 00:14:03 +02:00
PeterN and GitHub
e97bf271dc
Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. ( #10663 )
...
This avoids a (soft) namespace conflict between the four ST_* enums.
2023-04-16 20:00:55 +01:00
rubidium42 and rubidium42
6ba55e663e
Codechange: do not hide variables with other variables
2023-01-29 07:21:34 +01:00
Patric Stout and GitHub
1fb101eabb
Codechange: address CodeQL issue "Multiplication result converted to larger type" ( #10306 )
...
Most are very unlikely to ever be triggered in our codebase; two
stand out: linkgraph and money cheat. Those, potentially, could
wrap earlier than expected.
2023-01-02 20:30:02 +00:00
PeterN and GitHub
f7e2b6ef12
Change: Make vehicle list dropdown buttons resize to fit strings. ( #10286 )
2022-12-27 18:39:37 +00:00
Peter Nelson and PeterN
9666e46739
Feature: Variable GUI scale.
...
GUI scale is now variable from 100% to 500%, and no longer restricted to
powers-of-2.
2022-11-12 18:28:39 +00:00
Peter Nelson and PeterN
062ea68422
Change: Scale position of font shadow.
2022-11-12 18:28:39 +00:00
Peter Nelson and PeterN
123983743f
Change: Add optional text labels to slider widget.
2022-11-12 18:28:39 +00:00
Bouke Haarsma and Michael Lutz
45d98f689a
Fix #9993 : Handle DPI changes on macOS and Windows
2022-10-16 16:52:14 +02:00
PeterN and GitHub
f279fc5772
Fix: DrawStringMultiLine() could overdraw ( #10014 )
...
This function did not take the line height into account when checking text will fit before the bottom bounds.
2022-09-10 17:48:38 +01:00
Michael Lutz
57b992717b
Codechange: Extend DrawSpriteToRgbaBuffer to work with 8bpp blitters.
2022-01-01 12:19:30 +01:00
Michael Lutz
f40e82a19d
Fix #9743 : [OSX] Don't try to render touchbar sprites with invalid zoom level.
2022-01-01 12:19:30 +01:00
Danny de Bruijne and Michael Lutz
753b1d7e15
Feature: Add selected toolbar buttons to MacBook Pro Touch Bar
2021-09-23 21:03:00 +02:00
Patric Stout and Patric Stout
0013673faf
Change: prevent palette updates during copying to the video driver
...
ThreadSanitizer rightfully notices that the game-thread could
update the palette while the draw-thread is copying it for local
use. The odds of this are very small, but nevertheless, it does
carry a very good point.
It wouldn't hurt the application in any way, but it might cause
visual glitches on the screen.
2021-06-26 20:28:05 +02:00
Patric Stout and Patric Stout
74186998a2
Codechange: use _cur_palette the same in all the drivers
...
It was a bit of a mixed bag. With this change, gfx.cpp is in
control who accesses _cur_palette from the video-drivers.
2021-06-26 20:28:05 +02:00
Patric Stout and GitHub
c12a152ec9
Fix: thread safety issue during exiting the game ( #9380 )
...
_exit_game is read by the draw-thread to know when to exit, but
most of the time written by the game-thread.
2021-06-17 18:58:59 +02:00
rubidium42 and rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
Michael Lutz
418e0ea85f
Codechange: Use dynamic string list for contents of land info window.
2021-06-12 22:30:38 +02:00
rubidium42 and rubidium42
cb89d22cf2
Codechange: add DrawString(Multiline) that accepts std::string&
2021-05-06 21:45:36 +02:00
Peter Nelson and PeterN
4791ff2862
Fix: Recalculate padding and minimum sizes when GUI or Font zoom is changed.
2021-04-30 17:08:15 +01:00
Peter Nelson and PeterN
2efa390a7d
Codechange: Simplify calling of DrawCharCentered()
2021-04-30 17:08:15 +01:00
Patric Stout and GitHub
4866e43862
Codechange: rework codeflow introduced in 098d5b22 ( #8837 )
...
It didn't sit well to me, how I wrote the commit initially. First
casting a variable into another, only to write it back into the
originally feels wrong.
This flow makes a bit more sense to me.
2021-03-10 13:57:52 +01:00
Patric Stout and Patric Stout
970fedd78c
Add: make modal windows update more smooth
...
Basically, modal windows had their own thread-locking for what
drawing was possible. This is a bit nonsense now we have a
game-thread. And it makes much more sense to do things like
NewGRFScan and GenerateWorld in the game-thread, and not in a
thread next to the game-thread.
This commit changes that: it removes the threads for NewGRFScan
and GenerateWorld, and just runs the code in the game-thread.
On regular intervals it allows the draw-thread to do a tick,
which gives a much smoother look and feel.
It does slow down NewGRFScan and GenerateWorld ever so slightly
as it spends more time on drawing. But the slowdown is not
measureable on my machines (with 700+ NewGRFs / 4kx4k map and
a Debug build).
Running without a game-thread means NewGRFScan and GenerateWorld
are now blocking.
2021-03-10 13:41:18 +01:00
Patric Stout and GitHub
098d5b2239
Fix #8711 : having gui_zoom lower than zoom_min causes crashes ( #8835 )
...
gui_zoom was never clamp'd between zoom_min/zoom_max.
zoom_min controls how zoomed-in we load sprites. For a value of 1,
no quad-sizes sprites are loaded. If gui_zoom would be 0, meaning
it wants quad-sized sprites to display, it was printing random
stuff to the screen, which could or could not result in crashes.
2021-03-10 13:39:03 +01:00
Patric Stout and Patric Stout
b9eac7c6dc
Codechange: remove the unused lock around Blitter
2021-03-08 19:18:55 +01:00
Patric Stout and Charles Pigott
c3dc27e37e
Add: settings to limit your fast-forward game speed
...
By default this setting is set to 2500% normal game speed.
2021-02-28 18:04:51 +00:00
Michael Lutz
3e49aff35c
Codechange: Allow video drivers to handle the cursor themselves.
2021-02-22 22:16:07 +01:00
Patric Stout and Patric Stout
d437445c67
Codechange: use std::chrono to track time in modal windows
...
Adding to _realtime_ticks in a random place is a bit of a hack,
and by using modern C++, we can avoid this hack.
2021-02-19 10:43:15 +01:00
Michael Lutz
22f5aeab07
Feature: Automatic UI and font zoom levels when supported by the OS.
2021-02-14 14:16:40 +01:00
Charles Pigott and GitHub
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
Charles Pigott
860c270c73
Codechange: Replace assert_compile macro with static_assert
2020-12-27 10:55:42 +00:00
Patric Stout and Patric Stout
d5b9f7ac37
Add: [Emscripten] use "relative mouse mode" with SDL2
...
This mode doesn't wrap the mouse constantly, but requests SDL
to lock the mouse pointer. This is needed, as with Emscripten
you are not allowed to change the mouse poisition (only to lock
it into place).
2020-12-15 15:46:39 +01:00
TechGeekNZ and Charles Pigott
8652a4db76
Cleanup: Give SetDirtyBlocks a more descriptive name.
2020-06-09 13:15:47 +01:00
TechGeekNZ and Charles Pigott
3d8597d42e
Cleanup: Add undocumented parameter to GetSpriteSize.
2020-06-07 01:04:41 +01:00
Niels Martin Hansen
35c55dfe70
Add: Filled polygon drawing function
2020-01-07 18:13:58 +01:00
glx and Charles Pigott
42144ecd56
Add: a TextColour flag to ignore colour changes from strings
2019-12-23 17:30:13 +00:00
stormcone and Ingo von Borstel
40ebf3c765
Fix: Do not refer to a function in the documentation that was removed years ago ( #7844 )
...
The 'DoDrawString' was removed with this commit: f11300d
2019-11-25 22:59:03 +01:00
S. D. Cloudt and Charles Pigott
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
JMcKiern and Charles Pigott
04f659e768
Fix: Some typos found using codespell
2019-09-29 21:27:32 +01:00
Charles Pigott and PeterN
327ff89808
Codechange: Remove PauseModeByte
2019-04-29 17:40:22 +01:00
Charles Pigott and PeterN
96a4787710
Codechange: Set ZoomLevel's base type to byte instead of using ZoomLevelByte
2019-04-29 17:40:22 +01:00
glx and glx22
9195f2337a
Codechange: use std::vector for _resolutions
2019-04-18 21:49:34 +02:00
Henry Wilson and Michael Lutz
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
Michael Lutz
baf9229931
Codechange: Replace AutoDeleteSmallVector with direct std::vector use in text layout code.
2019-04-09 22:45:15 +02:00
Michael Lutz
329bb52613
Codechange: Store text layout runs directly as values in a std::vector instead of heap allocated.
...
This reduces memory allocations and heap fragmentation.
2019-04-09 22:45:15 +02:00
Michael Lutz
ae748166d0
Codechange: Use platform independent C++11 function for sleeping on a thread.
2019-04-06 11:27:39 +02:00
Michael Lutz
05f4e73608
Codechange: Replace custom mutex code with C++11 mutex'es.
...
A conforming compiler with a valid <mutex>-header is expected.
Most parts of the code assume that locking a mutex will never fail unexpectedly,
which is generally true on all common platforms that don't just pretend to
be C++11. The use of condition variables in driver code is checked.
2019-04-06 11:27:39 +02:00
glx22 and GitHub
66dd7c3879
Fix: MSVC warnings ( #7423 )
2019-03-28 00:09:33 +01:00
Henry Wilson and PeterN
ab711e6942
Codechange: Replaced SmallVector::[Begin|End]() with std alternatives
2019-03-26 20:15:57 +00:00
Henry Wilson and PeterN
297fd3dda3
Codechange: Replaced SmallVector::Include() with include()
2019-03-26 20:15:57 +00:00