def size(self, value): self.set_size(int(value[0]), int(value[1])) self.aspect_ratio = value[0] / value[1] base.win.requestProperties(self) self.update_aspect_ratio() from ursina import camera camera.set_shader_input('window_size', value)
def size(self, value): if hasattr(self, '_forced_aspect_ratio') and self.forced_aspect_ratio: value = (value[1] * self.forced_aspect_ratio, value[1]) self._size = value self.setSize(int(value[0]), int(value[1])) self.aspect_ratio = value[0] / value[1] from ursina import camera camera.set_shader_input('window_size', value) base.win.request_properties(self)
def update_aspect_ratio(self): prev_aspect = self.aspect_ratio self.aspect_ratio = self.size[0] / self.size[1] from ursina import camera, window, application value = [int(e) for e in base.win.getSize()] camera.set_shader_input('window_size', value) print_info('changed aspect ratio:', round(prev_aspect, 3), '->', round(self.aspect_ratio, 3)) camera.ui_lens.set_film_size(camera.ui_size * .5 * self.aspect_ratio, camera.ui_size * .5) for e in [e for e in scene.entities if e.parent == camera.ui ] + self.editor_ui.children: e.x /= prev_aspect / self.aspect_ratio if camera.orthographic: camera.orthographic_lens.set_film_size( camera.fov * window.aspect_ratio, camera.fov) application.base.cam.node().set_lens(camera.orthographic_lens)
def size(self, value): self.set_size(int(value[0]), int(value[1])) self.aspect_ratio = value[0] / value[1] from ursina import camera camera.set_shader_input('window_size', value)