mirror of https://github.com/OpenTTD/OpenTTD
(svn r4099) -Codechange: [OSX] the cocoa video driver speedup of around 1000% now also applies to Intel macs
parent
26a5b62865
commit
7b39ac7e1d
|
@ -1464,20 +1464,15 @@ static void QZ_DrawScreen(void)
|
||||||
uint width;
|
uint width;
|
||||||
uint pitch;
|
uint pitch;
|
||||||
uint y;
|
uint y;
|
||||||
|
|
||||||
src = _cocoa_video_data.pixels;
|
|
||||||
dst = (uint8*)_cocoa_video_data.realpixels;
|
|
||||||
width = _cocoa_video_data.width;
|
|
||||||
pitch = _cocoa_video_data.pitch;
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
// PPC appears to handle updating of rectangles right
|
|
||||||
{
|
|
||||||
uint num_dirty_rects;
|
uint num_dirty_rects;
|
||||||
uint length_drawn;
|
uint length_drawn;
|
||||||
uint left;
|
uint left;
|
||||||
uint i;
|
uint i;
|
||||||
|
|
||||||
|
src = _cocoa_video_data.pixels;
|
||||||
|
dst = (uint8*)_cocoa_video_data.realpixels;
|
||||||
|
width = _cocoa_video_data.width;
|
||||||
|
pitch = _cocoa_video_data.pitch;
|
||||||
num_dirty_rects = _cocoa_video_data.num_dirty_rects;
|
num_dirty_rects = _cocoa_video_data.num_dirty_rects;
|
||||||
|
|
||||||
/* Check if we need to do anything */
|
/* Check if we need to do anything */
|
||||||
|
@ -1503,15 +1498,7 @@ static void QZ_DrawScreen(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
_cocoa_video_data.num_dirty_rects = 0;
|
_cocoa_video_data.num_dirty_rects = 0;
|
||||||
}
|
|
||||||
#else
|
|
||||||
// it appears that Intel based macs didn't like to only update parts of the screen at a time, so they still update everything at each frame
|
|
||||||
// we need to switch to use Quartz exclusively (no QuickDraw commands at all) to fix this
|
|
||||||
// to use Quartz exclusively, we should use 16 or 32 bit graphics since 8 bit coloured graphic support sucks
|
|
||||||
height = _cocoa_video_data.height;
|
|
||||||
QZ_WaitForVerticalBlank();
|
|
||||||
for (y = 0; y < height; y++) memcpy(dst + y * pitch, src + y * width, width);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int QZ_ListFullscreenModes(OTTDPoint* mode_list, int max_modes)
|
static int QZ_ListFullscreenModes(OTTDPoint* mode_list, int max_modes)
|
||||||
|
|
Loading…
Reference in New Issue