simvx.graphics.platform._sdl3

SDL3 windowing backend with multitouch support.

Module Contents

Classes

Sdl3Backend

WindowBackend implementation using SDL3.

Data

API

simvx.graphics.platform._sdl3.__all__

[‘Sdl3Backend’]

simvx.graphics.platform._sdl3.log[source]

‘getLogger(…)’

class simvx.graphics.platform._sdl3.Sdl3Backend[source]

WindowBackend implementation using SDL3.

Provides keyboard, mouse, and multitouch input. Touch events are delivered with window-relative coordinates via the touch_callback.

Initialization

create_window(width: int, height: int, title: str, *, visible: bool = True) None[source]
create_graphics_surface(instance: Any) Any[source]
get_required_instance_extensions() list[str][source]
poll_events() None[source]
should_close() bool[source]
get_framebuffer_size() tuple[int, int][source]
get_window_size() tuple[int, int][source]
get_content_scale() tuple[float, float][source]
set_title(title: str) None[source]
set_key_callback(callback: collections.abc.Callable[[int, int, int], None] | None) None[source]
set_mouse_button_callback(callback: collections.abc.Callable[[int, int, int], None] | None) None[source]
set_cursor_pos_callback(callback: collections.abc.Callable[[float, float], None] | None) None[source]
set_scroll_callback(callback: collections.abc.Callable[[float, float], None] | None) None[source]
set_char_callback(callback: collections.abc.Callable[[int], None] | None) None[source]
property paused: bool

Whether the app is paused (backgrounded on mobile).

set_lifecycle_callback(callback: collections.abc.Callable[[str], None] | None) None[source]

Set lifecycle event callback. Receives ‘paused’ or ‘resumed’.

set_touch_callback(callback: collections.abc.Callable[[int, int, float, float, float], None] | None) None[source]

Set touch event callback.

Args: callback: (finger_id, action, x, y, pressure) where action is 0=down, 1=up, 2=move. x,y are in window pixel coordinates.

get_cursor_pos() tuple[float, float][source]
set_cursor_shape(shape: int) None[source]

Set cursor shape. 0=arrow, 1=ibeam, 2=crosshair, 3=hand, 4=hresize, 5=vresize.

set_window_size(width: int, height: int) None[source]
request_close() None[source]
poll_gamepads() list[tuple[int, dict[str, bool], dict[str, float]]][source]

Poll all connected gamepads. Returns list of (id, buttons, axes).

destroy() None[source]