Commit Graph

773 Commits (8ddb9462e6b4ef28fc53beba4acc965223de9797)

Author SHA1 Message Date
Patric Stout 34051c10df
Doc: some comments for the win32 video driver (#8409)
Co-authored-by: Niels Martin Hansen <nielsm@indvikleren.dk>
4 years ago
Michael Lutz 4c1ee264a6
Fix: [OSX] Warning about ambiguous method (-Wobjc-multiple-method-names). (#8399) 4 years ago
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).
4 years ago
Patric Stout d15dc9f40f Add: support for emscripten (play-OpenTTD-in-the-browser)
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>
4 years ago
Patric Stout 2da07f7615 Codechange: unroll the SDL2 main loop
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.
4 years ago
Jonathan G Rennison d85a529f87 Merge branch 'master' into jgrpp 4 years ago
Jonathan G Rennison 51477334be SDL2: Only pass a single rectangle to SDL_UpdateWindowSurfaceRects
This is to prevent screen tearing
4 years ago
Jonathan G Rennison 1298f49be6 SDL2: Update whole window surface if >= 80% needs updating 4 years ago
Charles Pigott 348c231e12 Codechange: Make codestyle for CMake files consistent for 'control' statements 4 years ago
Jonathan G Rennison 0bfae346c1 Allow using the hash key in hotkeys (SDL) 4 years ago
TechGeekNZ cf8ea74733 Update: Merge branch 'jgrpp_master_cmake' into jgrpp_cmake 4 years ago
nikolas c9aff698d0
Fix #8104: Always add WINDOW_RESIZABLE flag to SDL2 (#8211)
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.
4 years ago
TechGeekNZ fe1925931d Cleanup: Correct typographic errors in code comments. 4 years ago
Patric Stout 56d54cf60e Add: introduce CMake for project management
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.
4 years ago
Jonathan G Rennison 43c538fa7d Merge branch 'master' into jgrpp
# Conflicts:
#	src/town_cmd.cpp
4 years ago
TechGeekNZ cdd2892c49 Codechange: Realign SDL driver with SDL2 driver to ease maintenance and emphasise differences. 4 years ago
Jonathan G Rennison 677940cfc6 Merge branch 'master' into jgrpp 4 years ago
Niels Martin Hansen 764497206a Fix #8066: Try another fallback colourspace if first one fails 4 years ago
Jonathan G Rennison f8d6e781ba Merge branch 'master' into jgrpp
# Conflicts:
#	projects/openttd_vs140.vcxproj.filters
#	projects/openttd_vs141.vcxproj.filters
#	projects/openttd_vs142.vcxproj.filters
#	src/base_consist.h
#	src/company_base.h
#	src/newgrf_config.cpp
#	src/newgrf_config.h
#	src/openttd.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/saveload/station_sl.cpp
#	src/settings.cpp
#	src/signs_base.h
#	src/string.cpp
#	src/string_func.h
#	src/table/misc_settings.ini
#	src/table/settings.h.preamble
#	src/town_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_cmd.cpp
#	src/video/cocoa/cocoa_v.mm
#	src/video/null_v.cpp
4 years ago
Michael Lutz 37bc2f8064 Codechange: Use std::string in the driver and blitter selection code. 4 years ago
Jonathan G Rennison 197a4f2e3e fcitx: Use XLookupString instead of XLookupKeysym to fix modifier keys
See: #142
4 years ago
Jonathan G Rennison 74b6981d97 Merge branch 'master' into jgrpp
# Conflicts:
#	src/os/macosx/macos.mm
#	src/video/cocoa/cocoa_v.mm
#	src/video/cocoa/fullscreen.mm
#	src/video/cocoa/wnd_quartz.mm
#	src/video/cocoa/wnd_quickdraw.mm
4 years ago
Michael Lutz 9dd8b3d430 Remove: [OSX] Stuff that is pre-10.7 from the Cocoa/Quartz video driver. 4 years ago
Michael Lutz 0e5be3887c Remove: [OSX] Old fullscreen subdriver for pre 10.7 systems.
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.
4 years ago
Michael Lutz a31cbbf67f Remove: [OSX] QuickDraw video subdriver used for OSX versions up to 10.4.
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.
4 years ago
Jonathan G Rennison 4c59dfb6b1 Fix data race during palette animation with threaded blitters 4 years ago
Jonathan G Rennison d210bc4d14 Merge branch 'master' into jgrpp
# Conflicts:
#	src/lang/korean.txt
#	src/saveload/afterload.cpp

Recalculate docking tile cache due to 57553cd8
4 years ago
Sebastian Pauka bd3a5876b0 Fix #7644: [Cocoa] Manually set colorspace to sRGB 4 years ago
Jonathan G Rennison dd99fd646d Merge branch 'master' into jgrpp
# Conflicts:
#	src/base_station_base.h
#	src/industry.h
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/lang/korean.txt
#	src/os/macosx/crashlog_osx.cpp
#	src/station_cmd.cpp
#	src/town.h
#	src/town_cmd.cpp
#	src/town_gui.cpp
5 years ago
xdavidwu 8fe38afd2b Fix: [SDL2] Correct name of the video driver in debug log
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.
5 years ago
Jonathan G Rennison cbdd9f84d8 Merge branch 'master' into jgrpp
# Conflicts:
#	src/console_gui.cpp
#	src/lang/korean.txt
#	src/video/sdl2_v.cpp
#	src/video/sdl2_v.h
#	src/window.cpp
#	src/window_gui.h
5 years ago
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 5 years ago
Jonathan G Rennison a15ace0f5b Fix #7783, Fix #7816: [SDL2] Fix input handling in edit context
In particular this fixes handling of the shift key
5 years ago
Jonathan G Rennison 81f159434d Codechange: Add EditBoxGainedFocus method to VideoDriver base class 5 years ago
Jonathan G Rennison 46f7c6a641 Change: [SDL2] Add an "unprintable" flag to struct VkMapping
SDL_Keysym::sym is not suitable for checking whether the character
is printable or not
5 years ago
Jonathan G Rennison d41378c00a Fix: [SDL2] Page down key not handled
SDLK_PAGEUP and SDLK_PAGEDOWN are not sequential
They must have separate entries in _vk_mapping
5 years ago
Jonathan G Rennison 3db399d7d9 Fix: [SDL2] Detection of backtick scancode
SDL_Keysym::scancode is a SDL_SCANCODE_* constant, not a raw scan code
5 years ago
Jonathan G Rennison ca3c72438e Merge branch 'master' into jgrpp
# Conflicts:
#	Makefile.bundle.in
#	src/os/macosx/string_osx.cpp
#	src/station_cmd.cpp
5 years ago
Jonathan G Rennison daf7cf1913 Fix: SDL2: Detection of backtick scancode
SDL_Keysym::scancode is a SDL_SCANCODE_* constant, not a raw scan code
5 years ago
Jonathan G Rennison 86953e1bef Change: SDL2: Add an "unprintable" flag to struct VkMapping
SDL_Keysym::sym is not suitable for checking whether the character
is printable or not
5 years ago
Jonathan G Rennison ab54beb3af Fix: SDL2: Page down key: SDLK_PAGEUP and SDLK_PAGEDOWN are not sequential
They must have separate entries in _vk_mapping
5 years ago
Nikolas Nyby 4884dcacba Fix #7784: up/down/home/end key behavior in SDL2
Closes #7784.
5 years ago
Michael Lutz d5a9bd404a Codechange: [OSX] Use std::unique_ptr with a custom deleter to simply memory management of Core Foundation types. 5 years ago
Jonathan G Rennison 5bf52ab736 SDL2: Fix Home and End keys not working in text editing contexts 5 years ago
Nikolas Nyby f13b184588 Codechange: Don't use SDL_CreateRGBSurfaceWithFormat()
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
5 years ago
Jonathan G Rennison 299becbb2f SDL2: Fix up/down keys in console window 5 years ago
Jonathan G Rennison 67a725e813 SDL2: Handle Fcitx keypresses which do not generate an SDL_KEYDOWN 5 years ago
Jonathan G Rennison 87acac9700 SDL2: Fix handling of shift key in edit context 5 years ago
Jonathan G Rennison 29ed470e04 Fcitx: Fix edge cases around text handling and setup 5 years ago
Jonathan G Rennison 24b5cb0fdb IME: Add direct support for Fcitx IME input, with SDL2 on *nix/X11. 5 years ago
Jonathan G Rennison 34a6f3c72a Fix text input when not in edit box mode, fix backtick handling 5 years ago
Jonathan G Rennison 5d1578bb7f Fix IME positioning with SDL2 5 years ago
Jonathan G Rennison a4c677a571 Add basic IME support to SDL2 video driver 5 years ago
Jonathan G Rennison edfd378e93 Merge branch 'master' into jgrpp
# Conflicts:
#	source.list
#	src/blitter/32bpp_anim.cpp
#	src/linkgraph/linkgraphjob.cpp
#	src/order_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_type.h
5 years ago
Jonathan G Rennison 33f5e00700 Null video driver: Add driver parameter to run until exit 5 years ago
JMcKiern 04f659e768 Fix: Some typos found using codespell 5 years ago
nikolas 2d27e8e685 Add #6173: New SDL 2 based video and sound drivers (#7086) 5 years ago
Jonathan G Rennison 1f535915d1 Merge branch 'master' into jgrpp-nrt
# Conflicts:
#	config.lib
#	src/core/bitmath_func.hpp
#	src/lang/korean.txt
#	src/main_gui.cpp
#	src/order_gui.cpp
#	src/script/api/script_object.cpp
#	src/station_cmd.cpp
#	src/video/cocoa/wnd_quartz.mm
5 years ago
Jonathan G Rennison a30638bc4a Merge branch 'jgrpp' into jgrpp-nrt 5 years ago
Michael Lutz ed6a427fcc Change: [OSX] Recreate backing store if the colour profile of the screen (or 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.
5 years ago
Michael Lutz 994664dec5 Fix #7644: [OSX] Try to use system colour space to avoid video output performance degradation. 5 years ago
Andy 9014633866 Fix: change Quartz driver colorSpace handling to address certain macOS performance issues (#7644) 5 years ago
Jonathan G Rennison b3431512ee Add modifier key window for toggling shift/ctrl key states using mouse 5 years ago
Jonathan G Rennison 6562937899 Merge branch 'master' into jgrpp-nrt
# Conflicts:
#	src/console_cmds.cpp
#	src/script/api/script_order.cpp
#	src/station_cmd.cpp
#	src/statusbar_gui.cpp
#	src/town_gui.cpp
5 years ago
nikolas 9d6fb257c3 Cleanup: Remove duplicate thread.h include (#7683) 5 years ago
Jonathan G Rennison 03d7edd828 Fix use of nullptr for HIMC type in video/win32_v.cpp 5 years ago
Jonathan G Rennison bd2fdde759 Merge branch 'master' into jgrpp
# Conflicts:
#	src/core/sort_func.hpp
#	src/rail_cmd.cpp
#	src/timetable_cmd.cpp
#	src/video/sdl_v.cpp
#	src/video/win32_v.cpp
5 years ago
glx 9195f2337a Codechange: use std::vector for _resolutions 5 years ago
Jonathan G Rennison 674732cd68 Merge: Codechange: Use null pointer literal instead of the NULL macro 5 years ago
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 5 years ago
Jonathan G Rennison f887b12be2 Add 3rd party mingw-std-threads headers to fix MinGW compilation 5 years ago
Michael Lutz 967b27a2c1 Codechange: C++11 STL has a function for getting the number of CPU cores. 5 years ago
Michael Lutz ae748166d0 Codechange: Use platform independent C++11 function for sleeping on a thread. 5 years ago
Michael Lutz 05bc2ed7cb Codechange: Replace custom thread code with C++11 thread objects.
We assume a conforming C++11 compiler environment that has a valid <thread>-header.
Failure to run a real thread is handled gracefully.
5 years ago
Michael Lutz 05f4e73608 Codechange: Replace custom mutex code with C++11 mutex'es.
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.
5 years ago
Niels Martin Hansen 66c60e52ba Change: [SDL] Do not offer video smaller than 640x480 5 years ago
Henry Wilson af7d9020a1 Codechange: Use override specifer for overriding member declarations
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.
5 years ago
Patric Stout e3c639a09f Remove: ENABLE_NETWORK switch
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.
5 years ago
Patric Stout 72c5f2b3ee Remove: DOS support
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.
5 years ago
Patric Stout f58db44ff2 Remove: BeOS support (deprecated by Haiku)
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.
5 years ago
Patric Stout 7784d77713 Remove: MorphOS / AmigaOS support
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 :(
5 years ago
Charles Pigott c3bc7d657e Codechange: Remove ability for SDL to be dynamically loaded on Windows 5 years ago
Alexander Weiss 77ab6f8ec7 Change: [OSX] Prevent 2D scrolling for traditional scroll wheel mice 5 years ago
Alexander Weiss 0bb395b21d Change #6800: [OSX] Use high-precision scrolling deltas for 2D scrolling 5 years ago
Charles Pigott fe8c24e081 Codechange: Remove unnecessarily defined functions under MinGW 6 years ago
Charles Pigott 2d981a4b2c Fix: A few minor compile warnings under MinGW 6 years ago
glx c540d72445 Fix: [Win32] WIN32 may not be defined, always prefer the compiler predefined macro _WIN32 6 years ago
Niels Martin Hansen 2a868b9f3b Feature: Framerate display window (#6822)
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.
6 years ago
Michael Lutz dbfc417e65 Fix: [Win32] Garbage in OS window title if branch name was too long.
This was caused by a missing \0-character on reaching the buffer limit.
6 years ago
Alexander Weiss 3e910a5969 Change: [OSX] Disable macOS Sierra's automatic tab feature 6 years ago
Alexander Weiss 6df7ced343 Change: [OSX] Reversed pinch to zoom behaviour.
Made pinch out zoom in and pinch in zoom out, as virtually all macOS
applications do.
6 years ago
Michael Lutz bb5584c835 Fix 74b7f0a: [OSX] Mouse cursor getting occasionally stuck. 6 years ago
Matthijs Kooijman fa87212a76 Fix: Some spelling errors in printed messages 6 years ago
Patric Stout aef69443e7 Remove: WinCE support 6 years ago
Patric Stout 85adde7485 Remove: PSP support 6 years ago
Michael Lutz e0ae67cefa Fix: [OSX] Compiler warning about an unused NULL argument. 6 years ago
Michael Lutz 6c3902ac41 Codechange: [OSX] Use newer APIs to get resolution information when available. 6 years ago
Michael Lutz 964d310cda Codechange: [OSX] Use non-deprecated API for displaying an alert where supported. 6 years ago
Michael Lutz 74b7f0a9aa Fix: [OSX] Remove some OSX compiler warnings on newer SDKs/compilers. 6 years ago
Michael Lutz 4bfd277017 Codechange: [Win32] Use OS function for mouse tracking if present. 6 years ago
michi_cc c722cb26b8 (svn r27935) -Fix [FS#6629]: [Win32] Right mouse scrolling didn't work properly with the Windows 10 Fall Creators Update. 7 years ago
frosch b4b98e5165 (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) 7 years ago
frosch b1fe837b8e (svn r27775) -Fix [FS#6510]: Insufficient thread synchronisation when switching blitters. (JGR) 7 years ago
frosch d5f82bf55b (svn r27774) -Fix [FS#5889]: Enabling palette animation for 32bpp blitters while paused skipped initialisation of the palette and resulted in black windows.
-Revert (r23978): No SDL-specific fix required anymore. The new fix applies to all backends.
7 years ago
michi_cc 94b3965989 (svn r27675) -Fix [FS#6502]: [OSX] Building with 10.11 or 10.12 SDKs. 8 years ago
michi_cc c83306391e (svn r27673) -Add: [Win32] Thread names for windows debuggers. 8 years ago
frosch 31f046bd9b (svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR) 8 years ago
alberth 0adfb1ac6f (svn r27653) -Fix(r27647): Rename FileOperation enum and values to SaveLoadOperation to avoid nameclash with windows compiler toolkit. 8 years ago
alberth 597380e099 (svn r27650) -Codechange: Replace SaveOrLoadMode by FileOperation and DetailedFileType. 8 years ago
frosch 352e528cda (svn r27167) -Fix: [SDL, Windows] Right-mouse-button scrolling scrolled/jumped way to far, when OpenTTD lagged during mouse event processing. 9 years ago
fonsinchen 306b6a11ee (svn r27046) -Fix [FS#5812]: Don't require double-press from non-dead console hotkeys. 10 years ago
planetmaker 3df230af62 (svn r26943) -Fix: [Win32] Silence a warning about comparison of signed and unsigned variables when using gcc 10 years ago
michi_cc 5a2fd3630b (svn r26818) -Fix [FS#AndyShouldHaveFoundFlySprayByNow] (r26758): [OSX] Line history and scrolling in the console window went on a walk. 10 years ago
michi_cc 2b3b8c93e7 (svn r26758) -Fix [FS#5972]: [OSX] Implement more of the text editing API to prevent crashes and improve IME support. 10 years ago
planetmaker bcb9c64ac8 (svn r26709) -Fix (r15892 and others) [FS#6069]: [OSX] Compilation fails with some lzo2 versions if we define __LP64__ as 0 instead of checking whether it is defined (kernigh2) 10 years ago
rubidium b476086c39 (svn r26538) -Codechange: remove double accounting of the drivers 10 years ago
frosch 631e8b45fd (svn r26522) -Add: A config-file-only setting to disable usage of 8bpp video modes.
-Remove: [win32] fullscreen_bpp setting, which is replaced by above setting.
-Change: Disable usage of 8bpp blitters and video modes by default. Many modern OS and hardware cause issues with those.
10 years ago
rubidium 9ed12b0f07 (svn r26509) -Codechange: replace strdup with stredup (the latter ensures the return is not NULL) 10 years ago
rubidium 781dd48949 (svn r26502) -Fix: OSX compilation error 10 years ago
frosch 0e8bfeb7a9 (svn r26496) -Fix (r1547): Reading console input on dedicated server relied on unspecified behaviour. 10 years ago
rubidium 21f991e235 (svn r26489) -Codechange: properly account for the end of buffers in the file io code instead of assuming MAX_PATH is okay 10 years ago
rubidium 5b82822c12 (svn r26486) -Codechange: replace a number of snprintfs with seprintf 10 years ago
rubidium 0463dbdc9e (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 10 years ago
planetmaker 3e9c10f9e1 (svn r26449) -Add: Allow more sound sleep for dedicated servers when there's nothing to do and nobody paying attention 10 years ago
michi_cc e15446bc58 (svn r26367) -Fix: [Win32] Use a separate event to indicate that the drawing thread has finished initialising, preventing potential deadlocks. 11 years ago
fonsinchen d8eda06a5a (svn r26366) -Fix: Protect the windows video driver from concurrent access (frosch123) 11 years ago
fonsinchen b4a015a4bd (svn r26365) -Fix [FS#5867]: Don't draw the cursor when its sprite isn't ready and set _screen.dst_ptr immediately when the buffer changes (frosch123) 11 years ago
frosch aaa6d0f9ae (svn r26360) -Revert (r25550) / Fix [FS#5922]: ClientSizeChanged is only called via WndProcGdi which already has the mutex. The issue which r25550 tried to fix still exists as FS#5867. 11 years ago
frosch 27eede06c9 (svn r26351) -Fix: Protect all VideoDriver_SDL methods with the _draw_mutex. 11 years ago
rubidium a942619911 (svn r26247) -Fix [FS#5854, FS#5855]: Possible out of bounds reads with the sse blitters (MJP) 11 years ago
rubidium fb05674cb7 (svn r26211) -Add: specialised non-animated SS2 blitter (MJP)
With 32bpp base set about 30% faster than 32bpp-optimized, or about 10% for 8bpp base sets in the Draw function. Respectively about 5 and 1% of total run time
11 years ago
rubidium 2618d960e3 (svn r26209) -Codechange: remove some template magic and simplify some code 11 years ago
fonsinchen c71aa27b92 (svn r26186) -Fix: Don't check for equality of MAC_OS_X_VERSION_MAX_ALLOWED. 11 years ago
rubidium defda16eb6 (svn r26108) -Codechange: some coding style (whitespace) 11 years ago
rubidium 6996b441d9 (svn r26107) -Codechange/cleanup: remove some coding bloat and simplify the driver factory instatiations 11 years ago
michi_cc 2708aff853 (svn r26023) -Fix [FS#5805] (r25686): [OSX] Checking for a valid NSTextInputContext is supposed to fail on 10.4 according to docs, but somehow didn't, leading to a crash when an edit box lost focus. 11 years ago
rubidium 3b9f92e14c (svn r26009) -Fix: warning about conditional expression with enumeral with non-enumeral type 11 years ago
michi_cc a985f19d5a (svn r26003) -Fix [FS#5795b] (r25743): [OSX] Some hotkeys were still triggered during text input. 11 years ago
michi_cc 8f8173c3fe (svn r26002) -Fix: [OSX] If the console hotkey is a dead key, require two presses to toggle the console, allowing input of accented characters. 11 years ago
michi_cc 8ceef6ec61 (svn r26001) -Fix [FS#5795a] (r25686): [OSX] Clear any pending marked characters from an edit box losing focus. 11 years ago
rubidium 52883db91b (svn r25970) -Fix [FS#5787]: [SDL] Recursive mutex locking when changing blitter 11 years ago
michi_cc 9b68e4f864 (svn r25962) -Fix (r25951): [OSX] Do the SDK version test the proper way 'round. 11 years ago
michi_cc a41b8c851d (svn r25951) -Fix [FS#5797]: [OSX] Disable the old fullscreen sub-driver when compiling with SDK versions 10.9+. 11 years ago
michi_cc a298a62098 (svn r25950) -Codechange: [OSX] Move some functions used by all video sub-drivers into the common source file. 11 years ago
michi_cc f36396929a (svn r25751) -Fix (r25657): [OSX] Restore fullscreen state also when starting on 10.7+. 11 years ago
michi_cc 6bbca9307d (svn r25743) -Fix [FS#5705]: [OSX] Text input into an edit box would trigger hotkeys. 11 years ago
fonsinchen 0baa72aff9 (svn r25714) -Fix: explicitly cast some things to silence warnings on GCC 4.0 11 years ago
fonsinchen fd16b0c65c (svn r25713) -Fix: use proper ObjC style to avoid problems if members are missing 11 years ago
fonsinchen 8222e18586 (svn r25712) -Fix: define kCGBitmapByteOrder32Host to 0 if it's missing. 11 years ago
fonsinchen f42d60150d (svn r25711) -Fix: don't use NULL as integer 11 years ago
fonsinchen a9fde2856c (svn r25710) -Fix: string arguments to NSNotificationCenter::addObserver and NSNotificationCenter::postNotificationName can't be const in certain versions of OSX 11 years ago
michi_cc b3ecfbb67a (svn r25693) -Add: [OSX] Support the new IME functions introduced with 10.5. 11 years ago
michi_cc 30867c487f (svn r25691) -Add: [OSX] Support for mouse selection in the IME composition string. 11 years ago
michi_cc e2ec0ddb03 (svn r25690) -Change: [OSX] Position the candidate window at the caret position. 11 years ago
michi_cc f5e4131492 (svn r25689) -Add: [OSX] Display the IME composition string ourself. 11 years ago
michi_cc c64e297e0c (svn r25688) -Codechange: [OSX] Make our view aware of text input by IMEs. 11 years ago
michi_cc 643a294e68 (svn r25687) -Codechange: [OSX] Pass text input directly down to the text handling. 11 years ago
michi_cc e4d48f3a3b (svn r25686) -Codechange: [OSX] Abandon IME input if the edit box lost the focus. 11 years ago
michi_cc 0883cf76e3 (svn r25684) -Change: [Win32] Draw the composition string ourselves if possible. 11 years ago
michi_cc cbdfd31a3c (svn r25682) -Change: [Win32] Position the IME candidate window at the caret position. 11 years ago
michi_cc da09fd3077 (svn r25681) -Change: [Win32] Position the IME composition window at the caret position. 11 years ago
michi_cc 21126aec62 (svn r25680) -Codechange: [Win32] Cancel the current IME composition when the input focus changes. 11 years ago
michi_cc 7422120014 (svn r25679) -Codechange: [Win32] Get the result string of an IME input directly without a trip through the window messaging system. 11 years ago
michi_cc 13873d2534 (svn r25678) -Codechange: Notify the video driver when an edit box lost (global) focus so it can abort any current input composition. 11 years ago
michi_cc 63332afcf0 (svn r25675) -Fix: [Win32] Handle DBCS characters correctly in the non-Unicode build. 11 years ago
michi_cc e37968aadd (svn r25673) -Fix: [Win32] Use the right code page for converting ANSI strings into UTF-8 for non-Unicode builds. And don't crap out on DBCS code pages either. 11 years ago
michi_cc fdc436b531 (svn r25672) -Fix: [Win32] Handle Unicode characters from outside the BMP correctly. 11 years ago
michi_cc 019984a14f (svn r25671) -Codechange: Pass character and key code separately to the keyboard handler. 11 years ago
michi_cc 923eb009e8 (svn r25667) -Fix: [Win32] Only forward key presses to the IME system if an edit box has the input focus. 11 years ago
michi_cc 8b476de3bf (svn r25666) -Feature [FS#4760]: [OSX] Pinch gesture support for zooming. (Based on patch by leecbaker) 11 years ago
michi_cc 8003da77aa (svn r25665) -Fix [FS#4689]: [OSX] Crash when unhiding the main window. 11 years ago
michi_cc 1ae357e905 (svn r25664) -Add [FS#4847]: [OSX] Bootstrap downloading of a baseset. (Matthieu) 11 years ago
michi_cc 4ec314989d (svn r25660) -Fix: [OSX] The name's OpenTTD, not OTTD. 11 years ago
michi_cc d23fdfa403 (svn r25659) -Fix [FS#4420]: [OSX] System mouse cursor could become visible during dragging. (Matthieu) 11 years ago
michi_cc 408c595eb8 (svn r25658) -Fix [FS#4392]: [OSX] The mouse cursor would sometimes jump near the window borders. (Matthieu) 11 years ago
michi_cc 7ba4d425c8 (svn r25657) -Fix [FS#4744]: [OSX] The new 10.7 fullscreen code can now also be compiled with older SDK versions. 11 years ago
michi_cc 2702fe88d7 (svn r25656) -Cleanup: Coding style. 11 years ago
michi_cc 6d50b10074 (svn r25655) -Fix: [OSX] Mouse cursor wasn't displayed properly after switching to fullscreen on 10.7+. (Based on patch by Maedhros) 11 years ago
rubidium d9065fbfbe (svn r25550) -Fix [FS#5571]: [Windows] Race condition between two drawing threads could crash OpenTTD 11 years ago
rubidium 4fbcb73166 (svn r25523) -Fix [FS#5587]: SDL does not give an event when an application gets mouse focus while going to full screen, so manually force the mouse-is-in-window state 11 years ago
matthijs 0d28dc92fc (svn r25318) -Fix: [SDL, FS#5580] Keyboard input stopped working after fullscreen toggle 11 years ago
rubidium dcf3df65d3 (svn r25017) -Fix [FS#5466]: crash after bootstrap download of 32bits base set due to referencing a deleted mutex 12 years ago
matthijs 2752dd7bbe (svn r25003) -Fix (r24993): [SDL] Keep a flag to remember if a hardware palette was requested.
- Previously, the code would query the SDL_HWPALETTE flag, which doesn't always match the requested value.
  - This would cause SDL to be restarted on every window resize event, effectively breaking resizing.
12 years ago
matthijs afd1e49224 (svn r25002) -Doc: [SDL] Fix typo in comment. 12 years ago
matthijs 328ed1cf94 (svn r24993) -Fix: [SDL] Improve 8bpp hardware palette support. Instead of always requesting SDL_HWPALETTE, it is now only done for 8bp blitters in fullscreen mode.
- This fixes 32bpp blitters on 8bpp X11, which would only render garbage with SDL_HWPALETTE.
  - This prevents the colors of other applications from being messed up when running a 8bpp blitter on a 8bpp system.
  - When running a 8bpp blitter on an 8bpp system without SDL_HWPALETTE (e.g., in windowed mode), this uses a new shadow surface with color approximation.
  - The use of a hardware palette can be forced on and off using -v sdl:hw_palette=1 or -v sdl:hw_palette=0
12 years ago
matthijs afcb4a25b2 (svn r24992) -Codechange: [SDL] Make CreateMainSurface and PollEvent private methods instead of static functions. 12 years ago
planetmaker c24374f99c (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 12 years ago
rubidium d5d96ba683 (svn r24877) -Fix: some whitespace "errors" 12 years ago
michi_cc 02f39ab1ee (svn r24781) -Fix (r24762): [Win32] MinGW compiler warning. 12 years ago
michi_cc e67c717c2f (svn r24762) -Fix [FS#5359]: [Win32] Don't crash when switching to an unsupported fullscreen display mode (like 8 bpp modes in Windows 8). 12 years ago
yexo 1f75f81a41 (svn r24524) -Fix [FS#5296]: fix some compile problems in mac-only code (__ln__) 12 years ago
glx ad48f766f7 (svn r24394) -Fix (r24188): changing resolution didn't resize the window 12 years ago
truebrain 353fd97de6 (svn r24189) -Fix: when going to fullscreen and back, restore to the resolution you were, not to the fullscreen resolution (Windows only) 12 years ago
truebrain 39912b7bde (svn r24188) -Fix-ish [FS#5151] (r1): when changing the basics of a window (fullscreen, 8bpp/32bpp), and a window already exists, it was forced out of maximize mode, and its resolution/position was reset, often causing unwanted side-effects. As a "bonus", a WC_SIZE was triggered, and if the system was going from 8bpp to 32pp, this caused a forced window update in a limbo-state of the blitter (not fully 32bpp just yet, but for sure no longer 8bpp); this could cause random memory access which could lead to ACCESS_VIOLATIONS 12 years ago
rubidium 74785478ec (svn r23980) -Fix (r23977): crash when starting with the 32bpp anim blitter 13 years ago
rubidium 4db85fcc4d (svn r23978) -Fix: [SDL] Palette update was done too late making switching from 8bpp -> 32bpp look ugly 13 years ago
matthijs 311413a091 (svn r23910) -Fix: [SDL] Handle the SDL_VIDEOEXPOSE event.
- It seems this event is never triggered when using 1.2 (it has some
    autorefresh feature which seems to have been removed in 1.3), but in theory
    this event could also trigger on 1.2.
  - Note that this fixes redraw issues when compiling against SDL 1.3, but it
    still uses the "compatibility" rendering API using SDL_SetVideoMode and
    SDL_UpdateRects. Eventually (when 1.3 is stable and released as 2.0), this
    should probably be rewritting to use the new Windows and Renderers
    available in SDL 1.3.
13 years ago
matthijs cba6390973 (svn r23909) -Fix: [SDL] Fix keyboard-related segfault when compiling against SDL 1.3. 13 years ago
rubidium af7ea8c525 (svn r23891) -Fix-ish: compile failures with SDL 1.3 13 years ago
michi_cc 52175a4260 (svn r23749) -Fix: [Win32] Work around a possible deadlock when initialising threaded drawing. 13 years ago
rubidium fd559171b4 (svn r23527) -Codechange: unify colo(u)r as far as it goes 13 years ago
rubidium 7e7c262167 (svn r23488) -Fix [FS#4879] (r23241): artefacts when right click mouse moving with the allegro video driver 13 years ago
michi_cc 7099faba28 (svn r23482) -Change: [Win32] Move re-painting the window and doing palette animation into a separate thread. 13 years ago
rubidium b231e80125 (svn r23470) -Codechange: move declaration of SwitchToMode to a header instead of declaring it in 6 other files 13 years ago
rubidium ccededbf77 (svn r23451) -Codechange: [SDL] Move 32bpp-anim palette animation to the draw thread instead of the single threaded bit of the game loop. This causes a speedup of up to 15% when animation is turned on with the 32bpp-anim blitter 13 years ago
rubidium 61625e53c9 (svn r23448) -Fix: keep a local copy of the palette in the 32bpp animated blitter so changes of the palette data during the game don't influence drawing (with SDL) 13 years ago
rubidium 2ccbd2a6f5 (svn r23446) -Codechange: move _cur_palette and it's related first/count dirty variables into a single structure 13 years ago
rubidium 6e31c2f068 (svn r23241) -Codechange: make the decision when to go to the custom drawn cursor more prominently during the initialisation of OpenTTD 13 years ago
michi_cc 6a2735d24e (svn r23119) -Fix: [Win32] Don't show a crash/assertion message box for a GUI-less video driver. 13 years ago
michi_cc 8c4c616cfe (svn r23003) -Fix (r22999): Missing semicolon. 13 years ago
michi_cc 6dbb050a32 (svn r22999) -Codechange: Allow changing the blitter during the running game. 13 years ago
planetmaker 6a72d64dbe (svn r22943) -Fix: [OSX] Typo broke debug compilation 13 years ago
planetmaker 58f00d786c (svn r22921) -Fix: [OSX] Don't allow the old fullscreen mode also not as fallback on OSX 10.7. Also add a few sprinkles of coding style accross cocoa display drivers 13 years ago
rubidium bffa93a4e9 (svn r22910) -Fix [FS#4617]: icon would (almost) never be shown for SDL builds 13 years ago
planetmaker 20e359acbe (svn r22895) -Add: [OSX] Alternative code for the API calls deprecated in OSX 10.6 in the quartz video driver 13 years ago
planetmaker 45b099c655 (svn r22894) -Doc: Some sprinkles of doxygen for the cocoa video driver 13 years ago
planetmaker bce482c76f (svn r22893) -Fix [FS#4744]: [OSX] Compilation on OSX 10.7 was broken (based on patch by leecbaker)
-Add: [OSX] Support for fullscreen mode when compiled against SDK 10.7. Otherwise fullscreen mode is disabled when OpenTTD is run on OSX Lion
13 years ago
rubidium 9fe4b959ac (svn r22818) -Fix [FS#4742] (r22796, rlongago): don't spawn threads for world generation and NewGRF scanning when using the dedicated or null video driver regardless of the used blitter 13 years ago
rubidium 421053a694 (svn r22788) -Codechange: move modal progress related functions and variables to progress.cpp/h 13 years ago
rubidium 37415b9cf7 (svn r22785) -Codechange: rename IsGeneratingWorld to HasModalProgress 13 years ago
planetmaker e3d9879690 (svn r22678) -Doc: More doxygen sprinkles in MacOSX code and cocoa video driver 13 years ago
alberth f1cae9960f (svn r22512) -Add: Save heightmap. 13 years ago
rubidium 4d5dbf5170 (svn r22410) -Document: some more bits ;) 13 years ago
rubidium 1a515e6344 (svn r22405) -Document: some more "random-ish" tidbits 13 years ago
rubidium 3e5924b10f (svn r22149) -Fix [FS#4521]: Windows video driver crashed when it couldn't go to full screen at the resolution of the configuration file when starting OpenTTD 14 years ago
alberth 31386c42a7 (svn r22145) -Codechange: Do explicit test for non-bool values. 14 years ago
alberth 1dbc0a20be (svn r22144) -Codechange: Unify 'while (true)' to 'for (;;)' 14 years ago
glx 1b2ef66416 (svn r22081) -Fix [FS#4489]: if fullscreen fails with current resolution, use desktop resolution 14 years ago
rubidium 1d0d7635e0 (svn r22021) -Fix (r22019): ofcourse make doesn't notice files are gone, so it doesn't recompile everything that needs to be recompiled... 14 years ago
planetmaker 9ddcbaf9b7 (svn r21684) -Fix [FS#4360] (r21573): Silence some compile warnings 14 years ago
planetmaker adc1760b0d (svn r21578) -Fix [FS#2585]: [OSX] A double mouse cursor was shown under certain circumstances (based on patch by matheweis) 14 years ago
planetmaker 30eef98ec0 (svn r21577) -Codechange: [OSX] Deduplicate code by moving the handling of the window class for screen drivers to a common class 14 years ago
planetmaker e38f96d609 (svn r21576) -Codechange: [OSX] Deduplicate code by moving the handling of the view for windowed screen drivers to a common class 14 years ago
planetmaker 26575ab8f8 (svn r21575) -Codechange: [OSX] Use the same class for the window delegate routines in windowed screen drivers 14 years ago
planetmaker 7ab04792c5 (svn r21574) -Codechange: [OSX] Move the variable declaration of the screen drivers to the generic class, deduplicating code 14 years ago
planetmaker 574e0830f1 (svn r21573) -Codechange: [OSX] Unify the naming of variables among different screen drivers a bit 14 years ago
planetmaker 0d3a0bb1c7 (svn r21572) -Codechange: [OSX] One palette is enough, we cannot use two colour depths at once 14 years ago
planetmaker 3448853b55 (svn r21537) -Cleanup: Add a few sprinkles of coding style 14 years ago
planetmaker 832625bb0e (svn r21522) -Fix: [OSX] Silence a warning when compiling without quartz and quickdraw 14 years ago
rubidium 69766049ce (svn r21396) -Codechange: rename SafeSaveOrLoad to SaveLoad (it only did load), and add support for (safe) loading with a LoadFilter 14 years ago
rubidium ab44c91778 (svn r21252) -Codechange: introduce a constant for the number of milliseconds per game tick and use it 14 years ago
planetmaker 94c45d9cc3 (svn r21245) -Fix (r21200): [OSX] Make gcc 4.2 happy 14 years ago
planetmaker 8d42b04e3b (svn r21200) -Fix: [OSX] Don't let the mouse cursor jump when switching to full screen mode 14 years ago
planetmaker 03c012797b (svn r21037) -Fix: [OSX] Mouse cursor would leave footprint with 8bpp blitter when switching to full screen 14 years ago
planetmaker 47523d86fb (svn r21036) -Fix: [OSX] Properly set the palette when using the 8bpp blitter during start-up 14 years ago
rubidium 4173ba76fa (svn r20809) -Fix (r20809): as usual with these user provided Mac OS X patches lately... they either fail to compile or spew warnings 14 years ago
rubidium 4915f47264 (svn r20808) -Add [FS#4110]: [OSX] support for input using dead keys (Zydeco) 14 years ago
rubidium c0ba81e617 (svn r20783) -Change/Fix: do autosave-on-exit as well when using kill/CTRL-C to terminate a dedicated OpenTTD 14 years ago
rubidium 134712ec64 (svn r20619) -Fix [FS#4070]: [OSX] Limit minimum window size to 64x64 like all other platforms (matheweis) 14 years ago
frosch 4bd32799f1 (svn r20286) -Codechange: Unify end of doxygen comments. 14 years ago
frosch ed4f806f1d (svn r20283) -Codechange: Unify start of doygen comments. 14 years ago
rubidium e356cb9405 (svn r20281) -Codechange: unify case scope closure + break coding style 14 years ago
terkhen 88ca183191 (svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH). 14 years ago
alberth be6c058424 (svn r20211) -Codechange: Indented code should have curly braces around it. 14 years ago
rubidium b8487afe54 (svn r20192) -Cleanup: bye bye variables.h, bye bye VARDEF... you won't be missed :) 14 years ago
rubidium 34764feac2 (svn r20186) -Codechange: remove VARDEF from _realtime_tick and _rightclick_emulate 14 years ago
rubidium 45213e5708 (svn r20183) -Codechange: make _do_autosave and _dedicated_forks not use VARDEF and put them in a more logical location 14 years ago
glx 4796be85a5 (svn r20084) -Fix [FS#3919] (r7157): don't try to handle mouse events when the cursor ha left the window 14 years ago
peter1138 4b4e97695f (svn r19965) -Cleanup: Use size of buffer, not magic number. 14 years ago
frosch 9e53f1e004 (svn r19933) -Fix [FS#3804]: Keep _current_company and _local_company in sync during GUI operation. 14 years ago
frosch e864701693 (svn r19861) -Fix (r19814): Silence a warning. 14 years ago
rubidium 062dd0e24c (svn r19814) -Codechange: give some more unnamed enums a name, in case they consisted of unrelated values use static const (u)int 14 years ago
rubidium 465e3be105 (svn r19593) -Codechange: improve loading/executing the desync logs 14 years ago
smatz c5b34444af (svn r19084) -Codechange: minor coding-style fixups 15 years ago
yexo d858264ca6 (svn r19012) -Fix (r19003): macos.h is not in video/cocoa/ but in os/macosx/. 15 years ago
rubidium e62b122bb1 (svn r19003) -Fix [FS#3194]: [OSX] OS X 10.5+ does not (always?) handle 8bpp graphics in a suitable manner. This is actually not a fix but a nasty work around; you can still easily trigger the bug/issue by overriding the 'default' blitter choice (Brad Oliver). I can/have not test(ed) (including compiling) this fix.
Bjarni once suggested that 8bpp works for him on 10.5, so apparantly not all 10.5+ does not handle 8bpp graphics. Nevertheless, it seemed that for some systems the already existing 'does this support 8bpp' did not work, i.e. the OS API seemed to suggest that 8bpp worked when it actually did not. So, I don't know what is going on precisely here but it's definitely not nice to suggest that it supports 8bpp when it doesn't. So just ditch 8bpp support for anything that we suspect might not support 8bpp...
15 years ago
rubidium 82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 15 years ago
rubidium 7aeccb9bd0 (svn r18796) -Fix [FS#3521]: [SDL] possible deadlock when killing OpenTTD while starting it 15 years ago
rubidium 9c579a5adf (svn r18792) -Fix [FS#3522] (r18709): crash when using the 32bpp blitter with a dedicated server 15 years ago
peter1138 c3fffe7496 (svn r18790) -Revert (r18001,r18177,FS#3515): Viewport could still jump under high CPU load. Revert as change caused more problems than it fixed. 15 years ago
peter1138 abb147d974 (svn r18709) -Fix (r10227,FS#3464): Animation buffer for 32bpp-anim blitter was only validated during sprite blitting, other drawing operations didn't check it. Initial startup and window resize could therefore lead to crash. 15 years ago
michi_cc 4d9097cafb (svn r18573) -Fix [FS#3198]: [OSX] Try to get a generic RGB colour space if getting the system colour profile failed. (tyler) 15 years ago
rubidium c811f3bd21 (svn r18547) -Fix [FS#3388]: missing thread synchronisation when changing the resolution for SDL via the in game menu 15 years ago
frosch 29d6491605 (svn r18545) -Fix [FS#3292]: Assign '_screen.dst_ptr' as soon as it is allocated. 15 years ago
peter1138 3addf58f30 (svn r18390) -Fix (r17776): [SDL] Reinstate pointer update on 'idle' loop. 15 years ago
peter1138 b0049500a6 (svn r18177) -Fix (r18001): [SDL] Viewport could jump when mouse moved and right button pressed at the same time. 15 years ago
rubidium 88a7e23897 (svn r18031) -Codechange: since basically r7157 adding up 'all' mouse movement isn't needed anymore because after each even that movement is handled and the counter is reset. As such simply assigning instead of adding works. 15 years ago
rubidium cbf4b80b86 (svn r18030) -Fix: screen jumped a bit for at least SDL and Allegro when right-click-dragging 15 years ago
peter1138 723c19571f (svn r18001) -Codechange: [SDL] When the mouse cursor is locked into position when scrolling a viewport, warp the mouse pointer to the centre of the window. This gives maximum freedom of movement. The pointer position is restored when the lock is removed. Visually the mouse cursor stays where it was. 15 years ago
smatz da54a01114 (svn r17950) -Fix (r17776): _draw_mutex was never destroyed, _draw_thread was never joined 15 years ago
smatz dc4b251dbd (svn r17949) -Fix (r17776): unlock mutex before deleting it when creating drawing thread failed 15 years ago
rubidium cfcf3159b2 (svn r17815) -Fix [SDL]: asynchronious drawing caused extra unresponsiveness during map generation; disable the threading while generating a map 15 years ago
michi_cc 144febd2d9 (svn r17793) -Fix: [OSX] The splash image wasn't displayed if the Quartz video driver was used. 15 years ago
rubidium c37029d5e1 (svn r17787) -Codechange: be a bit more verbose about while allegro failed with some actions. 15 years ago
rubidium f4f4044859 (svn r17776) -Codechange: [SDL] make "update the video card"-process asynchronious. Profiling with gprof etc. hasn't shown us that DrawSurfaceToScreen takes a significant amount of CPU; only using TIC/TOC it became apparant that it was a heavy CPU-cycle user or that it was waiting for something.
The benefit of making this function asynchronious ranges from 2%-25% (real time) during fast forward on dual core/hyperthreading-enabled CPUs; 8bpp improvements are, in my test cases, significantly smaller than 32bpp improvements.
On single core non-hyperthreading-enabled CPUs the extra locking/scheduling costs up to 1% extra realtime in fast forward. You can use -v sdl:no_threads to disable threading and undo this loss.
During normal non-fast-forwarded games the benefit/costs are negligable except when the gameloop takes more than about 90% of the time of a tick.
Note that allegro's performance does not improve with this system, likely due to their way of getting data to the video card. It is not implemented for the OS X/Windows video backends, unless (ofcourse) SDL is used there.
Funny is that the performance of the 32bpp(-anim) blitter is, at least in some test cases, significantly faster (more than 10%) than the 8bpp(-optimized) blitter when looking at real time in fast forward on a dual core CPU; it was slower.
The idea comes from a paper/report by Idar Borlaug and Knut Imar Hagen.
15 years ago
rubidium 7341834430 (svn r17773) -Cleanup: sdl.h isn't needed for allegro 15 years ago
michi_cc 2b7e242872 (svn r17768) -Fix (r17715): [OSX] Newer GCC versions don't like jumping over variable definitions with goto's. (planetmaker) 15 years ago
michi_cc d900b0d628 (svn r17717) -Codechange: [OSX] Replace deprecated variable type. 15 years ago
michi_cc 6ad7440ae5 (svn r17716) -Codechange: [OSX] Invoke a (semi-)private Objective-C method in a way that does not rely on the SDK version. 15 years ago
michi_cc dbb13fd856 (svn r17715) -Cleanup: [OSX] And a final round of coding style and some cleaning. 15 years ago
michi_cc ba6866128d (svn r17714) -Cleanup: [OSX] Apply more coding style. 15 years ago
michi_cc 9b54d5bbd7 (svn r17713) -Cleanup: [OSX] Move variable definitions to first use and apply more coding style. 15 years ago
michi_cc ec90a8778f (svn r17712) -Codechange [FS#1411]: [OSX] Replace undocumented process manager API calls with a documented alternative. (pyth) 15 years ago
michi_cc 8484e08ee0 (svn r17711) -Codechange: [OSX] Don't use deprecated methods to construct a Cocoa string. 15 years ago
michi_cc a831143f45 (svn r17707) -Fix: [OSX] Show the OS mouse cursor when displaying a dialog box if it was hidden. 15 years ago
michi_cc 5f67762a7f (svn r17706) -Codechange: [OSX] Rework the crash handling to use the common CrashLog infrastructure. 15 years ago
michi_cc 10ca710e98 (svn r17702) -Change: [OSX] Assure that the minimal OSX version is defined in all cases.
-Codechange: [OSX] Improve conditional defines for OS version dependant code.
15 years ago
smatz 6c7f8fc8b4 (svn r17701) -Codechange: don't start line with a space if it's not inside comment 15 years ago
rubidium 9d0b10ccda (svn r17583) -Change: make SDL's video driver more likely to be loaded than Allegro's video driver; SDL seems to perform better. 15 years ago
rubidium 9168ddd550 (svn r17438) -Fix (r17428): ofcourse some part of the OSX port would be forgotten due to it being so much different than the rest :( 15 years ago
rubidium bc5241600a (svn r17428) -Codechange: add a function to get the name of a driver 15 years ago
rubidium bc8e66c202 (svn r17336) -Codechange: move some os specific files into src/os/ 15 years ago
rubidium 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 15 years ago
rubidium 7fb95e2c2b (svn r17228) -Codechange: some coding style fixes 15 years ago
smatz c5533ae470 (svn r17168) -Codechange: apply coding style to if and while statements 15 years ago
smatz e707c82412 (svn r17131) -Codechange: apply coding style to some switch statements 15 years ago
rubidium e3c7a77b40 (svn r16827) -Codechange: make OSX specific files include stdafx.h always as the first file. Also unify OSX specific stuff into osx_stdafx.h and remove unused includes. 15 years ago
rubidium 65191b077d (svn r16702) -Change: don't implicitly fall back to the null/dedicated (video) drivers, but show an error message that no driver could be found. You can still explicitly start the null drivers thought. 15 years ago
rubidium c29afac0a7 (svn r16700) -Fix: if allegro fails to start or fails open a window or sound card fall back to another driver 15 years ago
rubidium 791187cd12 (svn r16699) -Fix [FS#3001]: if SDL fails to allocate a surface due to it being too large (and SDL doesn't crash!) fall back to another video driver. 15 years ago
alberth 9b070b5405 (svn r16677) -Codechange: Dimension width and height are unsigned. 15 years ago
alberth bab70a823d (svn r16491) -Codechange: Added parentheses around bitwise operators for code style. 15 years ago
rubidium 9f4d64bda0 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP. 15 years ago
rubidium 2664f2a2d9 (svn r16242) -Codechange: rework pausing
-Fix [FS#2864]: autopause and manual pausing conflict with eachother
-Fix: new game + pause on new game + autopause make the game not unpause on the first join
15 years ago
rubidium 5f4eeee5f0 (svn r16221) -Change: support building 64 bits OSX binaries and add optional support for 64 bits binaries in OSX universal binaries. However, do not default to adding 64 bits binaries because benchmarking has shown that they are slower than the 32 bits binaries. 15 years ago
rubidium bee930f9b3 (svn r16024) -Codechange: harden string copying on places where it's possible 15 years ago
rubidium 8293be426c (svn r15892) -Codechange: [OSX] some type fixes so OpenTTD likes more of the 3.1.x Xcodes. 15 years ago
rubidium b25a4f8231 (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 16 years ago
rubidium 9d018723b7 (svn r15711) -Codechange: lots of whitespace cleanup/fixes 16 years ago
glx 1692ce8312 (svn r15710) -Fix (r15706): for non MSVC io.h needs to be included before defining unlink. Also remove redundant tchar.h includes as it is already in stdafx.h. 16 years ago
rubidium 86ca408d46 (svn r15626) -Fix [FS#2698]: UTF8 string handling could cause buffer overruns. 16 years ago
yexo 3bb872e7dd (svn r15576) -Codechange: rename SwitchModes to SwitchMode and don't hardcode the values for that enum. 16 years ago
yexo 901230bde1 (svn r15575) -Codechange: Rename GameModes to GameMode and store _game_mode as GameMode instead of as byte. 16 years ago
rubidium a4567f243d (svn r15543) -Change: allow the default debug level of 6 for a dedicated server to be overriden by -d (if used after -D). 16 years ago
smatz 0d3f5e6e74 (svn r15299) -Cleanup: remove many redundant includes 16 years ago
glx a3dc092ebc (svn r15233) -Fix (r15231): compilation with SDL broken on win32 16 years ago
rubidium 48125a6d5f (svn r15232) -Codechange: sprinklin' of coding style 16 years ago
rubidium 4ba90f6887 (svn r15231) -Change: (sdl) check the full screen resolutions to determine what 'valid' resolutions we've got 16 years ago
rubidium eeb38a8e3a (svn r15176) -Fix [FS#2554]: querying the content server could free when resolving the hostname or connecting takes long/is timing out. 16 years ago
rubidium 6e1af6a051 (svn r15156) -Fix: add scrollwheel support to allegro 16 years ago
rubidium 11da45ee55 (svn r14949) -Cleanup: pointer coding style 16 years ago
rubidium cda853872a (svn r14944) -Cleanup: add spaces around some operators 16 years ago
peter1138 6b6fd36050 (svn r14907) -Codechange: Remove 32 character limit from driver/blitter selection and parameters. 16 years ago
rubidium cdec8f6b27 (svn r14641) -Change [Allegro]: when making a debug build revert Allegro's hooks on SIGSEGV/SIGABRT so one can actually use gdb.
-Change: make it more clear that Allegro's failing to find a driver.
16 years ago
rubidium a614dd7174 (svn r14636) -Add: DOS port of OpenTTD, without network support though. 16 years ago
rubidium 34ddda1009 (svn r14632) -Add: support Allegro as midi backend. 16 years ago
rubidium 72124862f0 (svn r14631) -Add: support for Allegro as sound backend. 16 years ago
rubidium 3aacd0a3d5 (svn r14630) -Add: support Allegro as video backend. 16 years ago
rubidium b650a86e58 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames. 16 years ago
rubidium 3b798599b6 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with. 16 years ago
rubidium e7829c1a57 (svn r14414) -Fix: replace instances of strncpy with strecpy as strncpy doesn't guarantee the resulting string is '\0'-terminated. 16 years ago
rubidium 86f1a98ac8 (svn r14397) -Fix: possible buffer overrun, wrong parameter type passed to printf and && where || is meant. Found by MSVC's code analysis (Darkvater) 16 years ago
glx fe5cc9c839 (svn r14363) -Fix [FS#2206]: some keypress combinations could be handled twice 16 years ago
rubidium 3b7ffcf759 (svn r14260) -Fix [FS#2277]: merge keycode for "normal" 0-9 keys and keypad 0-9 keys so people don't get confused that the keypad doesn't work as expected. 16 years ago
rubidium 6b86de13d6 (svn r14200) -Fix (r14199): some OSes failed to compile. Furthermore I hate wrong comments! 16 years ago
rubidium ea1f180a55 (svn r14199) -Codechange: split fileio.h into fileio_type.h and fileio_func.h so not everything that includes saveload.h needs to include everything else too. 16 years ago
glx fbd2db34e6 (svn r14094) -Revert (r14071): caused more problems than it solved 16 years ago
rubidium 20ee6f1158 (svn r14071) -Fix [FS#2057]: the screen wouldn't be centered on Windows multimonitor systems if the first monitor is right of the second one. 16 years ago
rubidium 203b5eed27 (svn r14055) -Codechange: increase buffers for (dedicated) consoles as they couldn't use the full "extent" of the new chat message limit. 16 years ago
rubidium d0c1a989a4 (svn r14047) -Codechange: move chatmessage handling to the network directory as that's the only case chat messages are used. Furthermore remove any trace of chatmessages when compiling without network support. 16 years ago