mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-07 15:10:49 +00:00
MacOS: Added hint to control update of the metal layer's drawable size (#14053)
This commit is contained in:
parent
98eaa05a9f
commit
e4f24ff7ae
2 changed files with 19 additions and 1 deletions
|
|
@ -3615,6 +3615,22 @@ extern "C" {
|
|||
*/
|
||||
#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
|
||||
* 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;
|
||||
|
||||
SDL_AddWindowEventWatch(SDL_WINDOW_EVENT_WATCH_EARLY, SDL_MetalViewEventWatch, (__bridge void *)(self));
|
||||
if (SDL_GetHintBoolean(SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE, true)) {
|
||||
SDL_AddWindowEventWatch(SDL_WINDOW_EVENT_WATCH_EARLY, SDL_MetalViewEventWatch, (__bridge void *)(self));
|
||||
}
|
||||
|
||||
[self updateDrawableSize];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue