86 | def set_canvas_size( |
87 | self, canvas_x=None, canvas_y=None, |
88 | resize_window=True, fullscreen=False |
89 | ): |
90 | """Change the logical canvas size and determine window/display sizes.""" |
91 | if canvas_x is not None and canvas_y is not None: |
92 | self._canvas_logical = canvas_x, canvas_y |
93 | self._calculate_border_shift() |
94 | old_display_size = self._display_size |
95 | old_window_size = self._window_size |
96 | if resize_window or self._force_native_pixel: |
97 | |
98 | if self._force_window_size: |
99 | self._window_size = self._force_window_size |
100 | else: |
101 | slack_ratio = _SLACK_RATIO if not fullscreen else 1. |
102 | if not self._force_native_pixel: |
103 | self._window_size = self._find_nonnative_window_size(slack_ratio) |
104 | else: |
105 | self._window_size = self._find_native_window_size(slack_ratio) |
106 | if fullscreen: |
107 | self._display_size = self._screen_size |
108 | else: |
109 | self._display_size = self._window_size |
110 | self._calculate_scale() |
111 | self._calculate_letterbox_shift() |
112 | return self._display_size != old_display_size or self._window_size != old_window_size |