2010-01-06, 00:55
Hi!
This is my first patch :-)
Ticket: http://trac.xbmc.org/ticket/8407
Description:
If monitors in a mirrored set have different native resolutions, CGDisplayCurrentMode can return incorrect resolution data (the larger displays native resolution instead of the actual resolution). I have replaced calls to CGDisplayCurrentMode with CGDisplayPixelsWide and CGDisplayPixelsHigh which do not have this issue.
Background:
My setup is an iMac 24" with an external display connected. I use display mirroring. The iMac has a native resolution of 1920x1200 and the external display is 1920x1080. The actual resolution used when mirroring is 1920x1080. In this case CGDisplayCurrentMode returns the iMacs native resolution instead of the actual resolution. The result is of course that XBMC thinks the resolution is 1920x1200 when it in fact is 1920x1080. As a result there are draw issues.
Additionally: CGDisplayCurrentMode is deprecated in 10.6. I have not found a way to get the screen refresh rate without it though so those calls are still in the code.
This is my first patch :-)
Ticket: http://trac.xbmc.org/ticket/8407
Description:
If monitors in a mirrored set have different native resolutions, CGDisplayCurrentMode can return incorrect resolution data (the larger displays native resolution instead of the actual resolution). I have replaced calls to CGDisplayCurrentMode with CGDisplayPixelsWide and CGDisplayPixelsHigh which do not have this issue.
Background:
My setup is an iMac 24" with an external display connected. I use display mirroring. The iMac has a native resolution of 1920x1200 and the external display is 1920x1080. The actual resolution used when mirroring is 1920x1080. In this case CGDisplayCurrentMode returns the iMacs native resolution instead of the actual resolution. The result is of course that XBMC thinks the resolution is 1920x1200 when it in fact is 1920x1080. As a result there are draw issues.
Additionally: CGDisplayCurrentMode is deprecated in 10.6. I have not found a way to get the screen refresh rate without it though so those calls are still in the code.