(svn r4099) -Codechange: [OSX] the cocoa video driver speedup of around 1000% now also applies to Intel macs
This commit is contained in:
		@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user