Commit Graph

126 Commits

Author SHA1 Message Date
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.
2012-02-07 10:27:48 +00:00
matthijs cba6390973 (svn r23909) -Fix: [SDL] Fix keyboard-related segfault when compiling against SDL 1.3. 2012-02-07 10:12:11 +00:00
rubidium af7ea8c525 (svn r23891) -Fix-ish: compile failures with SDL 1.3 2012-02-04 16:24:25 +00:00
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 2011-12-08 20:01:31 +00:00
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) 2011-12-08 19:37:33 +00:00
rubidium 2ccbd2a6f5 (svn r23446) -Codechange: move _cur_palette and it's related first/count dirty variables into a single structure 2011-12-08 18:13:29 +00:00
rubidium 6e31c2f068 (svn r23241) -Codechange: make the decision when to go to the custom drawn cursor more prominently during the initialisation of OpenTTD 2011-11-17 21:09:08 +00:00
michi_cc 8c4c616cfe (svn r23003) -Fix (r22999): Missing semicolon. 2011-10-04 22:12:43 +00:00
michi_cc 6dbb050a32 (svn r22999) -Codechange: Allow changing the blitter during the running game. 2011-10-04 21:35:40 +00:00
rubidium bffa93a4e9 (svn r22910) -Fix [FS#4617]: icon would (almost) never be shown for SDL builds 2011-09-09 09:13:18 +00:00
rubidium 421053a694 (svn r22788) -Codechange: move modal progress related functions and variables to progress.cpp/h 2011-08-21 12:48:46 +00:00
rubidium 37415b9cf7 (svn r22785) -Codechange: rename IsGeneratingWorld to HasModalProgress 2011-08-21 12:46:46 +00:00
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... 2011-02-07 22:49:38 +00:00
rubidium ab44c91778 (svn r21252) -Codechange: introduce a constant for the number of milliseconds per game tick and use it 2010-11-19 10:35:59 +00:00
rubidium b8487afe54 (svn r20192) -Cleanup: bye bye variables.h, bye bye VARDEF... you won't be missed :) 2010-07-19 17:28:27 +00:00
peter1138 4b4e97695f (svn r19965) -Cleanup: Use size of buffer, not magic number. 2010-06-12 10:55:13 +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
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
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
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
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 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +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
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
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 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 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 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
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 402a1e24ba (svn r12977) -Codechange: remove quite some redundant (duplicate) function declarations. 2008-05-06 22:17:12 +00:00
rubidium d03994098b (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description. 2008-05-06 15:11:33 +00:00
smatz 297f99e100 (svn r12944) -Codechange: use rev.h instead of externs at many places 2008-05-04 21:53:36 +00:00
rubidium dde68e922a (svn r12779) -Codechange: remove a few constants from openttd.h. 2008-04-18 21:49:38 +00:00
smatz 8b56e7544e (svn r12167) -Feature(tte): change colour of autorail and autoroad selection when Ctrl is pressed 2008-02-17 17:00:43 +00:00
rubidium fde33b5547 (svn r12003) -Codechange: don't declare InteractiveRandom[Range] in multiple places. 2008-01-29 00:26:31 +00:00
rubidium 04f936c2c6 (svn r11811) -Fix: make compilation without networking work again (and thus move the debugdumpcommand stuff out of the network 'area'). 2008-01-11 00:30:32 +00:00
belugas 3dd61f423a (svn r11734) -Change: Allow ToggleFullScreen to return the result of the operation' attempt. Previously, only visual clues were available.
-Fix[FS#1519]: When you can not use this resolution at full screen, now you'll know that it failed.
As for the reason it did not work, each computer/OS has its reason.
2008-01-01 14:20:48 +00:00
rubidium 429521a7d1 (svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h' 2007-12-25 11:26:07 +00:00
rubidium a773d45885 (svn r11684) -Codechange: split gfx.h in a type and functional header. 2007-12-23 10:56:02 +00:00
rubidium 8f0e68285b (svn r11682) -Codechange: move some 'generic' geometry related types into a single file and do not include gfx.h everywhere to get a Point type. 2007-12-22 23:30:28 +00:00
rubidium 01e20c9140 (svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations. 2007-12-21 19:21:21 +00:00
rubidium 8896bea306 (svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps. 2007-12-19 19:44:29 +00:00
skidd13 bf959f926f (svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style 2007-11-24 10:38:43 +00:00
skidd13 8be526e499 (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style 2007-11-19 18:38:10 +00:00
rubidium 0fed821efb (svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables. 2007-08-19 09:38:30 +00:00
truelight 155b912ebb (svn r10663) -Fix r10662: bad me, didn't comply with coding style, as penalty I updated the surrounding code to comply with coding style too; I will never do it again (I hope :p) 2007-07-23 16:48:19 +00:00
truelight ef0be0e1dc (svn r10662) -Add: added 'V' as new shortcut for new viewport (bilbo)
-Add: added 'M' as new shortcut for smallmap (bilbo)
-Add: added '+' and '-' as shortcuts to zoom in the mainview (bilbo)
-Add: added support for other keycodes to be possible used in the future (bilbo)
2007-07-23 16:39:27 +00:00
peter1138 68c6add8cc (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model. 2007-07-05 12:23:54 +00:00
truelight 60f0610a85 (svn r10278) -Fix r10276: make the _realtime_tick less demanding on the CPU 2007-06-22 20:07:39 +00:00
truelight 2e19d3cf78 (svn r10276) -Codechange: made a counter based on milliseconds and independent of the game-state to base double-click and TGP Generation Process on
-Codechange: renamed _timer_counter to _palette_animation_counter, as that is what it is
2007-06-22 20:04:21 +00:00
truelight af8a234db0 (svn r10255) -Codechange: remove some old debug code nobody was using anymore 2007-06-21 16:53:57 +00:00
truelight a7dd710f06 (svn r10217) -Fix r10216: forgot to declare 'blitter' in win32 and cocoa driver (tnx glx) 2007-06-19 15:18:26 +00:00
truelight 1c4760ee06 (svn r10216) -Fix: palette animation always redid all palette entries, where in fact only a few indexes were needed
-Codechange: allow blitters to handle palette animation internally or even disable it; 8bpp uses video-backend for palette animation
2007-06-19 15:04:08 +00:00
truelight 003375d375 (svn r10190) -Codechange: merged renderer and blitter to one single class API: blitter
-Codechange: introduced a hierachy of blitters to avoid a lot of code duplication
 Note: this allows much easier adding other types of video-drivers, like OpenGL
2007-06-17 20:30:28 +00:00
truelight f3f744d36a (svn r10121) -Codechange: split renderer from rest of code; no longer any code directly accesses the video-buffer
-Add: added NULL blitter and renderer, which are always used for -vnull
-Add: dedicated driver doesn't blit nor render by default. Can be overruled by user. (-D -b 8bpp-optimized)
-Remove: removed CTRL+D from win32, which is incompatible with above
-Add: extended screenshot support for PNG and BMP
-Codechange: remove all hardcoded 8bpp references and replace them with more dynamic ones
-Codechange: minor stuff in blitters
2007-06-12 20:24:12 +00:00
truelight d7b4fb80d0 (svn r9835) -Codechange: use Pixel typedef instead of byte where ever possible 2007-05-14 15:20:50 +00:00
rubidium 24c4d5b06d (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {}; 2007-03-07 12:11:48 +00:00
rubidium 36bb92ae24 (svn r9050) -Codechange: Foo(void) -> Foo() 2007-03-07 11:47:46 +00:00
truelight 43133c766c (svn r9034) -Codechange: renamed _pause to _pause_game, as some targets already have
a symbol called _pause (and therefor our variable conflicts with 
 thatone. We shouldn't be using _ as global indicator.....)
2007-03-06 20:59:52 +00:00
Darkvater 4d4c1e0505 (svn r8691) -Cleanup: Some proper #endif comments for sound/music/video files, and a little elimination of magic numbers in Win32SoundStart 2007-02-12 21:55:10 +00:00
rubidium f35ed4bbc2 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b. 2007-01-10 18:56:51 +00:00
KUDr e373ea7096 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp) 2007-01-10 18:12:09 +00:00
Renamed from src/video/sdl_v.c (Browse further)