On this page:
7.1 Core Hint Operations
set-hint!
get-hint
get-hint-boolean
reset-hint!
reset-all-hints!
7.2 Available Hint Names
7.3 Convenience Functions
set-app-name!
set-app-id!
set-render-driver!
allow-screensaver!
9.0.0.11

7 Configuration Hints🔗ℹ

This section covers SDL configuration hints, which are variables that affect SDL’s behavior. Hints can be set before or during SDL initialization.

7.1 Core Hint Operations🔗ℹ

procedure

(set-hint! name value [priority])  boolean?

  name : symbol?
  value : string?
  priority : (or/c 'default 'normal 'override) = 'normal
Sets a hint value.

Priority levels:
  • 'default Low priority, can be overridden by environment variables

  • 'normal Normal priority (default)

  • 'override High priority, overrides environment variables

Returns #t if the hint was set.

(set-hint! 'render-vsync "1")
(set-hint! 'app-name "My Game" 'override)

procedure

(get-hint name)  (or/c string? #f)

  name : symbol?
Gets a hint value.

Returns #f if the hint is not set.

procedure

(get-hint-boolean name default)  boolean?

  name : symbol?
  default : boolean?
Gets a hint as a boolean.

Returns default if the hint is not set.

procedure

(reset-hint! name)  void?

  name : symbol?
Resets a hint to its default value.

procedure

(reset-all-hints!)  void?

Resets all hints to their default values.

7.2 Available Hint Names🔗ℹ

Hint names are specified as symbols:

  • 'app-name Application name (shown in audio controls, taskbar)

  • 'app-id Application ID (used by desktop compositors)

  • 'render-driver Renderer to use ("opengl", "metal", "vulkan", "software")

  • 'render-vsync Enable VSync ("1") or disable ("0")

  • 'video-allow-screensaver Allow screensaver ("1") or prevent ("0")

  • 'framebuffer-acceleration Framebuffer acceleration hint

  • 'mouse-relative-mode-warp Mouse relative mode warp behavior

7.3 Convenience Functions🔗ℹ

procedure

(set-app-name! name)  boolean?

  name : string?
Sets the application name.

Should be called before sdl-init!.

(set-app-name! "My Awesome Game")
(sdl-init!)

procedure

(set-app-id! id)  boolean?

  id : string?
Sets the application ID.

Should be called before sdl-init!.

procedure

(set-render-driver! driver)  boolean?

  driver : string?
Sets the render driver to use.

Should be called before creating a renderer.

Common drivers: "opengl", "metal", "vulkan", "software".

;; Force software rendering
(set-render-driver! "software")

procedure

(allow-screensaver! enabled?)  boolean?

  enabled? : boolean?
Allows or prevents the screensaver from activating.

;; Prevent screensaver during gameplay
(allow-screensaver! #f)
 
;; Allow screensaver when paused
(allow-screensaver! #t)