Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-02-17 | Fix: [SDL2] simplify what to redraw to prevent tearing (#8685) | Patric Stout | |
When there are a lot of rects to redraw, of which one of the last ones is almost the full screen, visual tearing happens over the vertical axis. This is most visible when scrolling the map. This can be prevented by using less rects. To simplify the situation, and as solutions like OpenGL need this anyway, keep a single rect that shows the biggest size that updates everything correctly. Although this means it needs a bit more time redrawing where it is strictly seen not needed, it also means less commands have to be executed in the backend. In the end, this is a trade-off, and from experiments it seems the approach of this commit gives a better result. | |||
2021-02-17 | Fix 52317bb7: [SDL2] ensure we don't try to blit out of bounds (#8684) | Patric Stout | |
During resizing, there can still be dirty-rects ready to blit based on the old dimensions. X11 with shared memory enabled crashes if you try to do this. So, instead, if we resize, reset the dirty-rects. This is fine, as moments later we mark the whole (new) screen as dirty anyway. | |||
2021-02-14 | Fix: VkMapping declarations violated C++ ODR rule. | milek7 | |
2021-02-14 | Add: [OSX] Automatic zoom level suggestion for Cocoa video driver. | Michael Lutz | |
2021-02-14 | Add: [Win32] Automatic zoom level suggestion for Win32 video driver. | Michael Lutz | |
The zoom level suggestion is based on the DPI scaling set in Windows. We use 150% scaling as the threshold for 2X zoom and 300% scaling as the threshold for 4X zoom. | |||
2021-02-14 | Feature: Automatic UI and font zoom levels when supported by the OS. | Michael Lutz | |
2021-02-14 | Fix 9c872192: [OSX] Clear mouse button emulation flag. | Michael Lutz | |
2021-02-14 | Add: [OSX] Setting to disable HiDPI graphics rendering. | Michael Lutz | |
2021-02-14 | Change: [OSX] Render screen in full native resolution on HiDPI displays. | Michael Lutz | |
2021-02-14 | Codechange: Consistently use screen size and not driver resolution for ↵ | Michael Lutz | |
determining window sizes. | |||
2021-02-13 | Cleanup: [OSX] Improve some comments. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Remove unused 'app active' flag. | Michael Lutz | |
2021-02-13 | Fix: [OSX] An emulated right mouse down event has to be followed by right ↵ | Michael Lutz | |
mouse up. | |||
2021-02-13 | Codechange: [OSX] Use relative mouse handling during scrolling. | Michael Lutz | |
2021-02-13 | Change: [OSX] Use a layer-backed view to speed up drawing. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Align backing buffer pitch for a tiny bit performance. | Michael Lutz | |
2021-02-13 | Cleanup: [OSX] Move event loop into video driver file. | Michael Lutz | |
2021-02-13 | Remove: [OSX] Startup splash screen. | Michael Lutz | |
It wasn't displayed anyway as it was never copied to the bundle. | |||
2021-02-13 | Codechange: [OSX] Move key event handling to our view. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Move mouse event handling to our NSView. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Move some things from video driver to our NSView. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Use newer mouse tracking API. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Split drawing into its own subview. | Michael Lutz | |
This allows the drawing backend code to be independent of any event or command handling. | |||
2021-02-13 | Codechange: [OSX] Drain autoreleased objects in each game loop cycle. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Split Window and back buffer creation in Cocoa video driver. | Michael Lutz | |
2021-02-13 | Cleanup: [OSX] Doxygen comment style in video driver. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Inline some functions that are used in only one place. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Replace #define with modern code. | Michael Lutz | |
2021-02-13 | Codechange: [OSX] Fold remaining Cocoa video subdriver into the main driver. | Michael Lutz | |
2021-02-13 | Change: [OSX] Replace screen resolution list with suggested window sizes. | Michael Lutz | |
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 | Codechange: [OSX] There is only one subdriver left, remove virtual dispatch. | Michael Lutz | |
2021-02-11 | Change: [SDL2] Remove unneeded delay of redrawing the screen | Patric Stout | |
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 | Codechange: [SDL2] Don't use globals if we can do with locals | Patric Stout | |
2021-02-11 | Codechange: [SDL2] Name paint function Paint(), like other drivers do | Patric Stout | |
This reduces confusion when reading different drivers. | |||
2021-02-11 | Fix 30e69c51: palette was not marked dirty when creating a new | Patric Stout | |
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-06 | Fix #8029: [SDL2] disable draw-thread on wayland SDL video driver (#8648) | Patric Stout | |
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-05 | Codechange: Apply coding style (#8640) | SamuXarick | |
* 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-01-30 | Codechange: [SDL2] Use MakeDirty() to force a redraw | Patric Stout | |
The original code is "strictly correct", but just reads really weird, and we use MakeDirty() in several other places instead too. | |||
2021-01-30 | Codechange: [SDL2] Rework how palette is updated | Patric Stout | |
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 | Fix: [SDL2] Display why SDL_CreateWindow() failed in case it does | Patric Stout | |
All SDL_NNN errors print SDL_GetError, except for this one place. | |||
2021-01-30 | Codechange: [SDL2] Split away CreateMainWindow from CreateMainSurface | Patric Stout | |
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 | Codechange: [SDL2] reworked the different surfaces to make it more readable | Patric Stout | |
2021-01-30 | Codechange: [SDL2] Only prepare "caption" if you are going to us it | Patric Stout | |
2021-01-30 | Codechange: [SDL2] Minor code cleanup to remove silly variable | Patric Stout | |
2021-01-30 | Codechange: [SDL2] Only set _cur_palette, never _local_palette | Patric Stout | |
2021-01-30 | Codechange: [SDL2] Move FindStartupDisplay to its own function | Patric Stout | |
2021-01-30 | Codechange: [SDL2] reworked FindResolutions to be more like the rest | Patric Stout | |
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 | Codechange: [SDL2] remove include-protection | Patric Stout | |
This is already done by CMake: if SDL2 is not detected, this file is not included. | |||
2021-01-17 | Codechange: [SDL2/Win32] Be consistent how 0bpp blitters are not allowed | Patric Stout | |
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 | Codechange: [Win32] Use _local_palette for most operations | Patric Stout | |
Other drivers do this too, and this makes the world a bit more the same. |