Skip to content

Commit

Permalink
Fixed iOS build
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed May 26, 2020
1 parent cc2fe84 commit 15294e2
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions src/render/metal/SDL_render_metal.m
Expand Up @@ -1597,14 +1597,17 @@ - (void)dealloc
if (!(window_flags & SDL_WINDOW_METAL)) {
changed_window = SDL_TRUE;
if (SDL_RecreateWindow(window, (window_flags & ~SDL_WINDOW_OPENGL) | SDL_WINDOW_METAL) < 0) {
goto error;
return NULL;
}
}

renderer = (SDL_Renderer *) SDL_calloc(1, sizeof(*renderer));
if (!renderer) {
SDL_OutOfMemory();
goto error;
if (changed_window) {
SDL_RecreateWindow(window, window_flags);
}
return NULL;
}

// !!! FIXME: MTLCopyAllDevices() can find other GPUs on macOS...
Expand All @@ -1613,7 +1616,10 @@ - (void)dealloc
if (mtldevice == nil) {
SDL_free(renderer);
SDL_SetError("Failed to obtain Metal device");
goto error;
if (changed_window) {
SDL_RecreateWindow(window, window_flags);
}
return NULL;
}

view = SDL_Metal_CreateView(window);
Expand All @@ -1623,7 +1629,10 @@ - (void)dealloc
[mtldevice release];
#endif
SDL_free(renderer);
goto error;
if (changed_window) {
SDL_RecreateWindow(window, window_flags);
}
return NULL;
}

// !!! FIXME: error checking on all of this.
Expand All @@ -1635,7 +1644,10 @@ - (void)dealloc
#endif
SDL_Metal_DestroyView(view);
SDL_free(renderer);
goto error;
if (changed_window) {
SDL_RecreateWindow(window, window_flags);
}
return NULL;
}

renderer->driverdata = (void*)CFBridgingRetain(data);
Expand Down Expand Up @@ -1874,13 +1886,6 @@ - (void)dealloc
#endif

return renderer;

error:
if (changed_window) {
/* Uh oh, better try to put it back... */
SDL_RecreateWindow(window, window_flags);
}
return NULL;
}}

SDL_RenderDriver METAL_RenderDriver = {
Expand Down

0 comments on commit 15294e2

Please sign in to comment.