mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r14032) -Fix (r13584): [OSX] changed the condition for selecting 8 or 32 bpp blitter by default
Now we will pick 32 bpp if no 8 bpp fullscreen resolutions are available on the main display (the one with the dock)
This commit is contained in:
parent
731685cf64
commit
fbef6535a5
|
@ -10,6 +10,10 @@
|
|||
#include "../string_func.h"
|
||||
#include <map>
|
||||
|
||||
#if defined(WITH_COCOA)
|
||||
bool QZ_CanDisplay8bpp();
|
||||
#endif /* defined(WITH_COCOA) */
|
||||
|
||||
/**
|
||||
* The base factory, keeping track of all blitters.
|
||||
*/
|
||||
|
@ -77,13 +81,15 @@ public:
|
|||
{
|
||||
const char *default_blitter = "8bpp-optimized";
|
||||
|
||||
#if defined(__APPLE__)
|
||||
/* MacOS X 10.5 removed 8bpp fullscreen support.
|
||||
* Because of this we will pick 32bpp by default */
|
||||
if (MacOSVersionIsAtLeast(10, 5, 0)) {
|
||||
#if defined(WITH_COCOA)
|
||||
/* Some people reported lack of fullscreen support in 8 bpp mode.
|
||||
* While we prefer 8 bpp since it's faster, we will still have to test for support. */
|
||||
if (!QZ_CanDisplay8bpp()) {
|
||||
/* The main display can't go to 8 bpp fullscreen mode.
|
||||
* We will have to switch to 32 bpp by default. */
|
||||
default_blitter = "32bpp-anim";
|
||||
}
|
||||
#endif /* defined(__APPLE__) */
|
||||
#endif /* defined(WITH_COCOA) */
|
||||
if (GetBlitters().size() == 0) return NULL;
|
||||
const char *bname = (StrEmpty(name)) ? default_blitter : name;
|
||||
|
||||
|
|
|
@ -155,6 +155,15 @@ uint QZ_ListModes(OTTD_Point* modes, uint max_modes, CGDirectDisplayID display_i
|
|||
return count;
|
||||
}
|
||||
|
||||
/* Small function to test if the main display can display 8 bpp in fullscreen */
|
||||
bool QZ_CanDisplay8bpp()
|
||||
{
|
||||
OTTD_Point p;
|
||||
|
||||
/* We want to know if 8 bpp is possible in fullscreen and not anything about resolutions.
|
||||
* Because of this we want to fill a list of 1 resolution of 8 bpp on display 0 (main) and return if we found one. */
|
||||
return QZ_ListModes(&p, 1, 0, 8);
|
||||
}
|
||||
|
||||
class FullscreenSubdriver: public CocoaSubdriver {
|
||||
int display_width;
|
||||
|
|
Loading…
Reference in New Issue