29 #include "../../SDL_internal.h" 31 #if SDL_VIDEO_VULKAN && SDL_VIDEO_DRIVER_UIKIT 33 #import "../SDL_sysvideo.h" 44 return [CAMetalLayer class];
47 - (instancetype)initWithFrame:(CGRect)frame
51 if ((
self = [super initWithFrame:
frame])) {
53 self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
56 self.contentScaleFactor =
scale;
59 [
self updateDrawableSize];
66 - (
void)layoutSubviews
68 [
super layoutSubviews];
69 [
self updateDrawableSize];
72 - (
void)updateDrawableSize
74 CGSize
size =
self.bounds.size;
75 size.width *=
self.contentScaleFactor;
76 size.height *=
self.contentScaleFactor;
78 ((CAMetalLayer *)
self.
layer).drawableSize =
size;
96 if ([data.
uiwindow.screen respondsToSelector:
@selector(nativeScale)]) {
97 scale = data.
uiwindow.screen.nativeScale;
109 [view addSubview:metalview];
119 [metalview setSDLWindow:window];
133 CAMetalLayer *
layer = (CAMetalLayer*)metalview.layer;
136 *w = layer.drawableSize.width;
139 *h = layer.drawableSize.height;
GLenum GLenum GLenum GLenum GLenum scale
GLfloat GLfloat GLfloat GLfloat h
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLint GLint layer
#define SDL_GetWindowSize
GLubyte GLubyte GLubyte GLubyte w
EGLSurface EGLNativeWindowType * window
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
The type used to identify a window.