summaryrefslogtreecommitdiff
path: root/src/video
AgeCommit message (Collapse)Author
2020-12-15Add: [Emscripten] use "relative mouse mode" with SDL2Patric Stout
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-15Add: support for emscripten (play-OpenTTD-in-the-browser)Patric Stout
Emscripten compiles to WASM, which can be loaded via HTML / JavaScript. This allows you to play OpenTTD inside a browser. Co-authored-by: milek7 <me@milek7.pl>
2020-12-15Codechange: unroll the SDL2 main loopPatric Stout
This commit prepares for the next commit, as Emscripten needs to have a way to trigger a single iteration of the main loop. To keep the real changes more clear, this commit only unrolls the loop, and makes no changes to the logic itself.
2020-09-25Codechange: Make codestyle for CMake files consistent for 'control' statementsCharles Pigott
2020-06-18Fix #8104: Always add WINDOW_RESIZABLE flag to SDL2 (#8211)nikolas
This fixes a bug that can reproduced with these steps: * Start openttd in fullscreen mode * Turn off fullscreen mode * Try to resize the window. The window can't be resized.
2020-06-07Cleanup: Correct typographic errors in code comments.TechGeekNZ
2020-06-05Add: introduce CMake for project managementPatric Stout
CMake works on all our supported platforms, like MSVC, Mingw, GCC, Clang, and many more. It allows for a single way of doing things, so no longer we need shell scripts and vbs scripts to work on all our supported platforms. Additionally, CMake allows to generate project files for like MSVC, KDevelop, etc. This heavily reduces the lines of code we need to support multiple platforms from a project perspective. Addtiionally, this heavily improves our detection of libraries, etc.
2020-06-04Codechange: Realign SDL driver with SDL2 driver to ease maintenance and ↵TechGeekNZ
emphasise differences.
2020-06-01Fix #8066: Try another fallback colourspace if first one failsNiels Martin Hansen
2020-05-21Codechange: Use std::string in the driver and blitter selection code.Michael Lutz
2020-04-12Remove: [OSX] Stuff that is pre-10.7 from the Cocoa/Quartz video driver.Michael Lutz
2020-04-12Remove: [OSX] Old fullscreen subdriver for pre 10.7 systems.Michael Lutz
Since the move to C++11, building for pre 10.7 is not possible with the native Apple tools. Also, due to bitrot, the file doesn't even compile anymore. While this could be fixed, it shows that this subdriver is basically never used anymore.
2020-04-12Remove: [OSX] QuickDraw video subdriver used for OSX versions up to 10.4.Michael Lutz
Since the C++11 move, getting OpenTTD to compile and run for anything below 10.7 basically requires building a custom compiler and libc++. Also, the QuickDraw subdriver crashes on more modern OSX version. While this is fixable, keeping the driver around is probably pointless.
2020-03-30Fix #7644: [Cocoa] Manually set colorspace to sRGBSebastian Pauka
2020-01-15Fix: [SDL2] Correct name of the video driver in debug logxdavidwu
SDL_GetVideoDriver(0) returns name of first video driver included in the library, not the driver currently used. SDL_GetCurrentVideoDriver() does what we want here.
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-11-10Fix #7783, Fix #7816: [SDL2] Fix input handling in edit contextJonathan G Rennison
In particular this fixes handling of the shift key
2019-11-10Codechange: Add EditBoxGainedFocus method to VideoDriver base classJonathan G Rennison
2019-11-10Change: [SDL2] Add an "unprintable" flag to struct VkMappingJonathan G Rennison
SDL_Keysym::sym is not suitable for checking whether the character is printable or not
2019-11-10Fix: [SDL2] Page down key not handledJonathan G Rennison
SDLK_PAGEUP and SDLK_PAGEDOWN are not sequential They must have separate entries in _vk_mapping
2019-11-10Fix: [SDL2] Detection of backtick scancodeJonathan G Rennison
SDL_Keysym::scancode is a SDL_SCANCODE_* constant, not a raw scan code
2019-11-01Fix #7784: up/down/home/end key behavior in SDL2Nikolas Nyby
Closes #7784.
2019-11-01Codechange: [OSX] Use std::unique_ptr with a custom deleter to simply memory ↵Michael Lutz
management of Core Foundation types.
2019-10-25Codechange: Don't use SDL_CreateRGBSurfaceWithFormat()Nikolas Nyby
This function requires libSDL 2.0.5 or higher. It looks like we don't need to use it, and can just use the original SDL_CreateRGBSurface(), with the masks set to 0, to trigger the default 8-bit format, which is SDL_PIXELFORMAT_INDEX8. Closes #7785 Note: this code path is activated by using an 8-bit blitter, like: ./bin/openttd -b 8bpp-simple
2019-09-29Fix: Some typos found using codespellJMcKiern
2019-09-19Add #6173: New SDL 2 based video and sound drivers (#7086)nikolas
2019-09-16Change: [OSX] Recreate backing store if the colour profile of the screen (or ↵Michael Lutz
the screen) the game window is one changes. This will result in changing colours if moving OpenTTD from one screen to another, but should avoid performance problems if the window is moved.
2019-09-16Fix #7644: [OSX] Try to use system colour space to avoid video output ↵Michael Lutz
performance degradation.
2019-09-07Fix: change Quartz driver colorSpace handling to address certain macOS ↵Andy
performance issues (#7644)
2019-08-06Cleanup: Remove duplicate thread.h include (#7683)nikolas
2019-04-18Codechange: use std::vector for _resolutionsglx
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-04-06Codechange: C++11 STL has a function for getting the number of CPU cores.Michael Lutz
2019-04-06Codechange: Use platform independent C++11 function for sleeping on a thread.Michael Lutz
2019-04-06Codechange: Replace custom thread code with C++11 thread objects.Michael Lutz
We assume a conforming C++11 compiler environment that has a valid <thread>-header. Failure to run a real thread is handled gracefully.
2019-04-06Codechange: Replace custom mutex code with C++11 mutex'es.Michael Lutz
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-03-30Change: [SDL] Do not offer video smaller than 640x480Niels Martin Hansen
2019-03-24Codechange: Use override specifer for overriding member declarationsHenry Wilson
This is a C++11 feature that allows the compiler to check that a virtual member declaration overrides a base-class member with the same signature. Also src/blitter/32bpp_anim_sse4.hpp +38 is no longer erroneously marked as virtual despite being a template.
2019-03-20Remove: ENABLE_NETWORK switchPatric Stout
This switch has been a pain for years. Often disabling broke compilation, as no developer compiles OpenTTD without, neither do any of our official binaries. Additionaly, it has grown so hugely in our codebase, that it clearly shows that the current solution was a poor one. 350+ instances of "#ifdef ENABLE_NETWORK" were in the code, of which only ~30 in the networking code itself. The rest were all around the code to do the right thing, from GUI to NewGRF. A more proper solution would be to stub all the functions, and make sure the rest of the code can simply assume network is available. This was also partially done, and most variables were correct if networking was disabled. Despite that, often the #ifdefs were still used. With the recent removal of DOS, there is also no platform anymore which we support where networking isn't working out-of-the-box. All in all, it is time to remove the ENABLE_NETWORK switch. No replacement is planned, but if you feel we really need this option, we welcome any Pull Request which implements this in a way that doesn't crawl through the code like this diff shows we used to.
2019-03-19Remove: DOS supportPatric Stout
In 10 years there was no active development on DOS. Although it turned out to still work, the FPS was very bad. There is little interest in the current community to look into this. Further more, we like to switch to c++11 functions for threads, which are not implemented by DJGPP, the only current compiler for DOS. Additionally, DOS is the only platform which does not support networking. It is the reason we have tons of #ifdefs to support disabling networking. By removing DOS support, we can both use c++11 functions for threads, and remove all the code related to disabling network. Sadly, this means we have to see DOS go. Of course, if you feel up for the task, simply revert this commit, and implement stub c++11 functions for threads and stub functions for networking. We are more than happy to accept such Pull Request.
2019-03-05Remove: BeOS support (deprecated by Haiku)Patric Stout
In 10 years there is no commit to change how BeOS works, and we have no active maintainer for it. It is unlikely it works in its current state (but not impossible). With the arrival of SDL2 (and removal of SDL), BeOS is no longer support. SDL2 suggests to use Haiku instead of BeOS.
2019-03-05Remove: MorphOS / AmigaOS supportPatric Stout
In 10 years there is no commit to change how MorphOS works, and we have no active maintainer for it. It is unlikely it works in its current state (but not impossible). With the arrival of SDL2 (and removal of SDL), MorphOS is no longer support. There is an SDL2 port for MorphOS, but it is not maintained by upstream SDL2, and nobody can currently test it out. If anyone wants to re-add MorphOS, please do (revert this patch, fix the problems, and create a Pull Request). If you need any help doing so, let us know! It is not that we don't like MorphOS, it is that we don't have anyone fixing the problems :(
2019-03-02Codechange: Remove ability for SDL to be dynamically loaded on WindowsCharles Pigott
2019-02-24Change: [OSX] Prevent 2D scrolling for traditional scroll wheel miceAlexander Weiss
2019-02-24Change #6800: [OSX] Use high-precision scrolling deltas for 2D scrollingAlexander Weiss
2019-01-17Codechange: Remove unnecessarily defined functions under MinGWCharles Pigott
2019-01-17Fix: A few minor compile warnings under MinGWCharles Pigott
2018-12-27Fix: [Win32] WIN32 may not be defined, always prefer the compiler predefined ↵glx
macro _WIN32
2018-07-19Feature: Framerate display window (#6822)Niels Martin Hansen
Frame rate and various game loop/graphics timing measurements and graphs. Accessible via the Help menu, and can print some stats in the console via the fps command.
2018-06-27Fix: [Win32] Garbage in OS window title if branch name was too long.Michael Lutz
This was caused by a missing \0-character on reaching the buffer limit.