Age | Commit message (Collapse) | Author |
|
scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
|
|
1000% now also applies to Intel macs
|
|
the window and Draw it again when it enters).
|
|
this bug was introduced in rev 3670, but when undetected for a long time since it was resolution specific
this is likely the issue with x86 OSX in fullscreen, so I removed the really slow workaround and will clean it up once I get positive feedback from a x86 mac
this means that x86 OSX should now get the 1000% video driver speed boost as well
this fix is written by eglandil
|
|
handle those exceptions
|
|
and added another two to show if the screen buffer fails for some reason in cocoa driver (instead of just crashing)
|
|
(done with #ifdef) since it appeared to crash intel based macs
This fix is not a good solution and might not work, but if it works, it's better than nothing until we get the real solution
|
|
video/cocoa_v.m
|
|
speed it up by 1000% in fullscreen
rewrote QZ_DrawScreen to only redraw dirty rectangles (instead of everything)
This reduce the OpenTTD time spent on this function from 75% to 6,7% (in main menu)
Note: window mode is unaffected by this commit
Note: the mouse pointer can now leave artefacts in debug mode
|
|
by caching global vars in local vars, the CPU keeps them in registers when looping all pixels on screen
this reduce reading from RAM, which is much slower (Tron wrote this after I detected that those loops used a lot of time)
Note: since the reduced time is waiting for the RAM, the actual CPU usage is not reduced.
This means that it's only detectable while fast forwarding and other situations when OTTD wants to use more than 100% of the CPU time
|
|
|
|
|
|
interface
|
|
macros for endian conversion
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion
while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result
Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
|
|
the console (egladil)
|
|
|
|
Add extern to cocoa sound driver.
|
|
target by default
|
|
you can still use SDL drivers if you like and you have to run "make upgradeconf" to start using the cocoa drivers (or manually write WITH_COCOA:=1)
since SDL breaks the cocoa drivers, you can't compile with both SDL and cocoa support
Using cocoa drivers makes it easier to make universal binaries and it solves:
-FS#18 [OSX] SDL is weird in universal binaries
-FS#2 [OSX] lazy pointer crash on exit
-FS#10 [OSX] linking error when linking statically to SDL 1.2.8 (needless to explain this, but it means it should be able to compile statically with the default settings now)
-[ 1215073 ] Switching to large size out of fullscreen crashes
Using SDL drivers will still have those issues though
|