Commit Graph

266 Commits

Author SHA1 Message Date
glx 4796be85a5 (svn r20084) -Fix [FS#3919] (r7157): don't try to handle mouse events when the cursor ha left the window 2010-07-06 21:10:47 +00:00
peter1138 4b4e97695f (svn r19965) -Cleanup: Use size of buffer, not magic number. 2010-06-12 10:55:13 +00:00
frosch 9e53f1e004 (svn r19933) -Fix [FS#3804]: Keep _current_company and _local_company in sync during GUI operation. 2010-06-05 13:32:42 +00:00
frosch e864701693 (svn r19861) -Fix (r19814): Silence a warning. 2010-05-19 18:38:18 +00:00
rubidium 062dd0e24c (svn r19814) -Codechange: give some more unnamed enums a name, in case they consisted of unrelated values use static const (u)int 2010-05-13 10:14:29 +00:00
rubidium 465e3be105 (svn r19593) -Codechange: improve loading/executing the desync logs 2010-04-09 17:08:44 +00:00
smatz c5b34444af (svn r19084) -Codechange: minor coding-style fixups 2010-02-10 17:37:47 +00:00
yexo d858264ca6 (svn r19012) -Fix (r19003): macos.h is not in video/cocoa/ but in os/macosx/. 2010-02-04 22:17:41 +00:00
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...
2010-02-04 14:32:12 +00:00
rubidium 82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 2010-01-15 16:41:15 +00:00
rubidium 7aeccb9bd0 (svn r18796) -Fix [FS#3521]: [SDL] possible deadlock when killing OpenTTD while starting it 2010-01-13 21:34:48 +00:00
rubidium 9c579a5adf (svn r18792) -Fix [FS#3522] (r18709): crash when using the 32bpp blitter with a dedicated server 2010-01-12 18:09:48 +00:00
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. 2010-01-12 09:54:18 +00:00
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. 2010-01-04 02:32:36 +00:00
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) 2009-12-20 16:10:44 +00:00
rubidium c811f3bd21 (svn r18547) -Fix [FS#3388]: missing thread synchronisation when changing the resolution for SDL via the in game menu 2009-12-19 19:29:01 +00:00
frosch 29d6491605 (svn r18545) -Fix [FS#3292]: Assign '_screen.dst_ptr' as soon as it is allocated. 2009-12-19 18:46:40 +00:00
peter1138 3addf58f30 (svn r18390) -Fix (r17776): [SDL] Reinstate pointer update on 'idle' loop. 2009-12-03 08:24:39 +00:00
peter1138 b0049500a6 (svn r18177) -Fix (r18001): [SDL] Viewport could jump when mouse moved and right button pressed at the same time. 2009-11-18 23:07:29 +00:00
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. 2009-11-09 16:07:03 +00:00
rubidium cbf4b80b86 (svn r18030) -Fix: screen jumped a bit for at least SDL and Allegro when right-click-dragging 2009-11-09 16:05:24 +00:00
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. 2009-11-07 21:41:41 +00:00
smatz da54a01114 (svn r17950) -Fix (r17776): _draw_mutex was never destroyed, _draw_thread was never joined 2009-11-02 13:36:17 +00:00
smatz dc4b251dbd (svn r17949) -Fix (r17776): unlock mutex before deleting it when creating drawing thread failed 2009-11-02 12:12:13 +00:00
rubidium cfcf3159b2 (svn r17815) -Fix [SDL]: asynchronious drawing caused extra unresponsiveness during map generation; disable the threading while generating a map 2009-10-19 20:32:05 +00:00
michi_cc 144febd2d9 (svn r17793) -Fix: [OSX] The splash image wasn't displayed if the Quartz video driver was used. 2009-10-17 22:36:39 +00:00
rubidium c37029d5e1 (svn r17787) -Codechange: be a bit more verbose about while allegro failed with some actions. 2009-10-17 14:39:43 +00:00
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.
2009-10-15 17:41:06 +00:00
rubidium 7341834430 (svn r17773) -Cleanup: sdl.h isn't needed for allegro 2009-10-14 08:14:57 +00:00
michi_cc 2b7e242872 (svn r17768) -Fix (r17715): [OSX] Newer GCC versions don't like jumping over variable definitions with goto's. (planetmaker) 2009-10-12 00:19:11 +00:00
michi_cc d900b0d628 (svn r17717) -Codechange: [OSX] Replace deprecated variable type. 2009-10-04 21:39:12 +00:00
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. 2009-10-04 21:39:08 +00:00
michi_cc dbb13fd856 (svn r17715) -Cleanup: [OSX] And a final round of coding style and some cleaning. 2009-10-04 21:36:26 +00:00
michi_cc ba6866128d (svn r17714) -Cleanup: [OSX] Apply more coding style. 2009-10-04 21:36:22 +00:00
michi_cc 9b54d5bbd7 (svn r17713) -Cleanup: [OSX] Move variable definitions to first use and apply more coding style. 2009-10-04 21:36:17 +00:00
michi_cc ec90a8778f (svn r17712) -Codechange [FS#1411]: [OSX] Replace undocumented process manager API calls with a documented alternative. (pyth) 2009-10-04 21:33:36 +00:00
michi_cc 8484e08ee0 (svn r17711) -Codechange: [OSX] Don't use deprecated methods to construct a Cocoa string. 2009-10-04 21:33:31 +00:00
michi_cc a831143f45 (svn r17707) -Fix: [OSX] Show the OS mouse cursor when displaying a dialog box if it was hidden. 2009-10-04 21:08:34 +00:00
michi_cc 5f67762a7f (svn r17706) -Codechange: [OSX] Rework the crash handling to use the common CrashLog infrastructure. 2009-10-04 21:08:30 +00:00
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.
2009-10-04 20:53:22 +00:00
smatz 6c7f8fc8b4 (svn r17701) -Codechange: don't start line with a space if it's not inside comment 2009-10-04 20:51:50 +00:00
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. 2009-09-20 10:19:13 +00:00
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 :( 2009-09-06 23:12:25 +00:00
rubidium bc5241600a (svn r17428) -Codechange: add a function to get the name of a driver 2009-09-05 21:26:51 +00:00
rubidium bc8e66c202 (svn r17336) -Codechange: move some os specific files into src/os/ 2009-08-31 22:38:37 +00:00
rubidium 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
rubidium 7fb95e2c2b (svn r17228) -Codechange: some coding style fixes 2009-08-20 10:23:39 +00:00
smatz c5533ae470 (svn r17168) -Codechange: apply coding style to if and while statements 2009-08-14 17:11:59 +00:00
smatz e707c82412 (svn r17131) -Codechange: apply coding style to some switch statements 2009-08-09 14:40:34 +00:00
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. 2009-07-14 16:43:45 +00:00
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. 2009-06-30 16:20:16 +00:00
rubidium c29afac0a7 (svn r16700) -Fix: if allegro fails to start or fails open a window or sound card fall back to another driver 2009-06-30 12:38:18 +00:00
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. 2009-06-30 12:36:24 +00:00
alberth 9b070b5405 (svn r16677) -Codechange: Dimension width and height are unsigned. 2009-06-27 20:53:45 +00:00
alberth bab70a823d (svn r16491) -Codechange: Added parentheses around bitwise operators for code style. 2009-06-01 11:43:36 +00:00
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. 2009-05-19 21:20:14 +00:00
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
2009-05-06 15:06:57 +00:00
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. 2009-05-03 15:46:36 +00:00
rubidium bee930f9b3 (svn r16024) -Codechange: harden string copying on places where it's possible 2009-04-10 20:37:05 +00:00
rubidium 8293be426c (svn r15892) -Codechange: [OSX] some type fixes so OpenTTD likes more of the 3.1.x Xcodes. 2009-03-29 19:55:08 +00:00
rubidium b25a4f8231 (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 2009-03-15 00:32:18 +00:00
rubidium 9d018723b7 (svn r15711) -Codechange: lots of whitespace cleanup/fixes 2009-03-14 18:16:29 +00:00
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. 2009-03-14 15:42:53 +00:00
rubidium 86ca408d46 (svn r15626) -Fix [FS#2698]: UTF8 string handling could cause buffer overruns. 2009-03-06 01:23:25 +00:00
yexo 3bb872e7dd (svn r15576) -Codechange: rename SwitchModes to SwitchMode and don't hardcode the values for that enum. 2009-02-25 00:45:52 +00:00
yexo 901230bde1 (svn r15575) -Codechange: Rename GameModes to GameMode and store _game_mode as GameMode instead of as byte. 2009-02-25 00:14:46 +00:00
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). 2009-02-21 13:27:09 +00:00
smatz 0d3f5e6e74 (svn r15299) -Cleanup: remove many redundant includes 2009-01-31 20:16:06 +00:00
glx a3dc092ebc (svn r15233) -Fix (r15231): compilation with SDL broken on win32 2009-01-23 17:32:01 +00:00
rubidium 48125a6d5f (svn r15232) -Codechange: sprinklin' of coding style 2009-01-23 16:05:58 +00:00
rubidium 4ba90f6887 (svn r15231) -Change: (sdl) check the full screen resolutions to determine what 'valid' resolutions we've got 2009-01-23 15:58:34 +00:00
rubidium eeb38a8e3a (svn r15176) -Fix [FS#2554]: querying the content server could free when resolving the hostname or connecting takes long/is timing out. 2009-01-20 16:51:55 +00:00
rubidium 6e1af6a051 (svn r15156) -Fix: add scrollwheel support to allegro 2009-01-19 22:27:43 +00:00
rubidium 11da45ee55 (svn r14949) -Cleanup: pointer coding style 2009-01-10 00:31:47 +00:00
rubidium cda853872a (svn r14944) -Cleanup: add spaces around some operators 2009-01-09 22:56:28 +00:00
peter1138 6b6fd36050 (svn r14907) -Codechange: Remove 32 character limit from driver/blitter selection and parameters. 2009-01-08 11:06:07 +00:00
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.
2008-11-29 01:28:13 +00:00
rubidium a614dd7174 (svn r14636) -Add: DOS port of OpenTTD, without network support though. 2008-11-26 13:12:45 +00:00
rubidium 34ddda1009 (svn r14632) -Add: support Allegro as midi backend. 2008-11-25 23:21:58 +00:00
rubidium 72124862f0 (svn r14631) -Add: support for Allegro as sound backend. 2008-11-25 21:09:00 +00:00
rubidium 3aacd0a3d5 (svn r14630) -Add: support Allegro as video backend. 2008-11-25 19:32:12 +00:00
rubidium b650a86e58 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames. 2008-09-30 20:51:04 +00:00
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. 2008-09-30 20:39:50 +00:00
rubidium e7829c1a57 (svn r14414) -Fix: replace instances of strncpy with strecpy as strncpy doesn't guarantee the resulting string is '\0'-terminated. 2008-09-29 16:27:02 +00:00
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) 2008-09-24 23:25:24 +00:00
glx fe5cc9c839 (svn r14363) -Fix [FS#2206]: some keypress combinations could be handled twice 2008-09-20 16:07:56 +00:00
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. 2008-09-07 11:55:28 +00:00
rubidium 6b86de13d6 (svn r14200) -Fix (r14199): some OSes failed to compile. Furthermore I hate wrong comments! 2008-08-31 11:51:09 +00:00
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. 2008-08-31 10:50:05 +00:00
glx fbd2db34e6 (svn r14094) -Revert (r14071): caused more problems than it solved 2008-08-17 15:03:54 +00:00
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. 2008-08-13 19:09:27 +00:00
rubidium 203b5eed27 (svn r14055) -Codechange: increase buffers for (dedicated) consoles as they couldn't use the full "extent" of the new chat message limit. 2008-08-12 20:31:49 +00:00
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. 2008-08-11 22:45:11 +00:00
bjarni fbef6535a5 (svn r14032) -Fix (r13584): [OSX] changed the condition for selecting 8 or 32 bpp blitter by default
Now we will pick 32 bpp if no 8 bpp fullscreen resolutions are available on the main display (the one with the dock)
2008-08-09 17:56:31 +00:00
rubidium 6c5f703cf0 (svn r13992) -Fix [FS#2189]: the dedicated console removed any character that was not a printable ASCII character instead. Now it allows UTF8 formated strings too. 2008-08-04 15:07:17 +00:00
glx 4782df757c (svn r13539) -Fix (r13537): signed/unsigned warnings 2008-06-16 20:16:43 +00:00
smatz 2299181c4b (svn r13537) -Fix [FS#2090](r13523): QSortT won't work this way, use Dimension instead of uint16[2] for resolutions 2008-06-16 19:38:41 +00:00
glx ee256e770a (svn r13390) -Codechange: introduce usererror() for fatal but not openttd related errors. Now all error() will 'crash' openttd after showing the message in win32 releases (MSVC), creating a crash.log and crash.dmp (like the '!' hack used before). On the other hand, usererror() will just close the game. So use error() only when it can be helpful to debugging, else use usererror(). 2008-06-05 20:54:52 +00:00
rubidium 923e21129c (svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games. 2008-05-29 15:13:28 +00:00
rubidium 4625695653 (svn r13251) -Codechange: rename _patches to _settings as that is more logic.
-Codechange: move all Settings into substructs of _settings in a way that they are logically grouped.
2008-05-25 19:17:03 +00:00