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
	 Dima Volynets
					Dima Volynets