mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +00:00 
			
		
		
		
	hints: Make SDL_VIDEODRIVER and SDL_AUDIODRIVER formal hints.
They were just environment variables before. Fixes #5528.
This commit is contained in:
		 Ryan C. Gordon
					Ryan C. Gordon
				
			
				
					committed by
					
						 Sam Lantinga
						Sam Lantinga
					
				
			
			
				
	
			
			
			 Sam Lantinga
						Sam Lantinga
					
				
			
						parent
						
							634b9edc7f
						
					
				
				
					commit
					c1336b21ed
				
			| @@ -1993,6 +1993,53 @@ extern "C" { | |||||||
| #define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE" | #define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *  \brief  A variable that decides what video backend to use. | ||||||
|  |  * | ||||||
|  |  *  By default, SDL will try all available video backends in a reasonable | ||||||
|  |  *  order until it finds one that can work, but this hint allows the app | ||||||
|  |  *  or user to force a specific target, such as "x11" if, say, you are | ||||||
|  |  *  on Wayland but want to try talking to the X server instead. | ||||||
|  |  * | ||||||
|  |  *  This functionality has existed since SDL 2.0.0 (indeed, before that) | ||||||
|  |  *  but before 2.0.22 this was an environment variable only. In 2.0.22, | ||||||
|  |  *  it was upgraded to a full SDL hint, so you can set the environment | ||||||
|  |  *  variable as usual or programatically set the hint with SDL_SetHint, | ||||||
|  |  *  which won't propagate to child processes. | ||||||
|  |  * | ||||||
|  |  *  The default value is unset, in which case SDL will try to figure out | ||||||
|  |  *  the best video backend on your behalf. This hint needs to be set | ||||||
|  |  *  before SDL_Init() is called to be useful. | ||||||
|  |  * | ||||||
|  |  *  This hint is available since SDL 2.0.22. Before then, you could set | ||||||
|  |  *  the environment variable to get the same effect. | ||||||
|  |  */ | ||||||
|  | #define SDL_HINT_VIDEODRIVER "SDL_VIDEODRIVER" | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *  \brief  A variable that decides what audio backend to use. | ||||||
|  |  * | ||||||
|  |  *  By default, SDL will try all available audio backends in a reasonable | ||||||
|  |  *  order until it finds one that can work, but this hint allows the app | ||||||
|  |  *  or user to force a specific target, such as "alsa" if, say, you are | ||||||
|  |  *  on PulseAudio but want to try talking to the lower level instead. | ||||||
|  |  * | ||||||
|  |  *  This functionality has existed since SDL 2.0.0 (indeed, before that) | ||||||
|  |  *  but before 2.0.22 this was an environment variable only. In 2.0.22, | ||||||
|  |  *  it was upgraded to a full SDL hint, so you can set the environment | ||||||
|  |  *  variable as usual or programatically set the hint with SDL_SetHint, | ||||||
|  |  *  which won't propagate to child processes. | ||||||
|  |  * | ||||||
|  |  *  The default value is unset, in which case SDL will try to figure out | ||||||
|  |  *  the best audio backend on your behalf. This hint needs to be set | ||||||
|  |  *  before SDL_Init() is called to be useful. | ||||||
|  |  * | ||||||
|  |  *  This hint is available since SDL 2.0.22. Before then, you could set | ||||||
|  |  *  the environment variable to get the same effect. | ||||||
|  |  */ | ||||||
|  | #define SDL_HINT_AUDIODRIVER "SDL_AUDIODRIVER" | ||||||
|  |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  *  \brief  An enumeration of hint priorities |  *  \brief  An enumeration of hint priorities | ||||||
|  */ |  */ | ||||||
|   | |||||||
| @@ -936,7 +936,7 @@ SDL_AudioInit(const char *driver_name) | |||||||
|  |  | ||||||
|     /* Select the proper audio driver */ |     /* Select the proper audio driver */ | ||||||
|     if (driver_name == NULL) { |     if (driver_name == NULL) { | ||||||
|         driver_name = SDL_getenv("SDL_AUDIODRIVER"); |         driver_name = SDL_GetHint(SDL_HINT_AUDIODRIVER); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (driver_name != NULL && *driver_name != 0) { |     if (driver_name != NULL && *driver_name != 0) { | ||||||
|   | |||||||
| @@ -425,7 +425,7 @@ SDL_VideoInit(const char *driver_name) | |||||||
|     i = index = 0; |     i = index = 0; | ||||||
|     video = NULL; |     video = NULL; | ||||||
|     if (driver_name == NULL) { |     if (driver_name == NULL) { | ||||||
|         driver_name = SDL_getenv("SDL_VIDEODRIVER"); |         driver_name = SDL_GetHint(SDL_HINT_VIDEODRIVER); | ||||||
|     } |     } | ||||||
|     if (driver_name != NULL && *driver_name != 0) { |     if (driver_name != NULL && *driver_name != 0) { | ||||||
|         const char *driver_attempt = driver_name; |         const char *driver_attempt = driver_name; | ||||||
|   | |||||||
| @@ -46,6 +46,7 @@ | |||||||
| #include "SDL_nullvideo.h" | #include "SDL_nullvideo.h" | ||||||
| #include "SDL_nullevents_c.h" | #include "SDL_nullevents_c.h" | ||||||
| #include "SDL_nullframebuffer_c.h" | #include "SDL_nullframebuffer_c.h" | ||||||
|  | #include "SDL_hints.h" | ||||||
|  |  | ||||||
| #define DUMMYVID_DRIVER_NAME "dummy" | #define DUMMYVID_DRIVER_NAME "dummy" | ||||||
|  |  | ||||||
| @@ -59,7 +60,7 @@ static void DUMMY_VideoQuit(_THIS); | |||||||
| static int | static int | ||||||
| DUMMY_Available(void) | DUMMY_Available(void) | ||||||
| { | { | ||||||
|     const char *envr = SDL_getenv("SDL_VIDEODRIVER"); |     const char *envr = SDL_GetHint(SDL_HINT_VIDEODRIVER); | ||||||
|     if ((envr) && (SDL_strcmp(envr, DUMMYVID_DRIVER_NAME) == 0)) { |     if ((envr) && (SDL_strcmp(envr, DUMMYVID_DRIVER_NAME) == 0)) { | ||||||
|         return (1); |         return (1); | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user