mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-11-21 20:47:19 +01:00
Enable SDL_LoadObject on iOS 8+ and tvOS.
This commit is contained in:
parent
77bacfd72d
commit
f31c7086d8
@ -119,11 +119,7 @@
|
||||
#define SDL_JOYSTICK_MFI 1
|
||||
|
||||
/* Enable Unix style SO loading */
|
||||
/* Technically this works, but violates the iOS dev agreement prior to iOS 8 */
|
||||
/* #define SDL_LOADSO_DLOPEN 1 */
|
||||
|
||||
/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
|
||||
#define SDL_LOADSO_DISABLED 1
|
||||
#define SDL_LOADSO_DLOPEN 1
|
||||
|
||||
/* Enable various threading systems */
|
||||
#define SDL_THREAD_PTHREAD 1
|
||||
|
@ -150,8 +150,8 @@
|
||||
#ifndef SDL_VIDEO_RENDER_OGL_ES2
|
||||
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||
#endif
|
||||
#ifndef SDL_LOADSO_DISABLED
|
||||
#define SDL_LOADSO_DISABLED 1
|
||||
#ifndef SDL_LOADSO_DLOPEN
|
||||
#define SDL_LOADSO_DLOPEN 1
|
||||
#endif
|
||||
#ifndef SDL_HAPTIC_DISABLED
|
||||
#define SDL_HAPTIC_DISABLED 1
|
||||
|
@ -369,7 +369,7 @@ SDL_project "SDL2"
|
||||
["SDL_AUDIO_DRIVER_COREAUDIO"] = 1,
|
||||
["SDL_JOYSTICK_MFI"] = 1,
|
||||
["SDL_HAPTIC_DISABLED"] = 1,
|
||||
["SDL_LOADSO_DISABLED"] = 1,
|
||||
["SDL_LOADSO_DLOPEN"] = 1,
|
||||
["SDL_THREAD_PTHREAD"] = 1,
|
||||
["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1,
|
||||
["SDL_TIMER_UNIX"] = 1,
|
||||
|
@ -30,11 +30,25 @@
|
||||
|
||||
#include "SDL_loadso.h"
|
||||
|
||||
#if SDL_VIDEO_DRIVER_UIKIT
|
||||
#include "../../video/uikit/SDL_uikitvideo.h"
|
||||
#endif
|
||||
|
||||
void *
|
||||
SDL_LoadObject(const char *sofile)
|
||||
{
|
||||
void *handle = dlopen(sofile, RTLD_NOW|RTLD_LOCAL);
|
||||
const char *loaderror = (char *) dlerror();
|
||||
void *handle;
|
||||
const char *loaderror;
|
||||
|
||||
#if SDL_VIDEO_DRIVER_UIKIT
|
||||
if (!UIKit_IsSystemVersionAtLeast(8.0)) {
|
||||
SDL_SetError("SDL_LoadObject requires iOS 8+");
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
handle = dlopen(sofile, RTLD_NOW|RTLD_LOCAL);
|
||||
loaderror = (char *) dlerror();
|
||||
if (handle == NULL) {
|
||||
SDL_SetError("Failed loading %s: %s", sofile, loaderror);
|
||||
}
|
||||
|
@ -21,20 +21,25 @@
|
||||
#ifndef _SDL_uikitvideo_h
|
||||
#define _SDL_uikitvideo_h
|
||||
|
||||
#include <UIKit/UIKit.h>
|
||||
|
||||
#include "../SDL_sysvideo.h"
|
||||
|
||||
#ifdef __OBJC__
|
||||
|
||||
#include <UIKit/UIKit.h>
|
||||
|
||||
@interface SDL_VideoData : NSObject
|
||||
|
||||
@property (nonatomic) id pasteboardObserver;
|
||||
|
||||
@end
|
||||
|
||||
CGRect UIKit_ComputeViewFrame(SDL_Window *window, UIScreen *screen);
|
||||
|
||||
#endif /* __OBJC__ */
|
||||
|
||||
void UIKit_SuspendScreenSaver(_THIS);
|
||||
|
||||
BOOL UIKit_IsSystemVersionAtLeast(double version);
|
||||
CGRect UIKit_ComputeViewFrame(SDL_Window *window, UIScreen *screen);
|
||||
SDL_bool UIKit_IsSystemVersionAtLeast(double version);
|
||||
|
||||
#endif /* _SDL_uikitvideo_h */
|
||||
|
||||
|
@ -167,7 +167,7 @@ UIKit_SuspendScreenSaver(_THIS)
|
||||
}
|
||||
}
|
||||
|
||||
BOOL
|
||||
SDL_bool
|
||||
UIKit_IsSystemVersionAtLeast(double version)
|
||||
{
|
||||
return [[UIDevice currentDevice].systemVersion doubleValue] >= version;
|
||||
|
Loading…
Reference in New Issue
Block a user