Commit Graph

769 Commits

Author SHA1 Message Date
Jonathan G Rennison
87948d8029 Thread: Adjust checks for whether current thread is the game thread 2021-06-20 10:00:36 +01:00
Patric Stout
cf865597f8 Fix: don't propagate shift/ctrl state till next game-tick (#9381)
When the game-loop is very slow, it was easily possible to start
the loop with _shift_pressed being false, but end with
_shift_pressed being true. This doesn't hurt the game as such,
but for the user this can be very weird: I pressed "Buy Vehicle",
pressed shift a bit later, and I still get a cost indication.
2021-06-17 20:22:57 +02:00
Rubidium
357af686dc Cleanup: use true/false instead of 1/0 where applicable 2021-06-17 16:18:30 +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
glx22
d485b50813 Fix: [MinGW] Ignore wglGetProcAddress() cast warnings 2021-06-10 23:17:29 +02:00
glx22
744a9e4745 Codechange: [WIN32] Add a wrapper around GetProcAddress() 2021-06-10 23:17:29 +02:00
glx22
2df48a78cc Fix: [MinGW32] Can't convert lambda to stdcall 2021-06-10 23:17:29 +02:00
glx22
f4c7d5577e Codechange: [WIN32] Use VersionHelpers where appropriate 2021-06-10 23:17:29 +02:00
Patric Stout
37ae6b8ae3 Add: adhere the autosave_on_exit setting for Null videodriver (#9343)
This is especially useful for automated-testing, to make a save
when the game quits while using "-vnull:ticks=N".
2021-06-10 19:34:53 +02:00
Michael Lutz
5be60d03a9 Fix: [OpenGL] Increase timeout when waiting for the GPU to be done with the drawing buffer.
The old timeout could be too short if v-sync was on on lower refresh rates.

(cherry picked from commit 97722931a9)
2021-06-07 18:28:10 +01:00
Jonathan G Rennison
bf87578173 Fix #264: Crash before calling SDL_SetTextInputRect with no window focused 2021-05-30 07:38:37 +01:00
Patric Stout
ca9a7df752 Codechange: rename str_validate to StrMakeValid(InPlace) (#9304)
This to be more explicit the function changes the value, and not
returns yes/no.
2021-05-29 11:21:38 +02:00
Michael Lutz
97722931a9 Fix: [OpenGL] Increase timeout when waiting for the GPU to be done with the drawing buffer.
The old timeout could be too short if v-sync was on on lower refresh rates.
2021-05-23 12:22:59 +02:00
Patric Stout
457b4f80b6 Fix 91b8ce07: dedicated servers could no longer create screenshots (#9232)
Although most commands are not useful on a dedicated server,
screenshot commands should be dequeued.

(cherry picked from commit 56050fc96f)
2021-05-14 18:25:34 +01:00
Patric Stout
b136e65cf9 Change: reworked the debug levels for network facility (#9251)
It now follows very simple rules:
0 - Fatal, user should know about this
1 - Error, but we are recovering
2 - Warning, wrong but okay if you don't know
3 - Info, information you might care about
4 -
5 - Debug #1 - High level debug messages
6 - Debug #2 - Low level debug messages
7 - Trace information
2021-05-12 16:34:02 +02:00
Patric Stout
56050fc96f Fix 91b8ce07: dedicated servers could no longer create screenshots (#9232)
Although most commands are not useful on a dedicated server,
screenshot commands should be dequeued.
2021-05-12 16:31:31 +02:00
Milek7
deb2ad8997 Codechange: Acquire video buffer before taking game state lock to prevent erratic fast forward behaviour (#9140)
(cherry picked from commit 20762f9117)
2021-05-06 21:12:59 +01:00
Michael Lutz
1b46ef756e Codechange: Generalise the delayed blitter change to a generic video driver command queue.
(cherry picked from commit 91b8ce073f)
2021-05-06 20:52:00 +01:00
Peter Nelson
a469b4f395 Fix: Recalculate padding and minimum sizes when GUI or Font zoom is changed.
(cherry picked from commit 4791ff2862)
2021-05-06 20:11:55 +01:00
Milek7
20762f9117 Codechange: Acquire video buffer before taking game state lock to prevent erratic fast forward behaviour (#9140) 2021-05-02 19:10:07 +01:00
Michael Lutz
91b8ce073f Codechange: Generalise the delayed blitter change to a generic video driver command queue. 2021-05-02 17:57:24 +02:00
Peter Nelson
4791ff2862 Fix: Recalculate padding and minimum sizes when GUI or Font zoom is changed. 2021-04-30 17:08:15 +01:00
Jonathan G Rennison
8eb27e1ac7 Merge branch 'master' into jgrpp
# Conflicts:
#	src/company_cmd.cpp
#	src/lang/japanese.txt
#	src/network/core/config.h
#	src/network/core/packet.cpp
#	src/network/core/tcp.cpp
#	src/network/network_content.cpp
#	src/network/network_server.cpp
#	src/network/network_udp.cpp
#	src/toolbar_gui.cpp
#	src/vehicle_gui_base.h
2021-04-25 22:14:59 +01:00
Jonathan G Rennison
253772e9af Merge branch 'master' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	COMPILING.md
#	src/console.cpp
#	src/console_cmds.cpp
#	src/console_internal.h
#	src/rev.cpp.in
2021-04-25 02:14:58 +01:00
Michael Lutz
f4d5c8d99e Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. (#9100) 2021-04-25 00:43:38 +02:00
Michael Lutz
d1dd997f07 Change: [Win32] Limit the OpenGL video driver to OpenGL 3.2 or newer on Windows. 2021-04-22 21:04:04 +02:00
Michael Lutz
ef80baf75c Codechange: [Win32] Try getting an OpenGL 4.5 context first before aiming at 3.2. 2021-04-22 21:04:04 +02:00
Michael Lutz
e53313391a Fix: [OpenGL] Check maximum supported texture size against screen resolution. 2021-04-21 22:44:59 +02:00
Jonathan G Rennison
205673715c MinGW32: Fix EnumDisplayMonitors callback calling convention compile error 2021-04-14 20:49:26 +01:00
Jonathan G Rennison
253d54ce05 Merge branch 'master' into jgrpp
# Conflicts:
#	src/lang/french.txt
#	src/network/network_udp.cpp
2021-04-12 22:59:30 +01:00
Michael Lutz
433602b072 Fix #9028: [OpenGL] Clear cursor cache on destroying the OpenGL backend. 2021-04-12 22:40:40 +02:00
Rubidium
468b1c6c5d Fix: [win32] buffer_locked state not initialised, causing _screen.dst_ptr to be potentially not set 2021-04-12 21:14:01 +02:00
Rubidium
8562395413 Fix: [Video] fast forward boolean states not initialised, potentially causing unstoppable fast forward 2021-04-12 21:14:01 +02:00
Rubidium
64e8305874 Fix: [SDL] buffer_locked state not initialised, causing _screen.dst_ptr to be potentially not set 2021-04-12 21:14:01 +02:00
Jonathan G Rennison
272e583478 Merge branch 'master' into jgrpp
# Conflicts:
#	src/lang/korean.txt
#	src/settings.cpp
2021-04-12 00:22:13 +01:00
Michael Lutz
5644c00482 Fix: Check for a validly mapped OpenGL screen buffer during driver init. (#9007) 2021-04-11 14:28:29 +02:00
Patric Stout
f0f2073006 Feature: allow a toggle to enable/disable vsync
Vsync should be off by default, as for most players it will be
better to play without vsync. Exception exist, mainly people who
play in fullscreen mode.
2021-04-11 14:26:00 +02:00
Jonathan G Rennison
227041008f Merge branch 'master' into jgrpp
# Conflicts:
#	src/debug.cpp
#	src/lang/russian.txt
#	src/misc_gui.cpp
#	src/os/windows/crashlog_win.cpp
#	src/os/windows/font_win32.cpp
#	src/os/windows/win32.cpp
#	src/rail_cmd.cpp
#	src/window_gui.h
2021-04-11 03:05:08 +01:00
Jonathan G Rennison
edfa04286b Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release.yml
#	bin/CMakeLists.txt
#	src/dock_gui.cpp
#	src/lang/brazilian_portuguese.txt
#	src/lang/catalan.txt
#	src/lang/czech.txt
#	src/lang/dutch.txt
#	src/lang/english.txt
#	src/lang/english_US.txt
#	src/lang/estonian.txt
#	src/lang/finnish.txt
#	src/lang/french.txt
#	src/lang/german.txt
#	src/lang/hungarian.txt
#	src/lang/indonesian.txt
#	src/lang/italian.txt
#	src/lang/japanese.txt
#	src/lang/korean.txt
#	src/lang/lithuanian.txt
#	src/lang/luxembourgish.txt
#	src/lang/norwegian_bokmal.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/spanish.txt
#	src/lang/spanish_MX.txt
#	src/lang/swedish.txt
#	src/lang/tamil.txt
#	src/lang/ukrainian.txt
#	src/lang/vietnamese.txt
#	src/newgrf.cpp
#	src/newgrf_gui.cpp
#	src/object_gui.cpp
#	src/pathfinder/yapf/yapf_costrail.hpp
#	src/pathfinder/yapf/yapf_node_rail.hpp
#	src/rail_cmd.cpp
#	src/roadveh_cmd.cpp
#	src/town_cmd.cpp
#	src/vehicle.cpp
#	src/water_cmd.cpp
2021-04-11 02:39:33 +01:00
Jonathan G Rennison
39b7ef31f8 Fix: Data races on cursor state in OpenGL backends 2021-04-10 18:31:42 +02:00
Jonathan G Rennison
fbd0a2e65a Fix: Thread unsafe use of sprite cache in OpenGLBackend::DrawMouseCursor
See also: #8870
See also: #8977
2021-04-10 18:31:42 +02:00
Michael Lutz
96d33ab46a Fix #8930: [Win32] Don't handle printable keys on keydown if an edit box is in focus.
Handle printable input only when the matching WM_CHAR message is incoming.
Without an edit box, do the handling in keydown as usual to support hotkeys.
2021-04-09 12:24:27 +02:00
Niels Martin Hansen
e0561dbded Fix #8713: Change OTTD2FS and FS2OTTD to return string objects instead of static buffers 2021-04-07 09:31:47 +02: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
63ddf7f587 Crashlog: Update thread/lock handling to match GameLoop changes 2021-04-06 18:43:50 +01:00
Jonathan G Rennison
0e959a0563 OpenGL: Avoid data races around _cursor 2021-04-05 23:34:01 +01:00
Jonathan G Rennison
59daa573b5 Avoid data races around modifier keys and pause/FF state 2021-04-05 23:34:01 +01:00
Jonathan G Rennison
f2bfcc5524 Partially fix data race issues around _cur_palette
See: https://github.com/OpenTTD/OpenTTD/issues/8712
2021-04-05 23:34:01 +01:00
Jonathan G Rennison
e9186308e9 Fix data race in OpenGLBackend::DrawMouseCursor 2021-04-05 23:34:01 +01:00