diff src/video/bwindow/SDL_sysevents.cc @ 4287:0620847bf1a8 SDL-1.2

Fixed bug #798 kty@lavabit.com 2009-09-19 14:19:04 PDT The stable release of SDL 1.2.13 for BeOS/Haiku has a bug in BE_FindClosestFSMode that causes it to sometimes not select the best mode when going fullscreen. There are in fact two bugs in the implementation but I will not go into specifics because there is already a patch for it in the developer SVN 1.3. However I am still reporting it because I believe the following code is a better patch for the issue. The current implementation on SVN only works if it is able to find an exact match for the requested mode. However, by scanning from lowest-to-highest resolution instead of highest-to-lowest, one can find the best mode at all times
author Sam Lantinga <slouken@libsdl.org>
date Sat, 10 Oct 2009 02:11:07 +0000
parents a1b03ba2fcd0
children 930614179450
line wrap: on
line diff
--- a/src/video/bwindow/SDL_sysevents.cc	Sat Oct 10 02:03:53 2009 +0000
+++ b/src/video/bwindow/SDL_sysevents.cc	Sat Oct 10 02:11:07 2009 +0000
@@ -379,3 +379,20 @@
 	}
 	BDirectWindow::DispatchMessage(msg, target);
 }
+
+void SDL_BWin::DirectConnected(direct_buffer_info *info) {
+	switch (info->buffer_state & B_DIRECT_MODE_MASK) {
+		case B_DIRECT_START:
+		case B_DIRECT_MODIFY:
+			{
+				int32 width = info->window_bounds.right -
+					info->window_bounds.left + 1;
+				int32 height = info->window_bounds.bottom -
+					info->window_bounds.top + 1;
+				SDL_PrivateResize(width, height);
+				break;
+			}
+		default:
+			break;
+	}
+}