Restored support for Mac OS X 10.6.

Modified during merge.
This commit is contained in:
Kyle McDonald 2013-06-16 18:40:10 +02:00 committed by Camilla Berglund
parent eba8168a03
commit d5cd6ec8eb
2 changed files with 18 additions and 4 deletions

View File

@ -104,6 +104,8 @@ See the [GLFW 3.0 documentation](http://www.glfw.org/docs/3.0/).
library library
- [Cocoa] Bugfix: `glfwGetFramebufferSize` return the size in screen - [Cocoa] Bugfix: `glfwGetFramebufferSize` return the size in screen
coordinates coordinates
- [Cocoa] Bugfix: Messages not supported on Mac OS X 10.6 were used without
tests for precence
- [Win32] Bugfix: Context creation was attempted even if no valid pixel formats - [Win32] Bugfix: Context creation was attempted even if no valid pixel formats
had been found had been found
- [X11] Bugfix: Duplicate window position and window and framebuffer size - [X11] Bugfix: Duplicate window position and window and framebuffer size
@ -168,6 +170,7 @@ skills.
- Martins Mozeiko - Martins Mozeiko
- Tristam MacDonald - Tristam MacDonald
- Hans Mackowiak - Hans Mackowiak
- Kyle McDonald
- David Medlock - David Medlock
- Jonathan Mercier - Jonathan Mercier
- Marcel Metz - Marcel Metz

View File

@ -69,6 +69,16 @@ static float transformY(float y)
return height - y; return height - y;
} }
// Returns the backing rect of the specified window
//
static NSRect convertRectToBacking(_GLFWwindow* window, NSRect contentRect)
{
if ([window->ns.view respondsToSelector:@selector(convertRectToBacking:)])
return [window->ns.view convertRectToBacking:contentRect];
else
return contentRect;
}
//------------------------------------------------------------------------ //------------------------------------------------------------------------
// Delegate for window related notifications // Delegate for window related notifications
@ -112,7 +122,7 @@ static void centerCursor(_GLFWwindow *window)
[window->nsgl.context update]; [window->nsgl.context update];
const NSRect contentRect = [window->ns.view frame]; const NSRect contentRect = [window->ns.view frame];
const NSRect fbRect = [window->ns.view convertRectToBacking:contentRect]; const NSRect fbRect = convertRectToBacking(window, contentRect);
_glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height); _glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);
_glfwInputWindowSize(window, contentRect.size.width, contentRect.size.height); _glfwInputWindowSize(window, contentRect.size.width, contentRect.size.height);
@ -525,7 +535,7 @@ static int translateKey(unsigned int key)
- (void)viewDidChangeBackingProperties - (void)viewDidChangeBackingProperties
{ {
const NSRect contentRect = [window->ns.view frame]; const NSRect contentRect = [window->ns.view frame];
const NSRect fbRect = [window->ns.view convertRectToBacking:contentRect]; const NSRect fbRect = convertRectToBacking(window, contentRect);
_glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height); _glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);
} }
@ -815,7 +825,8 @@ static GLboolean createWindow(_GLFWwindow* window,
window->ns.view = [[GLFWContentView alloc] initWithGlfwWindow:window]; window->ns.view = [[GLFWContentView alloc] initWithGlfwWindow:window];
[window->ns.view setWantsBestResolutionOpenGLSurface:YES]; if ([window->ns.view respondsToSelector:@selector(setWantsBestResolutionOpenGLSurface:)])
[window->ns.view setWantsBestResolutionOpenGLSurface:YES];
[window->ns.object setTitle:[NSString stringWithUTF8String:wndconfig->title]]; [window->ns.object setTitle:[NSString stringWithUTF8String:wndconfig->title]];
[window->ns.object setContentView:window->ns.view]; [window->ns.object setContentView:window->ns.view];
@ -943,7 +954,7 @@ void _glfwPlatformSetWindowSize(_GLFWwindow* window, int width, int height)
void _glfwPlatformGetFramebufferSize(_GLFWwindow* window, int* width, int* height) void _glfwPlatformGetFramebufferSize(_GLFWwindow* window, int* width, int* height)
{ {
const NSRect contentRect = [window->ns.view frame]; const NSRect contentRect = [window->ns.view frame];
const NSRect fbRect = [window->ns.view convertRectToBacking:contentRect]; const NSRect fbRect = convertRectToBacking(window, contentRect);
if (width) if (width)
*width = (int) fbRect.size.width; *width = (int) fbRect.size.width;