Michael Lutz
42af13c141
Codechange: [OSX] Split drawing into its own subview.
...
This allows the drawing backend code to be independent
of any event or command handling.
2021-02-13 22:21:17 +01:00
Michael Lutz
60f30036f1
Codechange: [OSX] Drain autoreleased objects in each game loop cycle.
2021-02-13 22:21:17 +01:00
Michael Lutz
8aaf4ea098
Codechange: [OSX] Split Window and back buffer creation in Cocoa video driver.
2021-02-13 22:21:17 +01:00
Michael Lutz
0eff7de659
Cleanup: [OSX] Doxygen comment style in video driver.
2021-02-13 22:21:17 +01:00
Michael Lutz
8ced72ab10
Codechange: [OSX] Inline some functions that are used in only one place.
2021-02-13 22:21:17 +01:00
Michael Lutz
13134f9d64
Codechange: [OSX] Replace #define with modern code.
2021-02-13 22:21:17 +01:00
Michael Lutz
88f6c7a9f3
Codechange: [OSX] Fold remaining Cocoa video subdriver into the main driver.
2021-02-13 22:21:17 +01:00
Michael Lutz
e6bea3961f
Change: [OSX] Replace screen resolution list with suggested window sizes.
...
We never change the real screen resolution on OSX. As such, offering a list
of resolutions is pointless. Instead of that, offer the user a list of
commonly used window sizes up to the current screen size.
2021-02-13 22:21:17 +01:00
Michael Lutz
4db7837d06
Codechange: [OSX] There is only one subdriver left, remove virtual dispatch.
2021-02-13 22:21:17 +01:00
Patric Stout
52317bb7df
Change: [SDL2] Remove unneeded delay of redrawing the screen
...
In testing, I could find no reason why this statement is here.
The comment is rather unclear (it states what it does, but not
why it would be needed).
This line of code was introduced with f4f40448 , which gives no
further insight on why it would be needed to have it here.
As such, let's remove it and see if anyone else reports any
problems with it. If so, this commit can be reverted and a more
clear comment should be added what this line of code is dealing
with (the WHY, not the WHAT).
2021-02-11 20:23:53 +01:00
Patric Stout
2e1535389a
Codechange: [SDL2] Don't use globals if we can do with locals
2021-02-11 20:23:53 +01:00
Patric Stout
2bbef6b5cf
Codechange: [SDL2] Name paint function Paint(), like other drivers do
...
This reduces confusion when reading different drivers.
2021-02-11 20:23:53 +01:00
Patric Stout
569ce6c7b4
Fix 30e69c51: palette was not marked dirty when creating a new
...
This means the code depended that the caller did this for us
before MakePalette() is executed, which is neither a
requirement nor a promise the code makes.
2021-02-11 20:23:53 +01:00
Patric Stout
2c9084d48c
Fix #8029 : [SDL2] disable draw-thread on wayland SDL video driver ( #8648 )
...
When the wayland SDL video driver is used, an EGL context is
created in the main thread. It is not allowed to update this
context from another thread, which is exactly what our draw-thread
is trying.
The other solution would be to move all of SDL into the
draw-thread, but that would introduce a whole scala of different
problems.
The wayland SDL backend is significantly faster than the
X11 SDL backend, but there is a performance hit nevertheless.
2021-02-06 14:09:45 +01:00
SamuXarick
a4035af337
Codechange: Apply coding style ( #8640 )
...
* Fix: Missing or needed spaces
* Codechange: Remove space
* Codechange: Remove space
* Codechange: More missing spaces
* Codechange: Missing spaces
* Codechange: Remove space
* Codechange: Remove space
2021-02-05 11:00:36 +01:00
Patric Stout
0e54c32452
Codechange: [SDL2] Use MakeDirty() to force a redraw
...
The original code is "strictly correct", but just reads really
weird, and we use MakeDirty() in several other places instead too.
2021-01-30 21:43:59 +01:00
Patric Stout
30e69c518b
Codechange: [SDL2] Rework how palette is updated
...
It now follows more what the Win32 driver does, and has far less
exceptions and special casing.
MakePalette creates the Palette and prepares surface.
UpdatePalette updates the Palette.
CheckPaletteAnim checks if UpdatePalette needs to be called and
marks the whole screen dirty so DrawSurfaceToScreen will do a
full redraw.
2021-01-30 21:43:59 +01:00
Patric Stout
eb80fefd1d
Fix: [SDL2] Display why SDL_CreateWindow() failed in case it does
...
All SDL_NNN errors print SDL_GetError, except for this one place.
2021-01-30 21:43:59 +01:00
Patric Stout
19345908cb
Codechange: [SDL2] Split away CreateMainWindow from CreateMainSurface
...
This makes the code a bit more readable, as both intentions are
more clear, and there is less nesting in the main function.
2021-01-30 21:43:59 +01:00
Patric Stout
8c37e5c526
Codechange: [SDL2] reworked the different surfaces to make it more readable
2021-01-30 21:43:59 +01:00
Patric Stout
8de325f256
Codechange: [SDL2] Only prepare "caption" if you are going to us it
2021-01-30 21:43:59 +01:00
Patric Stout
e41ec5b42e
Codechange: [SDL2] Minor code cleanup to remove silly variable
2021-01-30 21:43:59 +01:00
Patric Stout
678031f9b3
Codechange: [SDL2] Only set _cur_palette, never _local_palette
2021-01-30 21:43:59 +01:00
Patric Stout
f31b65825f
Codechange: [SDL2] Move FindStartupDisplay to its own function
2021-01-30 21:43:59 +01:00
Patric Stout
6916fc76bd
Codechange: [SDL2] reworked FindResolutions to be more like the rest
...
There was no default resolution fallback, and the code was different
from the win32 driver. It is now named the same and much more
similar.
2021-01-30 21:43:59 +01:00
Patric Stout
a52d716c88
Codechange: [SDL2] remove include-protection
...
This is already done by CMake: if SDL2 is not detected, this file
is not included.
2021-01-30 21:43:59 +01:00
Patric Stout
1eceee915e
Codechange: [SDL2/Win32] Be consistent how 0bpp blitters are not allowed
...
Sometimes it returned an usererror(), sometimes Start() failed.
Now it always fails on Start(), so nothing else has to check again
what blitter is used.
AfterBlitterChange() can never change to a 0bpp, so it is sufficient
to guard this with an assert().
2021-01-17 19:57:36 +01:00
Patric Stout
49df9c4155
Codechange: [Win32] Use _local_palette for most operations
...
Other drivers do this too, and this makes the world a bit more
the same.
2021-01-17 19:57:36 +01:00
Patric Stout
881d17d8f1
Codechange: [Win32] use CSleep() instead of Sleep() like everywhere else
...
Functional it is identical. Just helps future-us when searching
for sleeps.
2021-01-17 19:57:36 +01:00
Patric Stout
689404a4a1
Codechange: [Win32] Use return-early in RegisterWndClass()
2021-01-17 19:57:36 +01:00
Michael Lutz
7415964a4d
Codechange: [Win32] Remove Windows 95 specific mouse tracking work-around.
2021-01-17 19:57:36 +01:00
frosch
540fdfbf5a
Fix 0e62a398c7: Only center the window, when it is smaller than the screen. ( #8581 )
2021-01-16 23:36:15 +01:00
frosch
0e62a398c7
Add: [SDL2] video driver parameter to put OpenTTD on a particular display on start. By default use the display where the mouse cursor is. ( #8572 )
2021-01-14 23:29:29 +01:00
Michael Lutz
fa60c1f8b9
Feature: Choose a sensible window size on a fresh OTTD config file. ( #8536 )
2021-01-14 21:53:06 +01:00
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
Michael Lutz
979b4af6ca
Revert 4ce53cb8: [OSX] Delayed fullscreen switch is not needed anymore.
...
The fix for #8067 solves the real issue, making this workaround unneeded.
2021-01-03 22:24:04 +01:00
Michael Lutz
6e8be3b03e
Fix #8067 : [OSX] Calculate title bar height instead of assuming a fixed value.
2021-01-03 22:24:04 +01:00
Michael Lutz
4ce53cb851
Fix: [OSX] Quitting in fullscreen mode would loose the original window size.
...
This replicates the behaviour on e.g. Windows, which saves the original window size.
2021-01-03 21:20:28 +01:00
Michael Lutz
c860a247d3
Change: [OSX] Hide Dock and menu during fullscreen mode.
2021-01-03 21:20:28 +01:00
Michael Lutz
6ad5489d01
Codechange: [OSX] Silence some annoying warnings.
2021-01-03 13:25:32 +01:00
Michael Lutz
7bdaabf5f1
Cleanup: [OSX] Remove cargo cult back-buffer alpha setting on show/hide and instead simply initialise the buffer on allocation.
2021-01-03 13:25:32 +01:00
Michael Lutz
a61a741683
Change: [OSX] Compiling the Cocoa/Quartz video driver cannot be disabled anymore.
2021-01-03 13:25:32 +01:00
Michael Lutz
9ccef816f9
Codechange: [OSX] Re-arrange the OSX video driver code by combining all drawing code and moving the window/event handling to a different file.
...
This is just a code move/rename, not a functionality change.
2021-01-03 13:25:32 +01:00
Michael Lutz
65f65ad2ad
Codechange: Convert some more FIO functions to take std::string.
2020-12-27 13:19:25 +01:00
Michael Lutz
f3326d34e7
Codechange: Use std::string in FIO search path handling.
2020-12-27 13:19:25 +01:00
Michael Lutz
0c6e8a8123
Codechange: Store file search paths as std::string.
2020-12-27 13:19:25 +01:00
Charles Pigott
860c270c73
Codechange: Replace assert_compile macro with static_assert
2020-12-27 10:55:42 +00:00
Patric Stout
34051c10df
Doc: some comments for the win32 video driver ( #8409 )
...
Co-authored-by: Niels Martin Hansen <nielsm@indvikleren.dk >
2020-12-21 22:28:56 +01:00
Michael Lutz
4c1ee264a6
Fix: [OSX] Warning about ambiguous method (-Wobjc-multiple-method-names). ( #8399 )
2020-12-19 21:59:27 +01:00
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