1
0
Fork 0

(svn r4099) -Codechange: [OSX] the cocoa video driver speedup of around 1000% now also applies to Intel macs

release/0.5
bjarni 2006-03-25 07:22:53 +00:00
parent 26a5b62865
commit 7b39ac7e1d
1 changed files with 26 additions and 39 deletions

View File

@ -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)