mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-25 09:17:12 +01:00
macOS: Fix MoltenVK Metal view resizing, and allow the metal view to be used without vulkan.
This commit is contained in:
parent
6d32ebdbc9
commit
48fea0cee4
@ -184,7 +184,12 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SDL_VIDEO_RENDER_METAL
|
#ifndef SDL_VIDEO_RENDER_METAL
|
||||||
|
/* Metal only supported on 64-bit architectures with 10.11+ */
|
||||||
|
#if TARGET_CPU_X86_64 && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100)
|
||||||
#define SDL_VIDEO_RENDER_METAL 1
|
#define SDL_VIDEO_RENDER_METAL 1
|
||||||
|
#else
|
||||||
|
#define SDL_VIDEO_RENDER_METAL 0
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Enable OpenGL support */
|
/* Enable OpenGL support */
|
||||||
@ -209,7 +214,7 @@
|
|||||||
#if TARGET_CPU_X86_64 && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100)
|
#if TARGET_CPU_X86_64 && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100)
|
||||||
#define SDL_VIDEO_VULKAN 1
|
#define SDL_VIDEO_VULKAN 1
|
||||||
#else
|
#else
|
||||||
#define SDL_VIDEO_VULKAN 0
|
#define SDL_VIDEO_VULKAN 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Enable system power support */
|
/* Enable system power support */
|
||||||
|
@ -32,11 +32,11 @@
|
|||||||
#import "../SDL_sysvideo.h"
|
#import "../SDL_sysvideo.h"
|
||||||
#import "SDL_cocoawindow.h"
|
#import "SDL_cocoawindow.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_VULKAN && SDL_VIDEO_DRIVER_COCOA
|
#if SDL_VIDEO_DRIVER_COCOA && (SDL_VIDEO_VULKAN || SDL_VIDEO_RENDER_METAL)
|
||||||
|
|
||||||
#include <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#include <Metal/Metal.h>
|
#import <Metal/Metal.h>
|
||||||
#include <QuartzCore/CAMetalLayer.h>
|
#import <QuartzCore/CAMetalLayer.h>
|
||||||
|
|
||||||
#define METALVIEW_TAG 255
|
#define METALVIEW_TAG 255
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ SDL_cocoametalview* Cocoa_Mtl_AddMetalView(SDL_Window* window);
|
|||||||
|
|
||||||
void Cocoa_Mtl_GetDrawableSize(SDL_Window * window, int * w, int * h);
|
void Cocoa_Mtl_GetDrawableSize(SDL_Window * window, int * w, int * h);
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_VULKAN && SDL_VIDEO_DRIVER_COCOA */
|
#endif /* SDL_VIDEO_DRIVER_COCOA && (SDL_VIDEO_VULKAN || SDL_VIDEO_RENDER_METAL) */
|
||||||
|
|
||||||
#endif /* SDL_cocoametalview_h_ */
|
#endif /* SDL_cocoametalview_h_ */
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#import "SDL_cocoametalview.h"
|
#import "SDL_cocoametalview.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_VULKAN && SDL_VIDEO_DRIVER_COCOA
|
#if SDL_VIDEO_DRIVER_COCOA && (SDL_VIDEO_VULKAN || SDL_VIDEO_RENDER_METAL)
|
||||||
|
|
||||||
#include "SDL_assert.h"
|
#include "SDL_assert.h"
|
||||||
|
|
||||||
@ -44,7 +44,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Indicate the view wants to draw using a backing layer instead of drawRect. */
|
/* Indicate the view wants to draw using a backing layer instead of drawRect. */
|
||||||
-(BOOL) wantsUpdateLayer
|
- (BOOL)wantsUpdateLayer
|
||||||
{
|
{
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@
|
|||||||
/* When the wantsLayer property is set to YES, this method will be invoked to
|
/* When the wantsLayer property is set to YES, this method will be invoked to
|
||||||
* return a layer instance.
|
* return a layer instance.
|
||||||
*/
|
*/
|
||||||
-(CALayer*) makeBackingLayer
|
- (CALayer*)makeBackingLayer
|
||||||
{
|
{
|
||||||
return [self.class.layerClass layer];
|
return [self.class.layerClass layer];
|
||||||
}
|
}
|
||||||
@ -74,8 +74,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Set the size of the metal drawables when the view is resized. */
|
/* Set the size of the metal drawables when the view is resized. */
|
||||||
- (void)resizeSubviewsWithOldSize:(NSSize)oldSize {
|
- (void)resizeWithOldSuperviewSize:(NSSize)oldSize
|
||||||
[super resizeSubviewsWithOldSize:oldSize];
|
{
|
||||||
|
[super resizeWithOldSuperviewSize:oldSize];
|
||||||
[self updateDrawableSize];
|
[self updateDrawableSize];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,6 +124,6 @@ Cocoa_Mtl_GetDrawableSize(SDL_Window * window, int * w, int * h)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_VULKAN && SDL_VIDEO_DRIVER_COCOA */
|
#endif /* SDL_VIDEO_DRIVER_COCOA && (SDL_VIDEO_VULKAN || SDL_VIDEO_RENDER_METAL) */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
|
Loading…
Reference in New Issue
Block a user