mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-26 12:27:44 +00:00
MacOS: Added hint to control update of the metal layer's drawable size (#14053)
This commit is contained in:
@@ -3615,6 +3615,22 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY"
|
#define SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A variable indicating whether the metal layer drawable size should be
|
||||||
|
* updated for the SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event on macOS.
|
||||||
|
*
|
||||||
|
* The variable can be set to the following values:
|
||||||
|
*
|
||||||
|
* - "0": the metal layer drawable size will not be updated
|
||||||
|
* on the SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event.
|
||||||
|
* - "1": the metal layer drawable size will be updated
|
||||||
|
* on the SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event. (default)
|
||||||
|
*
|
||||||
|
* This hint should be set before SDL_Metal_CreateView called.
|
||||||
|
*
|
||||||
|
* \since This hint is available since SDL 3.4.0. */
|
||||||
|
#define SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE "SDL_VIDEO_METAL_AUTO_RESIZE_DRAWABLE"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A variable controlling whether SDL will attempt to automatically set the
|
* A variable controlling whether SDL will attempt to automatically set the
|
||||||
* destination display to a mode most closely matching that of the previous
|
* destination display to a mode most closely matching that of the previous
|
||||||
|
|||||||
@@ -90,7 +90,9 @@ static bool SDLCALL SDL_MetalViewEventWatch(void *userdata, SDL_Event *event)
|
|||||||
|
|
||||||
self.layer.opaque = opaque;
|
self.layer.opaque = opaque;
|
||||||
|
|
||||||
|
if (SDL_GetHintBoolean(SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE, true)) {
|
||||||
SDL_AddWindowEventWatch(SDL_WINDOW_EVENT_WATCH_EARLY, SDL_MetalViewEventWatch, (__bridge void *)(self));
|
SDL_AddWindowEventWatch(SDL_WINDOW_EVENT_WATCH_EARLY, SDL_MetalViewEventWatch, (__bridge void *)(self));
|
||||||
|
}
|
||||||
|
|
||||||
[self updateDrawableSize];
|
[self updateDrawableSize];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user