mirror of https://github.com/encounter/SDL.git
Added framebuffer and colorbuffer members to the uikit portion of the SDL_SysWMinfo struct, removed SDL_iOSGetViewRenderbuffer and SDL_iOSGetViewFramebuffer.
This commit is contained in:
parent
fcd0f06a88
commit
c4035654a9
|
@ -79,20 +79,6 @@ extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window,
|
||||||
#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
|
#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
|
||||||
extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled);
|
extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled);
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Returns the OpenGL Renderbuffer Object associated with the window's main view.
|
|
||||||
|
|
||||||
The Renderbuffer must be bound when calling SDL_GL_SwapWindow.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint32 SDLCALL SDL_iOSGetViewRenderbuffer(SDL_Window * window);
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Returns the OpenGL Framebuffer Object associated with the window's main view.
|
|
||||||
|
|
||||||
The Framebuffer must be bound when rendering to the screen.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint32 SDLCALL SDL_iOSGetViewFramebuffer(SDL_Window * window);
|
|
||||||
|
|
||||||
#endif /* __IPHONEOS__ */
|
#endif /* __IPHONEOS__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,7 @@ typedef struct _NSWindow NSWindow;
|
||||||
typedef struct _UIWindow UIWindow;
|
typedef struct _UIWindow UIWindow;
|
||||||
typedef struct _UIViewController UIViewController;
|
typedef struct _UIViewController UIViewController;
|
||||||
#endif
|
#endif
|
||||||
|
typedef Uint32 GLuint;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_ANDROID)
|
#if defined(SDL_VIDEO_DRIVER_ANDROID)
|
||||||
|
@ -228,6 +229,8 @@ struct SDL_SysWMinfo
|
||||||
#else
|
#else
|
||||||
UIWindow *window; /* The UIKit window */
|
UIWindow *window; /* The UIKit window */
|
||||||
#endif
|
#endif
|
||||||
|
GLuint framebuffer; /* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */
|
||||||
|
GLuint colorbuffer; /* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */
|
||||||
} uikit;
|
} uikit;
|
||||||
#endif
|
#endif
|
||||||
#if defined(SDL_VIDEO_DRIVER_WAYLAND)
|
#if defined(SDL_VIDEO_DRIVER_WAYLAND)
|
||||||
|
|
|
@ -592,5 +592,3 @@
|
||||||
#define SDL_GetQueuedAudioSize SDL_GetQueuedAudioSize_REAL
|
#define SDL_GetQueuedAudioSize SDL_GetQueuedAudioSize_REAL
|
||||||
#define SDL_ClearQueuedAudio SDL_ClearQueuedAudio_REAL
|
#define SDL_ClearQueuedAudio SDL_ClearQueuedAudio_REAL
|
||||||
#define SDL_GetGrabbedWindow SDL_GetGrabbedWindow_REAL
|
#define SDL_GetGrabbedWindow SDL_GetGrabbedWindow_REAL
|
||||||
#define SDL_iOSGetViewRenderbuffer SDL_iOSGetViewRenderbuffer_REAL
|
|
||||||
#define SDL_iOSGetViewFramebuffer SDL_iOSGetViewFramebuffer_REAL
|
|
||||||
|
|
|
@ -624,7 +624,3 @@ SDL_DYNAPI_PROC(int,SDL_QueueAudio,(SDL_AudioDeviceID a, const void *b, Uint32 c
|
||||||
SDL_DYNAPI_PROC(Uint32,SDL_GetQueuedAudioSize,(SDL_AudioDeviceID a),(a),return)
|
SDL_DYNAPI_PROC(Uint32,SDL_GetQueuedAudioSize,(SDL_AudioDeviceID a),(a),return)
|
||||||
SDL_DYNAPI_PROC(void,SDL_ClearQueuedAudio,(SDL_AudioDeviceID a),(a),)
|
SDL_DYNAPI_PROC(void,SDL_ClearQueuedAudio,(SDL_AudioDeviceID a),(a),)
|
||||||
SDL_DYNAPI_PROC(SDL_Window*,SDL_GetGrabbedWindow,(void),(),return)
|
SDL_DYNAPI_PROC(SDL_Window*,SDL_GetGrabbedWindow,(void),(),return)
|
||||||
#if defined(__IPHONEOS__) && __IPHONEOS__
|
|
||||||
SDL_DYNAPI_PROC(Uint32,SDL_iOSGetViewRenderbuffer,(SDL_Window *a),(a),return)
|
|
||||||
SDL_DYNAPI_PROC(Uint32,SDL_iOSGetViewFramebuffer,(SDL_Window *a),(a),return)
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -183,48 +183,6 @@ UIKit_GL_DeleteContext(_THIS, SDL_GLContext context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Uint32
|
|
||||||
SDL_iOSGetViewRenderbuffer(SDL_Window * window)
|
|
||||||
{
|
|
||||||
if (!window) {
|
|
||||||
SDL_SetError("Invalid window");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@autoreleasepool {
|
|
||||||
SDL_WindowData *data = (__bridge SDL_WindowData *) window->driverdata;
|
|
||||||
UIView *view = data.viewcontroller.view;
|
|
||||||
if ([view isKindOfClass:[SDL_uikitopenglview class]]) {
|
|
||||||
SDL_uikitopenglview *glview = (SDL_uikitopenglview *) view;
|
|
||||||
return glview.drawableRenderbuffer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_SetError("Window does not have an attached OpenGL view");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Uint32
|
|
||||||
SDL_iOSGetViewFramebuffer(SDL_Window * window)
|
|
||||||
{
|
|
||||||
if (!window) {
|
|
||||||
SDL_SetError("Invalid window");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@autoreleasepool {
|
|
||||||
SDL_WindowData *data = (__bridge SDL_WindowData *) window->driverdata;
|
|
||||||
UIView *view = data.viewcontroller.view;
|
|
||||||
if ([view isKindOfClass:[SDL_uikitopenglview class]]) {
|
|
||||||
SDL_uikitopenglview *glview = (SDL_uikitopenglview *) view;
|
|
||||||
return glview.drawableFramebuffer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_SetError("Window does not have an attached OpenGL view");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_DRIVER_UIKIT */
|
#endif /* SDL_VIDEO_DRIVER_UIKIT */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#import "SDL_uikitappdelegate.h"
|
#import "SDL_uikitappdelegate.h"
|
||||||
|
|
||||||
#import "SDL_uikitview.h"
|
#import "SDL_uikitview.h"
|
||||||
|
#import "SDL_uikitopenglview.h"
|
||||||
|
|
||||||
#include <Foundation/Foundation.h>
|
#include <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@ -314,8 +315,23 @@ UIKit_GetWindowWMInfo(_THIS, SDL_Window * window, SDL_SysWMinfo * info)
|
||||||
SDL_WindowData *data = (__bridge SDL_WindowData *) window->driverdata;
|
SDL_WindowData *data = (__bridge SDL_WindowData *) window->driverdata;
|
||||||
|
|
||||||
if (info->version.major <= SDL_MAJOR_VERSION) {
|
if (info->version.major <= SDL_MAJOR_VERSION) {
|
||||||
|
int versionnum = SDL_VERSIONNUM(info->version.major, info->version.minor, info->version.patch);
|
||||||
|
|
||||||
info->subsystem = SDL_SYSWM_UIKIT;
|
info->subsystem = SDL_SYSWM_UIKIT;
|
||||||
info->info.uikit.window = data.uiwindow;
|
info->info.uikit.window = data.uiwindow;
|
||||||
|
|
||||||
|
/* These struct members were added in SDL 2.0.4. */
|
||||||
|
if (versionnum >= SDL_VERSIONNUM(2,0,4)) {
|
||||||
|
if ([data.viewcontroller.view isKindOfClass:[SDL_uikitopenglview class]]) {
|
||||||
|
SDL_uikitopenglview *glview = (SDL_uikitopenglview *)data.viewcontroller.view;
|
||||||
|
info->info.uikit.framebuffer = glview.drawableFramebuffer;
|
||||||
|
info->info.uikit.colorbuffer = glview.drawableRenderbuffer;
|
||||||
|
} else {
|
||||||
|
info->info.uikit.framebuffer = 0;
|
||||||
|
info->info.uikit.colorbuffer = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
} else {
|
} else {
|
||||||
SDL_SetError("Application not compiled with SDL %d.%d\n",
|
SDL_SetError("Application not compiled with SDL %d.%d\n",
|
||||||
|
|
Loading…
Reference in New Issue