Esempio n. 1
0
 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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
 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)