Commit Graph

56 Commits (eab334a1cc9c1162a599ccdcdaa687a8a5f69a25)

Author SHA1 Message Date
rubidium bc5d452e82 (svn r18547) -Fix [FS#3388]: missing thread synchronisation when changing the resolution for SDL via the in game menu 15 years ago
frosch 440ab2cf84 (svn r18545) -Fix [FS#3292]: Assign '_screen.dst_ptr' as soon as it is allocated. 15 years ago
peter1138 57bcb5f903 (svn r18390) -Fix (r17776): [SDL] Reinstate pointer update on 'idle' loop. 15 years ago
peter1138 dece4a4cfb (svn r18177) -Fix (r18001): [SDL] Viewport could jump when mouse moved and right button pressed at the same time. 15 years ago
rubidium 639395b69f (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
peter1138 0314ad1a38 (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 c2f0845b92 (svn r17950) -Fix (r17776): _draw_mutex was never destroyed, _draw_thread was never joined 15 years ago
smatz bb56cd39b6 (svn r17949) -Fix (r17776): unlock mutex before deleting it when creating drawing thread failed 15 years ago
rubidium 8e1f62993d (svn r17815) -Fix [SDL]: asynchronious drawing caused extra unresponsiveness during map generation; disable the threading while generating a map 15 years ago
rubidium 0307d13d0a (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 99d46e0ad7 (svn r17248) -Fix: add GPL license notice where appropriate 15 years ago
rubidium 231626f98c (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 c52fe937d5 (svn r16677) -Codechange: Dimension width and height are unsigned. 15 years ago
rubidium 241af768f0 (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
16 years ago
smatz 9021c20b5e (svn r15299) -Cleanup: remove many redundant includes 16 years ago
glx 0d87169563 (svn r15233) -Fix (r15231): compilation with SDL broken on win32 16 years ago
rubidium 2a76f869a3 (svn r15232) -Codechange: sprinklin' of coding style 16 years ago
rubidium 8800294a33 (svn r15231) -Change: (sdl) check the full screen resolutions to determine what 'valid' resolutions we've got 16 years ago
rubidium 913f51b2fb (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 956c99e46c (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 31d69a49e8 (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
smatz e00df941fa (svn r13537) -Fix [FS#2090](r13523): QSortT won't work this way, use Dimension instead of uint16[2] for resolutions 17 years ago
glx b60a1326bf (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(). 17 years ago
rubidium c27f3cfa62 (svn r12977) -Codechange: remove quite some redundant (duplicate) function declarations. 17 years ago
rubidium 1ce0b03bf0 (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. 17 years ago
smatz 89a8dc8cf7 (svn r12944) -Codechange: use rev.h instead of externs at many places 17 years ago
rubidium 7e5639ccea (svn r12779) -Codechange: remove a few constants from openttd.h. 17 years ago
smatz d3d126f999 (svn r12167) -Feature(tte): change colour of autorail and autoroad selection when Ctrl is pressed 17 years ago
rubidium 3f104194d6 (svn r12003) -Codechange: don't declare InteractiveRandom[Range] in multiple places. 17 years ago
rubidium 97d6e0e6c0 (svn r11811) -Fix: make compilation without networking work again (and thus move the debugdumpcommand stuff out of the network 'area'). 17 years ago
belugas 61285721a4 (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.
17 years ago
rubidium 81bf9f8503 (svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h' 17 years ago
rubidium 507463e420 (svn r11684) -Codechange: split gfx.h in a type and functional header. 17 years ago
rubidium 1f6043458c (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. 17 years ago
rubidium 8ebdfb258f (svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations. 17 years ago
rubidium 8bfbfd0031 (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. 17 years ago
skidd13 815b8d8df1 (svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style 17 years ago
skidd13 98f66552be (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style 17 years ago
rubidium 4ef6e75609 (svn r10932) -Codechange: replace "text" with "chat" for the chat related function and variables. 17 years ago
truelight 59702af996 (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) 17 years ago
truelight e15c5fc6b0 (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)
17 years ago
peter1138 5e85e8c5e0 (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model. 17 years ago
truelight 44a9fea388 (svn r10278) -Fix r10276: make the _realtime_tick less demanding on the CPU 18 years ago
truelight 7bfc7d19e8 (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
18 years ago
truelight f58ea51e2a (svn r10255) -Codechange: remove some old debug code nobody was using anymore 18 years ago
truelight f5271393e1 (svn r10217) -Fix r10216: forgot to declare 'blitter' in win32 and cocoa driver (tnx glx) 18 years ago
truelight cd10965a27 (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
18 years ago
truelight 79cd3f5db0 (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
18 years ago
truelight 0e53fd6d32 (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
18 years ago
truelight 5f0e384ac0 (svn r9835) -Codechange: use Pixel typedef instead of byte where ever possible 18 years ago