src.visualization package

Submodules

src.visualization.draw module

src.visualization.draw.draw_stack_op(func: Callable[[Concatenate[cairo.Context, P]], None]) Callable[[P], None][source]
src.visualization.draw.draw_points(*args: ~typing.~P, **kwargs: ~typing.~P)[source]
src.visualization.draw.draw_lines(*args: ~typing.~P, **kwargs: ~typing.~P)[source]
src.visualization.draw.draw_triangles(*args: ~typing.~P, **kwargs: ~typing.~P)[source]
src.visualization.draw.draw_text(ctx: cairo.Context, text: str, pos: tuple[float, float] = (0.0, 0.0), color: tuple[float, float, float] = (1.0, 0.5, 0.34), alpha: float = 1.0, font_size: float = 12, font_family: str = 'Sans')[source]
src.visualization.draw.draw_paragraph(ctx: cairo.Context, text: str, pos: tuple[float, float] = (0.0, 0.0), color: tuple[float, float, float] = (1.0, 0.5, 0.34), alpha: float = 1.0, font_size: float = 12, vertical_spacing: float = 10, font_family: str = 'Sans')[source]
src.visualization.draw.consume_draw_stack(ctx: cairo.Context, max_items: int | None = None) int[source]

src.visualization.overlay module

src.visualization.overlay.register_overlay(func: Callable[[DeSmuME, DeviceLikeType | None], None])[source]
src.visualization.overlay.collision_overlay(emu: DeSmuME, device: DeviceLikeType | None = None)[source]
src.visualization.overlay.raycasting_overlay(emu: DeSmuME, device: DeviceLikeType | None = None)[source]
src.visualization.overlay.camera_overlay(emu: DeSmuME, device: DeviceLikeType | None = None)[source]
src.visualization.overlay.checkpoint_overlay_1(emu: DeSmuME, device: DeviceLikeType | None = None)[source]
src.visualization.overlay.checkpoint_overlay_2(emu: DeSmuME, device: DeviceLikeType | None = None)[source]
src.visualization.overlay.player_overlay(emu: DeSmuME, device: DeviceLikeType | None = None)[source]

src.visualization.window module

src.visualization.window.start_keyboard_listener()[source]

Starts a non-blocking keyboard listener in a separate thread.

src.visualization.window.on_draw_memoryview(buf: memoryview, width: int, height: int, scale_x: float, scale_y: float) numpy.ndarray[source]

Scale emulator RGBX frame and apply overlay → NumPy RGBA array.

src.visualization.window.apply_overlay_to_surface(src_surface: cairo.ImageSurface) cairo.Surface[source]

Return new Cairo surface with overlay applied.

class src.visualization.window.SharedEmulatorWindow(*args: Any, **kwargs: Any)[source]

Bases: Window

on_draw(widget: gi.repository.Gtk.DrawingArea, ctx: cairo.Context)[source]
refresh()[source]
class src.visualization.window.EmulatorWindow(*args: Any, **kwargs: Any)[source]

Bases: Window

Single-emulator interactive window with overlay support.

start(func, queue)[source]
kill()[source]
src.visualization.window.on_draw_main(widget: gi.repository.Gtk.DrawingArea, ctx: cairo.Context)[source]
src.visualization.window.on_configure_main(widget: gi.repository.Gtk.DrawingArea, *args)[source]

Module contents