mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-11-21 20:47:19 +01:00
Fixed bug 5213 - Add support to metal in iOS/tvOS simulator
Vincent Hamm Xcode11 and ios13 added support for metal simulator. Here is a quick and dirty patch to enable it. Pretty early and only tested on a few samples for now. Required mostly to enable metal support on correct version of ios, generate simulator compatible shaders and enforce buffer alignments on simulator (same as osx).
This commit is contained in:
parent
cb36189692
commit
7fa5e95b62
@ -171,8 +171,10 @@
|
||||
#define SDL_VIDEO_RENDER_OGL_ES 1
|
||||
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||
|
||||
/* Metal supported on 64-bit devices running iOS 8.0 and tvOS 9.0 and newer */
|
||||
#if !TARGET_OS_SIMULATOR && !TARGET_CPU_ARM && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 90000))
|
||||
/* 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
|
||||
*/
|
||||
#if (TARGET_OS_SIMULATOR && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || (__TV_OS_VERSION_MIN_REQUIRED >= 130000))) || (!TARGET_CPU_ARM && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 90000)))
|
||||
#define SDL_PLATFORM_SUPPORTS_METAL 1
|
||||
#else
|
||||
#define SDL_PLATFORM_SUPPORTS_METAL 0
|
||||
|
@ -39,10 +39,18 @@
|
||||
#ifdef __MACOSX__
|
||||
#include "SDL_shaders_metal_osx.h"
|
||||
#elif defined(__TVOS__)
|
||||
#if TARGET_OS_SIMULATOR
|
||||
#include "SDL_shaders_metal_tvsimulator.h"
|
||||
#else
|
||||
#include "SDL_shaders_metal_tvos.h"
|
||||
#endif
|
||||
#else
|
||||
#if TARGET_OS_SIMULATOR
|
||||
#include "SDL_shaders_metal_iphonesimulator.h"
|
||||
#else
|
||||
#include "SDL_shaders_metal_ios.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Apple Metal renderer implementation */
|
||||
|
||||
@ -51,7 +59,7 @@ extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
|
||||
|
||||
/* 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 */
|
||||
#ifdef __MACOSX__
|
||||
#if defined(__MACOSX__) || TARGET_OS_SIMULATOR
|
||||
#define CONSTANT_ALIGN(x) (256)
|
||||
#else
|
||||
#define CONSTANT_ALIGN(x) (x < 4 ? 4 : x)
|
||||
|
File diff suppressed because it is too large
Load Diff
2086
src/render/metal/SDL_shaders_metal_iphonesimulator.h
Normal file
2086
src/render/metal/SDL_shaders_metal_iphonesimulator.h
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2089
src/render/metal/SDL_shaders_metal_tvsimulator.h
Normal file
2089
src/render/metal/SDL_shaders_metal_tvsimulator.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@ cd `dirname "$0"`
|
||||
|
||||
generate_shaders()
|
||||
{
|
||||
fileplatform=$1
|
||||
fileplatform=$1
|
||||
compileplatform=$2
|
||||
sdkplatform=$3
|
||||
minversion=$4
|
||||
@ -19,4 +19,6 @@ generate_shaders()
|
||||
|
||||
generate_shaders osx osx macosx 10.11
|
||||
generate_shaders ios ios iphoneos 8.0
|
||||
generate_shaders iphonesimulator ios iphonesimulator 8.0
|
||||
generate_shaders tvos ios appletvos 9.0
|
||||
generate_shaders tvsimulator ios appletvsimulator 9.0
|
||||
|
Loading…
Reference in New Issue
Block a user