(svn r4082) -Fix: [OSX] FS#80 Crash when switching from windowed to fullscreen
authorbjarni
Fri, 24 Mar 2006 09:47:50 +0000
changeset 3316 5d172314aa4e
parent 3315 1f65f8260092
child 3317 30f7ccb35464
(svn r4082) -Fix: [OSX] FS#80 Crash when switching from windowed to fullscreen
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
video/cocoa_v.m
--- a/video/cocoa_v.m	Fri Mar 24 08:55:08 2006 +0000
+++ b/video/cocoa_v.m	Fri Mar 24 09:47:50 2006 +0000
@@ -1470,7 +1470,7 @@
 	width  = _cocoa_video_data.width;
 	pitch  = _cocoa_video_data.pitch;
 
-#ifdef __POWERPC__
+#if 1
 	// PPC appears to handle updating of rectangles right
 	{
 		uint num_dirty_rects;
@@ -1497,9 +1497,9 @@
 
 			y = _cocoa_video_data.dirty_rects[i].top;
 			left = _cocoa_video_data.dirty_rects[i].left;
-			length_drawn = _cocoa_video_data.dirty_rects[i].right - left + 1;
+			length_drawn = _cocoa_video_data.dirty_rects[i].right - left;
 			height = _cocoa_video_data.dirty_rects[i].bottom;
-			for (; y <= height; y++) memcpy(dst + y * pitch + left, src + y * width +left, length_drawn);
+			for (; y < height; y++) memcpy(dst + y * pitch + left, src + y * width +left, length_drawn);
 		}
 
 		_cocoa_video_data.num_dirty_rects = 0;
@@ -1649,8 +1649,8 @@
 
 	for (i = 0, j = 0; j < lengthof(_resolutions) && i < count; i++) {
 		if (_cocoa_video_data.fullscreen || (
-					(uint)current_modes[i].x <= _cocoa_video_data.device_width &&
-					(uint)current_modes[i].y <= _cocoa_video_data.device_height)
+					(uint)current_modes[i].x < _cocoa_video_data.device_width &&
+					(uint)current_modes[i].y < _cocoa_video_data.device_height)
 				) {
 			_resolutions[j][0] = current_modes[i].x;
 			_resolutions[j][1] = current_modes[i].y;