mirror of https://github.com/encounter/SDL.git
Fixed bug 5440 - MacCatalyst build failures
C.W. Betts I tested building commit http://hg.libsdl.org/SDL/rev/7adf3fdc19f3 on Mac Catalyst and found some issues: * MTLFeatureSet_iOS_* enums aren't available under Mac Catalyst. * OpenGL ES is unavailable under Mac Catalyst. * Some Metal features are available under Catalyst but not iOS, such as displaySyncEnabled. * Set Metal as the default renderer on Mac Catalyst Attaching a patch that will make SDL2 build for Mac Catalyst.
This commit is contained in:
parent
115d66e756
commit
393c8c1f16
|
@ -3,7 +3,7 @@
|
||||||
archiveVersion = 1;
|
archiveVersion = 1;
|
||||||
classes = {
|
classes = {
|
||||||
};
|
};
|
||||||
objectVersion = 46;
|
objectVersion = 52;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
|
@ -3728,7 +3728,7 @@
|
||||||
DB31408D17554D3C006C0E22 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CFA89C106B4BA100758660 /* ForceFeedback.framework */; };
|
DB31408D17554D3C006C0E22 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CFA89C106B4BA100758660 /* ForceFeedback.framework */; };
|
||||||
F3631C6424884ACF004F28EA /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
F3631C6424884ACF004F28EA /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
F3631C652488534E004F28EA /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
F3631C652488534E004F28EA /* SDL_locale.h in Headers */ = {isa = PBXBuildFile; fileRef = 566E26792462701100718109 /* SDL_locale.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
F376F6192559B29300CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6182559B29300CFC0BC /* OpenGLES.framework */; };
|
F376F6192559B29300CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6182559B29300CFC0BC /* OpenGLES.framework */; platformFilter = ios; };
|
||||||
F376F61B2559B2AF00CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; };
|
F376F61B2559B2AF00CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; };
|
||||||
F376F6262559B30000CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; };
|
F376F6262559B30000CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; };
|
||||||
F376F6322559B31D00CFC0BC /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6312559B31D00CFC0BC /* GameController.framework */; };
|
F376F6322559B31D00CFC0BC /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6312559B31D00CFC0BC /* GameController.framework */; };
|
||||||
|
@ -10038,7 +10038,11 @@
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "Info-Framework.plist";
|
INFOPLIST_FILE = "Info-Framework.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
|
PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
|
||||||
PRODUCT_NAME = SDL2;
|
PRODUCT_NAME = SDL2;
|
||||||
|
@ -10117,7 +10121,11 @@
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "Info-Framework.plist";
|
INFOPLIST_FILE = "Info-Framework.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
|
PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
|
||||||
|
|
|
@ -170,10 +170,12 @@
|
||||||
#define SDL_VIDEO_DRIVER_DUMMY 1
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
/* Enable OpenGL ES */
|
/* Enable OpenGL ES */
|
||||||
|
#if !TARGET_OS_MACCATALYST
|
||||||
#define SDL_VIDEO_OPENGL_ES2 1
|
#define SDL_VIDEO_OPENGL_ES2 1
|
||||||
#define SDL_VIDEO_OPENGL_ES 1
|
#define SDL_VIDEO_OPENGL_ES 1
|
||||||
#define SDL_VIDEO_RENDER_OGL_ES 1
|
#define SDL_VIDEO_RENDER_OGL_ES 1
|
||||||
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Metal supported on 64-bit devices running iOS 8.0 and tvOS 9.0 and newer
|
/* Metal supported on 64-bit devices running iOS 8.0 and tvOS 9.0 and newer
|
||||||
Also supported in simulator from iOS 13.0 and tvOS 13.0
|
Also supported in simulator from iOS 13.0 and tvOS 13.0
|
||||||
|
|
|
@ -59,7 +59,7 @@ extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
|
||||||
|
|
||||||
/* macOS requires constants in a buffer to have a 256 byte alignment. */
|
/* macOS requires constants in a buffer to have a 256 byte alignment. */
|
||||||
/* Use native type alignments from https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf */
|
/* Use native type alignments from https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf */
|
||||||
#if defined(__MACOSX__) || TARGET_OS_SIMULATOR
|
#if defined(__MACOSX__) || TARGET_OS_SIMULATOR || TARGET_OS_MACCATALYST
|
||||||
#define CONSTANT_ALIGN(x) (256)
|
#define CONSTANT_ALIGN(x) (256)
|
||||||
#else
|
#else
|
||||||
#define CONSTANT_ALIGN(x) (x < 4 ? 4 : x)
|
#define CONSTANT_ALIGN(x) (x < 4 ? 4 : x)
|
||||||
|
@ -1875,7 +1875,7 @@ METAL_CreateRenderer(SDL_Window * window, Uint32 flags)
|
||||||
|
|
||||||
renderer->always_batch = SDL_TRUE;
|
renderer->always_batch = SDL_TRUE;
|
||||||
|
|
||||||
#if defined(__MACOSX__) && defined(MAC_OS_X_VERSION_10_13)
|
#if (defined(__MACOSX__) && defined(MAC_OS_X_VERSION_10_13)) || TARGET_OS_MACCATALYST
|
||||||
if (@available(macOS 10.13, *)) {
|
if (@available(macOS 10.13, *)) {
|
||||||
data.mtllayer.displaySyncEnabled = (flags & SDL_RENDERER_PRESENTVSYNC) != 0;
|
data.mtllayer.displaySyncEnabled = (flags & SDL_RENDERER_PRESENTVSYNC) != 0;
|
||||||
if (data.mtllayer.displaySyncEnabled) {
|
if (data.mtllayer.displaySyncEnabled) {
|
||||||
|
@ -1889,7 +1889,7 @@ METAL_CreateRenderer(SDL_Window * window, Uint32 flags)
|
||||||
|
|
||||||
/* https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf */
|
/* https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf */
|
||||||
int maxtexsize = 4096;
|
int maxtexsize = 4096;
|
||||||
#if defined(__MACOSX__)
|
#if defined(__MACOSX__) || TARGET_OS_MACCATALYST
|
||||||
maxtexsize = 16384;
|
maxtexsize = 16384;
|
||||||
#elif defined(__TVOS__)
|
#elif defined(__TVOS__)
|
||||||
maxtexsize = 8192;
|
maxtexsize = 8192;
|
||||||
|
|
|
@ -1474,10 +1474,14 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Some platforms have OpenGL enabled by default */
|
/* Some platforms have OpenGL enabled by default */
|
||||||
#if (SDL_VIDEO_OPENGL && __MACOSX__) || __IPHONEOS__ || __ANDROID__ || __NACL__
|
#if (SDL_VIDEO_OPENGL && __MACOSX__) || (__IPHONEOS__ && !TARGET_OS_MACCATALYST) || __ANDROID__ || __NACL__
|
||||||
if (!_this->is_dummy && !(flags & SDL_WINDOW_VULKAN) && !(flags & SDL_WINDOW_METAL) && !SDL_IsVideoContextExternal()) {
|
if (!_this->is_dummy && !(flags & SDL_WINDOW_VULKAN) && !(flags & SDL_WINDOW_METAL) && !SDL_IsVideoContextExternal()) {
|
||||||
flags |= SDL_WINDOW_OPENGL;
|
flags |= SDL_WINDOW_OPENGL;
|
||||||
}
|
}
|
||||||
|
#elif TARGET_OS_MACCATALYST
|
||||||
|
if (!_this->is_dummy && !(flags & SDL_WINDOW_VULKAN) && !(flags & SDL_WINDOW_OPENGL) && !SDL_IsVideoContextExternal()) {
|
||||||
|
flags |= SDL_WINDOW_METAL;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (flags & SDL_WINDOW_OPENGL) {
|
if (flags & SDL_WINDOW_OPENGL) {
|
||||||
if (!_this->GL_CreateContext) {
|
if (!_this->GL_CreateContext) {
|
||||||
|
|
Loading…
Reference in New Issue