Jonathan G Rennison
2e06374f6f
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/build_vehicle_gui.cpp
# src/company_gui.cpp
# src/gfx_func.h
# src/group_gui.cpp
# src/industry_gui.cpp
# src/misc_gui.cpp
# src/news_gui.cpp
# src/settings_gui.cpp
# src/ship_gui.cpp
# src/smallmap_gui.cpp
# src/station_gui.cpp
# src/subsidy_gui.cpp
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/town_gui.cpp
# src/vehicle_gui.cpp
# src/viewport.cpp
# src/widget.cpp
# src/widgets/dropdown.cpp
# src/window.cpp
2023-12-17 01:16:48 +00:00
Jonathan G Rennison
af1150182a
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release-source.yml
# CMakeLists.txt
# COMPILING.md
# src/network/network_survey.cpp
# src/network/network_survey.h
# src/openttd.cpp
# src/tests/CMakeLists.txt
2023-11-17 19:17:14 +00:00
Jonathan G Rennison
c8817d7f4e
Merge branch 'master' into jgrpp
...
# Conflicts:
# os/macosx/notarize.sh
# src/3rdparty/CMakeLists.txt
# src/3rdparty/squirrel/squirrel/sqcompiler.cpp
# src/3rdparty/squirrel/squirrel/sqdebug.cpp
# src/3rdparty/squirrel/squirrel/sqvm.cpp
# src/console_cmds.cpp
# src/core/span_type.hpp
# src/crashlog.cpp
# src/currency.h
# src/date_gui.cpp
# src/driver.cpp
# src/fios.cpp
# src/genworld_gui.cpp
# src/hotkeys.cpp
# src/misc_gui.cpp
# src/music/os2_m.cpp
# src/network/core/os_abstraction.h
# src/network/network_server.cpp
# src/newgrf.cpp
# src/newgrf_config.h
# src/newgrf_text.cpp
# src/openttd.cpp
# src/os/macosx/font_osx.cpp
# src/os/macosx/misc_osx.cpp
# src/os/os2/CMakeLists.txt
# src/os/os2/os2.cpp
# src/os/unix/CMakeLists.txt
# src/os/windows/font_win32.cpp
# src/os/windows/win32_main.cpp
# src/saveload/saveload.cpp
# src/script/api/script_text.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/stdafx.h
# src/strings.cpp
# src/timetable_gui.cpp
# src/town_gui.cpp
# src/train_cmd.cpp
# src/video/dedicated_v.cpp
# src/video/video_driver.cpp
# src/video/win32_v.cpp
# src/viewport.cpp
# src/waypoint_gui.cpp
# src/widgets/dropdown_type.h
# src/window.cpp
# src/window_gui.h
2023-09-12 20:06:47 +01:00
Jonathan G Rennison
c0598d34bf
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/console.cpp
# src/os/os2/os2.cpp
# src/os/unix/font_unix.cpp
# src/strgen/strgen.h
# src/strgen/strgen_base.cpp
# src/table/settings/gui_settings.ini
2023-09-02 20:48:58 +01:00
glx22
4eddec9e79
Add: [Emscripten] Support for bootstrapping
2023-08-31 12:59:12 +02:00
glx22
3d1c4a8589
Codechange: [Emscripten] Improve syncfs synchronisation on exit/abort
2023-08-31 12:59:12 +02:00
Patric Stout
502414b567
Fix: [Emscripten] config not saved on exit game ( #11248 )
...
When changing a Game Option and pressing Exit Game, the changes
were not actually stored. This because the post-mainloop code
was never executed for Emscripten.
2023-08-31 10:10:11 +01:00
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
Rubidium
d5c0d3beb7
Codechange: unify the formatting of the game's caption
2023-06-07 08:02:46 +02:00
Patric Stout
0d840b4570
Codechange: remove queue_wrap / last_position from mouse movement
...
No backend uses it anymore, so also no longer any need to support
it.
2023-06-04 00:40:56 +02:00
Patric Stout
a969a78f81
Fix: [SDL] unify the way X11 and Wayland handle mouse events
...
Basically, we drop RelativeMode completely, and use the same trick
as used by the Windows driver: read all motion events till the last
one, and use that as value.
2023-06-04 00:40:56 +02:00
Jonathan G Rennison
32fe84cfdd
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/clear_cmd.cpp
# src/main_gui.cpp
# src/saveload/newgrf_sl.cpp
# src/water_cmd.cpp
2023-01-26 22:32:08 +00:00
Henry Wilson
0b2567d882
Codechange: Remove shift as fast-forward key when _DEBUG is defined
2023-01-26 22:15:06 +01:00
Jonathan G Rennison
adf2210bc8
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/genworld_gui.cpp
# src/lang/afrikaans.txt
# src/lang/arabic_egypt.txt
# src/lang/basque.txt
# src/lang/belarusian.txt
# src/lang/brazilian_portuguese.txt
# src/lang/bulgarian.txt
# src/lang/catalan.txt
# src/lang/croatian.txt
# src/lang/czech.txt
# src/lang/danish.txt
# src/lang/dutch.txt
# src/lang/english.txt
# src/lang/english_AU.txt
# src/lang/english_US.txt
# src/lang/esperanto.txt
# src/lang/estonian.txt
# src/lang/faroese.txt
# src/lang/finnish.txt
# src/lang/french.txt
# src/lang/frisian.txt
# src/lang/gaelic.txt
# src/lang/galician.txt
# src/lang/german.txt
# src/lang/greek.txt
# src/lang/hebrew.txt
# src/lang/hungarian.txt
# src/lang/icelandic.txt
# src/lang/indonesian.txt
# src/lang/irish.txt
# src/lang/italian.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/latin.txt
# src/lang/latvian.txt
# src/lang/lithuanian.txt
# src/lang/luxembourgish.txt
# src/lang/malay.txt
# src/lang/norwegian_bokmal.txt
# src/lang/norwegian_nynorsk.txt
# src/lang/persian.txt
# src/lang/polish.txt
# src/lang/portuguese.txt
# src/lang/romanian.txt
# src/lang/russian.txt
# src/lang/serbian.txt
# src/lang/simplified_chinese.txt
# src/lang/slovak.txt
# src/lang/slovenian.txt
# src/lang/spanish.txt
# src/lang/spanish_MX.txt
# src/lang/swedish.txt
# src/lang/tamil.txt
# src/lang/thai.txt
# src/lang/traditional_chinese.txt
# src/lang/turkish.txt
# src/lang/ukrainian.txt
# src/lang/vietnamese.txt
# src/lang/welsh.txt
# src/saveload/afterload.cpp
2023-01-12 20:59:34 +00:00
Rubidium
46dfb309bc
Fix #10309 : [SDL] Uninitialized width and height when turning off full screen
2023-01-07 15:46:00 +01:00
Jonathan G Rennison
5b7db9d849
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/commit-checker.yml
# src/command.cpp
# src/company_cmd.cpp
# src/company_gui.cpp
# src/crashlog.cpp
# src/economy.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/korean.txt
# src/misc_gui.cpp
# src/newgrf_config.cpp
# src/openttd.cpp
# src/settings_gui.cpp
# src/ship_cmd.cpp
# src/table/settings/gui_settings.ini
2022-05-15 13:54:13 +01:00
Niels Martin Hansen
345dcd3c7b
Add: Show current video driver info in Options window
2022-05-03 21:03:30 +02:00
Jonathan G Rennison
62afd94b47
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/company_cmd.cpp
# src/economy.cpp
# src/lang/swedish.txt
# src/network/network_command.cpp
# src/news_gui.cpp
# src/saveload/saveload.h
# src/script/api/script_list.cpp
# src/video/cocoa/cocoa_v.mm
# src/video/sdl2_v.cpp
2021-11-01 18:54:43 +00:00
embeddedt
883e4ea325
Change: [Emscripten] set default scrolling mode to non-pointer-locking ( #9191 )
2021-06-28 18:39:09 +02:00
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
Rubidium
f904aef176
Cleanup: use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
Jonathan G Rennison
bf87578173
Fix #264 : Crash before calling SDL_SetTextInputRect with no window focused
2021-05-30 07:38:37 +01:00
Jonathan G Rennison
ef81729dde
Partially fix data race issues around _cur_palette
...
See: https://github.com/OpenTTD/OpenTTD/issues/8712
2021-04-06 19:32:15 +01:00
Jonathan G Rennison
5e14b54a0c
Merge branch 'master' into jgrpp
2021-04-05 17:51:45 +01:00
sean
0464a50ab8
Add: Display refresh rate game option ( #8813 )
2021-03-09 10:22:52 +01:00
Patric Stout
e56d2c63c3
Add: [Video] move GameLoop into its own thread
...
This allows drawing to happen while the GameLoop is doing an
iteration too.
Sadly, not much drawing currently can be done while the GameLoop
is running, as for example PollEvent() or UpdateWindows() can
influence the game-state. As such, they first need to acquire a
lock on the game-state before they can be called.
Currently, the main advantage is the time spend in Paint(), which
for non-OpenGL drivers can be a few milliseconds. For OpenGL this
is more like 0.05 milliseconds; in these instances this change
doesn't add any benefits for now.
This is an alternative to the former "draw-thread", which moved
the drawing in a thread for some OSes. It has similar performance
gain as this does, although this implementation allows for more
finer control over what suffers when the GameLoop takes too
long: drawing or the next GameLoop. For now they both suffer
equally.
2021-03-08 19:18:55 +01:00
Patric Stout
4610aa7ae3
Remove: [Video] no longer draw in a thread
...
Drawing in a thread is a bit odd, and often leads to surprising
issues. For example, OpenGL would only allow it if you move the
full context to the thread. Which is not always easily done on
all OSes.
In general, the advise is to handle system events and drawing
from the main thread, and do everything else in other threads.
So, let's be more like other games.
Additionally, putting the drawing routine in a thread was only
done for a few targets.
Upcoming commit will move the GameLoop in a thread, which will
work for all targets.
2021-03-08 19:18:55 +01:00
Patric Stout
04db99749b
Fix #8784 : using alt+enter didn't update the fullscreen toggle visibly ( #8820 )
...
Basically, the window was not invalidated, so it was never redrawn.
This made it look like it wasn't working, but it really was.
2021-03-08 16:57:59 +01:00
Jonathan G Rennison
f4e29071be
Merge tag '1.11.0-beta2' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release.yml
# CMakeLists.txt
# src/blitter/32bpp_optimized.cpp
# src/debug.cpp
# src/gfx.cpp
# src/gfx_func.h
# src/lang/czech.txt
# src/lang/english.txt
# src/lang/italian.txt
# src/lang/swedish.txt
# src/lang/ukrainian.txt
# src/network/network_server.cpp
# src/os/windows/crashlog_win.cpp
# src/os/windows/win32.cpp
# src/pathfinder/follow_track.hpp
# src/screenshot.cpp
# src/settings_type.h
# src/spritecache.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/video_driver.cpp
# src/video/video_driver.hpp
# src/video/win32_v.cpp
2021-03-02 11:59:03 +00:00
Patric Stout
f183ded9fe
Add: settings to limit your fast-forward game speed
...
By default this setting is set to 2500% normal game speed.
(cherry picked from commit c3dc27e37e )
# Conflicts:
# src/gfx.cpp
# src/gfx_func.h
# src/settings_type.h
# src/video/cocoa/cocoa_v.mm
# src/video/video_driver.cpp
# src/video/win32_v.cpp
2021-03-01 17:54:15 +00:00
Patric Stout
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
Patric Stout
67d3c6aa71
Codechange: [Video] move InteractiveRandom() to the VideoDriver
2021-02-24 21:58:47 +01:00
Patric Stout
c409f45ddd
Codechange: [Video] make the prototype of PollEvent() the same for all drivers
...
Additionally, call it from the draw-tick.
2021-02-24 21:58:47 +01:00
Michael Lutz
421b599541
Codechange: [SDL2] Split driver in base-part and default backend
2021-02-22 22:16:07 +01:00
Michael Lutz
a77b202767
Codechange: [SDL] Move dirty_rect to class scope.
2021-02-22 22:16:07 +01:00
Patric Stout
e75858ce5e
Codechange: [SDL2] Allow several places to hook into the SDL driver
...
This allows future subdrivers to use these to manage their
own flow.
2021-02-22 22:16:07 +01:00
Patric Stout
101e394475
Codechange: [SDL2] Move functions and variables to class-scope
...
This allows future subdrivers to override them.
2021-02-22 22:16:07 +01:00
Patric Stout
0d58bc9384
Codechange: [SDL2] Move SDLSurface code to its own function
...
This increases readability, and allow future subdrivers to not
use SDLSurface to draw.
2021-02-22 22:16:07 +01:00
Patric Stout
6098811b49
Codechange: [SDL2] Split Start() in a few more functions
...
This makes it a bit easier to follow what is going on, and
allow future subdrivers to hook into a few of these functions.
Reworked the code slighly while at it, to return early where
possible.
2021-02-22 22:16:07 +01:00
Jonathan G Rennison
dfecdf3afb
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/dock_gui.cpp
# src/rail_gui.cpp
# src/road_gui.cpp
# src/terraform_gui.cpp
# src/vehicle.cpp
# src/video/allegro_v.cpp
# src/video/cocoa/cocoa_v.mm
# src/video/dedicated_v.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
2021-02-21 11:54:24 +00:00
Michael Lutz
d16dc22fdf
Codechange: Use C++-ism for zeroing.
2021-02-20 21:14:44 +01:00
Patric Stout
0e76d965f1
Codechange: deduplicate tick-handlers of all video drivers
...
They were all identical, so better put this in a single place
hoping it is less likely to break.
2021-02-20 17:08:44 +01:00
Patric Stout
ec1dd0bf61
Codechange: be consistent in what CheckPaletteAnim() does and when it is called
...
Additionally, make sure this is a class method. Later commits
will make use of this.
2021-02-20 17:08:44 +01:00
Patric Stout
790fa7102e
Codechange: be consistent in naming the paint function Paint()
...
Also move this function to be a class member. This to allow
further deduplicating of code in a later commit.
2021-02-20 17:08:44 +01:00
Patric Stout
761efbb457
Codechange: use (Un)LockVideoBuffer() to manage video buffer
2021-02-20 17:08:44 +01:00
Patric Stout
661eb39ecc
Codechange: move all input-handling of video-drivers into InputLoop
2021-02-20 17:08:44 +01:00
Jonathan G Rennison
e95216b59d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/core/geometry_func.cpp
# src/date.cpp
# src/genworld_gui.cpp
# src/gfx.cpp
# src/object_gui.cpp
# src/openttd.cpp
# src/settings_type.h
# src/video/allegro_v.cpp
# src/video/dedicated_v.cpp
# src/video/null_v.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
2021-02-19 15:38:34 +00:00
Patric Stout
932abe6d5c
Fix fa170b9: [SDL2] forgot to use GetGameInterval where needed
2021-02-19 11:34:00 +01:00
Patric Stout
c4df0f95ae
Fix: during switching of game-mode, drawing could show closed windows that shouldn't be closed yet
...
The higher your refresh-rate, the more likely this is. Mostly you
notice this when creating a new game or when abandoning a game.
This is a bit of a hack to keep the old behaviour, as before this
patch the game was already freezing your mouse while it was changing
game-mode, and it does this too after this patch. Just now it
freezes too a few frames earlier, to prevent not drawing windows
people still expect to see.
2021-02-19 10:43:15 +01:00