mini_arcade_core.engine.render.viewport¶
Viewport management for virtual to screen coordinate transformations.
Classes¶
Viewport scaling modes. |
|
Current state of the viewport. |
|
Manages viewport transformations between virtual and screen coordinates. |
Module Contents¶
- class mini_arcade_core.engine.render.viewport.ViewportMode¶
Bases:
str,enum.EnumViewport scaling modes.
- Variables:
FIT – Scale to fit within window, preserving aspect ratio (letterbox).
FILL – Scale to fill entire window, preserving aspect ratio (crop).
- FIT = 'fit'¶
- FILL = 'fill'¶
- class mini_arcade_core.engine.render.viewport.ViewportState¶
Current state of the viewport.
- Variables:
(int) (offset_y) – Virtual canvas width.
(int) – Virtual canvas height.
(int) – Current window width.
(int) – Current window height.
(ViewportMode) (mode) – Current viewport mode.
(float) (scale) – Current scale factor.
(int) – Width of the viewport rectangle on screen.
(int) – Height of the viewport rectangle on screen.
(int) – X offset of the viewport rectangle on screen.
(int) – Y offset of the viewport rectangle on screen.
- virtual_w: int¶
- virtual_h: int¶
- window_w: int¶
- window_h: int¶
- mode: ViewportMode¶
- scale: float¶
- viewport_w: int¶
- viewport_h: int¶
- offset_x: int¶
- offset_y: int¶
- class mini_arcade_core.engine.render.viewport.Viewport(virtual_w: int, virtual_h: int, mode: ViewportMode = ViewportMode.FIT)¶
Manages viewport transformations between virtual and screen coordinates.
- set_virtual_resolution(w: int, h: int)¶
Set a new virtual resolution.
- Parameters:
w (int) – New virtual width.
h (int) – New virtual height.
- set_mode(mode: ViewportMode)¶
Set a new viewport mode.
- Parameters:
mode (ViewportMode) – New viewport mode.
- resize(window_w: int, window_h: int)¶
Resize the viewport based on the current window size.
- Parameters:
window_w (int) – Current window width.
window_h (int) – Current window height.
- property state: ViewportState¶
Get the current viewport state.
- Returns:
Current ViewportState.
- Return type:
- Raises:
RuntimeError – If the viewport has not been initialized.
- screen_to_virtual(x: float, y: float) tuple[float, float]¶
Convert screen coordinates to virtual coordinates.
- Parameters:
x (float) – X coordinate on the screen.
y (float) – Y coordinate on the screen.
- Returns:
Corresponding virtual coordinates (x, y).
- Return type:
tuple[float, float]
- virtual_to_screen(x: float, y: float) tuple[float, float]¶
Convert virtual coordinates to screen coordinates.
- Parameters:
x (float) – X coordinate in virtual space.
y (float) – Y coordinate in virtual space.
- Returns:
Corresponding screen coordinates (x, y).
- Return type:
tuple[float, float]