# {py:mod}`simvx.core.viewport` ```{py:module} simvx.core.viewport ``` ```{autodoc2-docstring} simvx.core.viewport :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`StretchMode ` - * - {py:obj}`StretchAspect ` - * - {py:obj}`VSyncMode ` - * - {py:obj}`WindowMode ` - * - {py:obj}`DisplaySettings ` - ```{autodoc2-docstring} simvx.core.viewport.DisplaySettings :summary: ``` * - {py:obj}`SubViewport ` - ```{autodoc2-docstring} simvx.core.viewport.SubViewport :summary: ``` * - {py:obj}`ViewportContainer ` - ```{autodoc2-docstring} simvx.core.viewport.ViewportContainer :summary: ``` * - {py:obj}`WorldEnvironment ` - ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment :summary: ``` * - {py:obj}`Environment ` - ```{autodoc2-docstring} simvx.core.viewport.Environment :summary: ``` ```` ### API `````{py:class} StretchMode() :canonical: simvx.core.viewport.StretchMode Bases: {py:obj}`enum.IntEnum` ````{py:attribute} DISABLED :canonical: simvx.core.viewport.StretchMode.DISABLED :value: > 0 ```{autodoc2-docstring} simvx.core.viewport.StretchMode.DISABLED ``` ```` ````{py:attribute} CANVAS_ITEMS :canonical: simvx.core.viewport.StretchMode.CANVAS_ITEMS :value: > 1 ```{autodoc2-docstring} simvx.core.viewport.StretchMode.CANVAS_ITEMS ``` ```` ````{py:attribute} VIEWPORT :canonical: simvx.core.viewport.StretchMode.VIEWPORT :value: > 2 ```{autodoc2-docstring} simvx.core.viewport.StretchMode.VIEWPORT ``` ```` ````{py:method} __abs__() :canonical: simvx.core.viewport.StretchMode.__abs__ ```` ````{py:method} __add__() :canonical: simvx.core.viewport.StretchMode.__add__ ```` ````{py:method} __and__() :canonical: simvx.core.viewport.StretchMode.__and__ ```` ````{py:method} __bool__() :canonical: simvx.core.viewport.StretchMode.__bool__ ```` ````{py:method} __ceil__() :canonical: simvx.core.viewport.StretchMode.__ceil__ ```` ````{py:method} __delattr__() :canonical: simvx.core.viewport.StretchMode.__delattr__ ```` ````{py:method} __dir__() :canonical: simvx.core.viewport.StretchMode.__dir__ ```` ````{py:method} __divmod__() :canonical: simvx.core.viewport.StretchMode.__divmod__ ```` ````{py:method} __eq__() :canonical: simvx.core.viewport.StretchMode.__eq__ ```` ````{py:method} __float__() :canonical: simvx.core.viewport.StretchMode.__float__ ```` ````{py:method} __floor__() :canonical: simvx.core.viewport.StretchMode.__floor__ ```` ````{py:method} __floordiv__() :canonical: simvx.core.viewport.StretchMode.__floordiv__ ```` ````{py:method} __format__() :canonical: simvx.core.viewport.StretchMode.__format__ ```` ````{py:method} __ge__() :canonical: simvx.core.viewport.StretchMode.__ge__ ```` ````{py:method} __getattribute__() :canonical: simvx.core.viewport.StretchMode.__getattribute__ ```` ````{py:method} __getnewargs__() :canonical: simvx.core.viewport.StretchMode.__getnewargs__ ```` ````{py:method} __getstate__() :canonical: simvx.core.viewport.StretchMode.__getstate__ ```` ````{py:method} __gt__() :canonical: simvx.core.viewport.StretchMode.__gt__ ```` ````{py:method} __hash__() :canonical: simvx.core.viewport.StretchMode.__hash__ ```` ````{py:method} __index__() :canonical: simvx.core.viewport.StretchMode.__index__ ```` ````{py:method} __int__() :canonical: simvx.core.viewport.StretchMode.__int__ ```` ````{py:method} __invert__() :canonical: simvx.core.viewport.StretchMode.__invert__ ```` ````{py:method} __le__() :canonical: simvx.core.viewport.StretchMode.__le__ ```` ````{py:method} __lshift__() :canonical: simvx.core.viewport.StretchMode.__lshift__ ```` ````{py:method} __lt__() :canonical: simvx.core.viewport.StretchMode.__lt__ ```` ````{py:method} __mod__() :canonical: simvx.core.viewport.StretchMode.__mod__ ```` ````{py:method} __mul__() :canonical: simvx.core.viewport.StretchMode.__mul__ ```` ````{py:method} __ne__() :canonical: simvx.core.viewport.StretchMode.__ne__ ```` ````{py:method} __neg__() :canonical: simvx.core.viewport.StretchMode.__neg__ ```` ````{py:method} __new__() :canonical: simvx.core.viewport.StretchMode.__new__ ```` ````{py:method} __or__() :canonical: simvx.core.viewport.StretchMode.__or__ ```` ````{py:method} __pos__() :canonical: simvx.core.viewport.StretchMode.__pos__ ```` ````{py:method} __pow__() :canonical: simvx.core.viewport.StretchMode.__pow__ ```` ````{py:method} __radd__() :canonical: simvx.core.viewport.StretchMode.__radd__ ```` ````{py:method} __rand__() :canonical: simvx.core.viewport.StretchMode.__rand__ ```` ````{py:method} __rdivmod__() :canonical: simvx.core.viewport.StretchMode.__rdivmod__ ```` ````{py:method} __reduce__() :canonical: simvx.core.viewport.StretchMode.__reduce__ ```` ````{py:method} __reduce_ex__() :canonical: simvx.core.viewport.StretchMode.__reduce_ex__ ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.StretchMode.__repr__ ```` ````{py:method} __rfloordiv__() :canonical: simvx.core.viewport.StretchMode.__rfloordiv__ ```` ````{py:method} __rlshift__() :canonical: simvx.core.viewport.StretchMode.__rlshift__ ```` ````{py:method} __rmod__() :canonical: simvx.core.viewport.StretchMode.__rmod__ ```` ````{py:method} __rmul__() :canonical: simvx.core.viewport.StretchMode.__rmul__ ```` ````{py:method} __ror__() :canonical: simvx.core.viewport.StretchMode.__ror__ ```` ````{py:method} __round__() :canonical: simvx.core.viewport.StretchMode.__round__ ```` ````{py:method} __rpow__() :canonical: simvx.core.viewport.StretchMode.__rpow__ ```` ````{py:method} __rrshift__() :canonical: simvx.core.viewport.StretchMode.__rrshift__ ```` ````{py:method} __rshift__() :canonical: simvx.core.viewport.StretchMode.__rshift__ ```` ````{py:method} __rsub__() :canonical: simvx.core.viewport.StretchMode.__rsub__ ```` ````{py:method} __rtruediv__() :canonical: simvx.core.viewport.StretchMode.__rtruediv__ ```` ````{py:method} __rxor__() :canonical: simvx.core.viewport.StretchMode.__rxor__ ```` ````{py:method} __setattr__() :canonical: simvx.core.viewport.StretchMode.__setattr__ ```` ````{py:method} __sizeof__() :canonical: simvx.core.viewport.StretchMode.__sizeof__ ```` ````{py:method} __str__() :canonical: simvx.core.viewport.StretchMode.__str__ ```` ````{py:method} __sub__() :canonical: simvx.core.viewport.StretchMode.__sub__ ```` ````{py:method} __subclasshook__() :canonical: simvx.core.viewport.StretchMode.__subclasshook__ ```` ````{py:method} __truediv__() :canonical: simvx.core.viewport.StretchMode.__truediv__ ```` ````{py:method} __trunc__() :canonical: simvx.core.viewport.StretchMode.__trunc__ ```` ````{py:method} __xor__() :canonical: simvx.core.viewport.StretchMode.__xor__ ```` ````{py:method} as_integer_ratio() :canonical: simvx.core.viewport.StretchMode.as_integer_ratio ```` ````{py:method} bit_count() :canonical: simvx.core.viewport.StretchMode.bit_count ```` ````{py:method} bit_length() :canonical: simvx.core.viewport.StretchMode.bit_length ```` ````{py:method} conjugate() :canonical: simvx.core.viewport.StretchMode.conjugate ```` ```{py:class} denominator :canonical: simvx.core.viewport.StretchMode.denominator ``` ```{py:class} imag :canonical: simvx.core.viewport.StretchMode.imag ``` ````{py:method} is_integer() :canonical: simvx.core.viewport.StretchMode.is_integer ```` ```{py:class} numerator :canonical: simvx.core.viewport.StretchMode.numerator ``` ```{py:class} real :canonical: simvx.core.viewport.StretchMode.real ``` ````{py:method} to_bytes() :canonical: simvx.core.viewport.StretchMode.to_bytes ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.viewport.StretchMode.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.viewport.StretchMode.__copy__ ```` ````{py:method} name() :canonical: simvx.core.viewport.StretchMode.name ```` ````{py:method} value() :canonical: simvx.core.viewport.StretchMode.value ```` ````` `````{py:class} StretchAspect() :canonical: simvx.core.viewport.StretchAspect Bases: {py:obj}`enum.IntEnum` ````{py:attribute} IGNORE :canonical: simvx.core.viewport.StretchAspect.IGNORE :value: > 0 ```{autodoc2-docstring} simvx.core.viewport.StretchAspect.IGNORE ``` ```` ````{py:attribute} KEEP :canonical: simvx.core.viewport.StretchAspect.KEEP :value: > 1 ```{autodoc2-docstring} simvx.core.viewport.StretchAspect.KEEP ``` ```` ````{py:attribute} KEEP_WIDTH :canonical: simvx.core.viewport.StretchAspect.KEEP_WIDTH :value: > 2 ```{autodoc2-docstring} simvx.core.viewport.StretchAspect.KEEP_WIDTH ``` ```` ````{py:attribute} KEEP_HEIGHT :canonical: simvx.core.viewport.StretchAspect.KEEP_HEIGHT :value: > 3 ```{autodoc2-docstring} simvx.core.viewport.StretchAspect.KEEP_HEIGHT ``` ```` ````{py:attribute} EXPAND :canonical: simvx.core.viewport.StretchAspect.EXPAND :value: > 4 ```{autodoc2-docstring} simvx.core.viewport.StretchAspect.EXPAND ``` ```` ````{py:method} __abs__() :canonical: simvx.core.viewport.StretchAspect.__abs__ ```` ````{py:method} __add__() :canonical: simvx.core.viewport.StretchAspect.__add__ ```` ````{py:method} __and__() :canonical: simvx.core.viewport.StretchAspect.__and__ ```` ````{py:method} __bool__() :canonical: simvx.core.viewport.StretchAspect.__bool__ ```` ````{py:method} __ceil__() :canonical: simvx.core.viewport.StretchAspect.__ceil__ ```` ````{py:method} __delattr__() :canonical: simvx.core.viewport.StretchAspect.__delattr__ ```` ````{py:method} __dir__() :canonical: simvx.core.viewport.StretchAspect.__dir__ ```` ````{py:method} __divmod__() :canonical: simvx.core.viewport.StretchAspect.__divmod__ ```` ````{py:method} __eq__() :canonical: simvx.core.viewport.StretchAspect.__eq__ ```` ````{py:method} __float__() :canonical: simvx.core.viewport.StretchAspect.__float__ ```` ````{py:method} __floor__() :canonical: simvx.core.viewport.StretchAspect.__floor__ ```` ````{py:method} __floordiv__() :canonical: simvx.core.viewport.StretchAspect.__floordiv__ ```` ````{py:method} __format__() :canonical: simvx.core.viewport.StretchAspect.__format__ ```` ````{py:method} __ge__() :canonical: simvx.core.viewport.StretchAspect.__ge__ ```` ````{py:method} __getattribute__() :canonical: simvx.core.viewport.StretchAspect.__getattribute__ ```` ````{py:method} __getnewargs__() :canonical: simvx.core.viewport.StretchAspect.__getnewargs__ ```` ````{py:method} __getstate__() :canonical: simvx.core.viewport.StretchAspect.__getstate__ ```` ````{py:method} __gt__() :canonical: simvx.core.viewport.StretchAspect.__gt__ ```` ````{py:method} __hash__() :canonical: simvx.core.viewport.StretchAspect.__hash__ ```` ````{py:method} __index__() :canonical: simvx.core.viewport.StretchAspect.__index__ ```` ````{py:method} __int__() :canonical: simvx.core.viewport.StretchAspect.__int__ ```` ````{py:method} __invert__() :canonical: simvx.core.viewport.StretchAspect.__invert__ ```` ````{py:method} __le__() :canonical: simvx.core.viewport.StretchAspect.__le__ ```` ````{py:method} __lshift__() :canonical: simvx.core.viewport.StretchAspect.__lshift__ ```` ````{py:method} __lt__() :canonical: simvx.core.viewport.StretchAspect.__lt__ ```` ````{py:method} __mod__() :canonical: simvx.core.viewport.StretchAspect.__mod__ ```` ````{py:method} __mul__() :canonical: simvx.core.viewport.StretchAspect.__mul__ ```` ````{py:method} __ne__() :canonical: simvx.core.viewport.StretchAspect.__ne__ ```` ````{py:method} __neg__() :canonical: simvx.core.viewport.StretchAspect.__neg__ ```` ````{py:method} __new__() :canonical: simvx.core.viewport.StretchAspect.__new__ ```` ````{py:method} __or__() :canonical: simvx.core.viewport.StretchAspect.__or__ ```` ````{py:method} __pos__() :canonical: simvx.core.viewport.StretchAspect.__pos__ ```` ````{py:method} __pow__() :canonical: simvx.core.viewport.StretchAspect.__pow__ ```` ````{py:method} __radd__() :canonical: simvx.core.viewport.StretchAspect.__radd__ ```` ````{py:method} __rand__() :canonical: simvx.core.viewport.StretchAspect.__rand__ ```` ````{py:method} __rdivmod__() :canonical: simvx.core.viewport.StretchAspect.__rdivmod__ ```` ````{py:method} __reduce__() :canonical: simvx.core.viewport.StretchAspect.__reduce__ ```` ````{py:method} __reduce_ex__() :canonical: simvx.core.viewport.StretchAspect.__reduce_ex__ ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.StretchAspect.__repr__ ```` ````{py:method} __rfloordiv__() :canonical: simvx.core.viewport.StretchAspect.__rfloordiv__ ```` ````{py:method} __rlshift__() :canonical: simvx.core.viewport.StretchAspect.__rlshift__ ```` ````{py:method} __rmod__() :canonical: simvx.core.viewport.StretchAspect.__rmod__ ```` ````{py:method} __rmul__() :canonical: simvx.core.viewport.StretchAspect.__rmul__ ```` ````{py:method} __ror__() :canonical: simvx.core.viewport.StretchAspect.__ror__ ```` ````{py:method} __round__() :canonical: simvx.core.viewport.StretchAspect.__round__ ```` ````{py:method} __rpow__() :canonical: simvx.core.viewport.StretchAspect.__rpow__ ```` ````{py:method} __rrshift__() :canonical: simvx.core.viewport.StretchAspect.__rrshift__ ```` ````{py:method} __rshift__() :canonical: simvx.core.viewport.StretchAspect.__rshift__ ```` ````{py:method} __rsub__() :canonical: simvx.core.viewport.StretchAspect.__rsub__ ```` ````{py:method} __rtruediv__() :canonical: simvx.core.viewport.StretchAspect.__rtruediv__ ```` ````{py:method} __rxor__() :canonical: simvx.core.viewport.StretchAspect.__rxor__ ```` ````{py:method} __setattr__() :canonical: simvx.core.viewport.StretchAspect.__setattr__ ```` ````{py:method} __sizeof__() :canonical: simvx.core.viewport.StretchAspect.__sizeof__ ```` ````{py:method} __str__() :canonical: simvx.core.viewport.StretchAspect.__str__ ```` ````{py:method} __sub__() :canonical: simvx.core.viewport.StretchAspect.__sub__ ```` ````{py:method} __subclasshook__() :canonical: simvx.core.viewport.StretchAspect.__subclasshook__ ```` ````{py:method} __truediv__() :canonical: simvx.core.viewport.StretchAspect.__truediv__ ```` ````{py:method} __trunc__() :canonical: simvx.core.viewport.StretchAspect.__trunc__ ```` ````{py:method} __xor__() :canonical: simvx.core.viewport.StretchAspect.__xor__ ```` ````{py:method} as_integer_ratio() :canonical: simvx.core.viewport.StretchAspect.as_integer_ratio ```` ````{py:method} bit_count() :canonical: simvx.core.viewport.StretchAspect.bit_count ```` ````{py:method} bit_length() :canonical: simvx.core.viewport.StretchAspect.bit_length ```` ````{py:method} conjugate() :canonical: simvx.core.viewport.StretchAspect.conjugate ```` ```{py:class} denominator :canonical: simvx.core.viewport.StretchAspect.denominator ``` ```{py:class} imag :canonical: simvx.core.viewport.StretchAspect.imag ``` ````{py:method} is_integer() :canonical: simvx.core.viewport.StretchAspect.is_integer ```` ```{py:class} numerator :canonical: simvx.core.viewport.StretchAspect.numerator ``` ```{py:class} real :canonical: simvx.core.viewport.StretchAspect.real ``` ````{py:method} to_bytes() :canonical: simvx.core.viewport.StretchAspect.to_bytes ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.viewport.StretchAspect.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.viewport.StretchAspect.__copy__ ```` ````{py:method} name() :canonical: simvx.core.viewport.StretchAspect.name ```` ````{py:method} value() :canonical: simvx.core.viewport.StretchAspect.value ```` ````` `````{py:class} VSyncMode() :canonical: simvx.core.viewport.VSyncMode Bases: {py:obj}`enum.IntEnum` ````{py:attribute} DISABLED :canonical: simvx.core.viewport.VSyncMode.DISABLED :value: > 0 ```{autodoc2-docstring} simvx.core.viewport.VSyncMode.DISABLED ``` ```` ````{py:attribute} ENABLED :canonical: simvx.core.viewport.VSyncMode.ENABLED :value: > 1 ```{autodoc2-docstring} simvx.core.viewport.VSyncMode.ENABLED ``` ```` ````{py:attribute} ADAPTIVE :canonical: simvx.core.viewport.VSyncMode.ADAPTIVE :value: > 2 ```{autodoc2-docstring} simvx.core.viewport.VSyncMode.ADAPTIVE ``` ```` ````{py:attribute} MAILBOX :canonical: simvx.core.viewport.VSyncMode.MAILBOX :value: > 3 ```{autodoc2-docstring} simvx.core.viewport.VSyncMode.MAILBOX ``` ```` ````{py:method} __abs__() :canonical: simvx.core.viewport.VSyncMode.__abs__ ```` ````{py:method} __add__() :canonical: simvx.core.viewport.VSyncMode.__add__ ```` ````{py:method} __and__() :canonical: simvx.core.viewport.VSyncMode.__and__ ```` ````{py:method} __bool__() :canonical: simvx.core.viewport.VSyncMode.__bool__ ```` ````{py:method} __ceil__() :canonical: simvx.core.viewport.VSyncMode.__ceil__ ```` ````{py:method} __delattr__() :canonical: simvx.core.viewport.VSyncMode.__delattr__ ```` ````{py:method} __dir__() :canonical: simvx.core.viewport.VSyncMode.__dir__ ```` ````{py:method} __divmod__() :canonical: simvx.core.viewport.VSyncMode.__divmod__ ```` ````{py:method} __eq__() :canonical: simvx.core.viewport.VSyncMode.__eq__ ```` ````{py:method} __float__() :canonical: simvx.core.viewport.VSyncMode.__float__ ```` ````{py:method} __floor__() :canonical: simvx.core.viewport.VSyncMode.__floor__ ```` ````{py:method} __floordiv__() :canonical: simvx.core.viewport.VSyncMode.__floordiv__ ```` ````{py:method} __format__() :canonical: simvx.core.viewport.VSyncMode.__format__ ```` ````{py:method} __ge__() :canonical: simvx.core.viewport.VSyncMode.__ge__ ```` ````{py:method} __getattribute__() :canonical: simvx.core.viewport.VSyncMode.__getattribute__ ```` ````{py:method} __getnewargs__() :canonical: simvx.core.viewport.VSyncMode.__getnewargs__ ```` ````{py:method} __getstate__() :canonical: simvx.core.viewport.VSyncMode.__getstate__ ```` ````{py:method} __gt__() :canonical: simvx.core.viewport.VSyncMode.__gt__ ```` ````{py:method} __hash__() :canonical: simvx.core.viewport.VSyncMode.__hash__ ```` ````{py:method} __index__() :canonical: simvx.core.viewport.VSyncMode.__index__ ```` ````{py:method} __int__() :canonical: simvx.core.viewport.VSyncMode.__int__ ```` ````{py:method} __invert__() :canonical: simvx.core.viewport.VSyncMode.__invert__ ```` ````{py:method} __le__() :canonical: simvx.core.viewport.VSyncMode.__le__ ```` ````{py:method} __lshift__() :canonical: simvx.core.viewport.VSyncMode.__lshift__ ```` ````{py:method} __lt__() :canonical: simvx.core.viewport.VSyncMode.__lt__ ```` ````{py:method} __mod__() :canonical: simvx.core.viewport.VSyncMode.__mod__ ```` ````{py:method} __mul__() :canonical: simvx.core.viewport.VSyncMode.__mul__ ```` ````{py:method} __ne__() :canonical: simvx.core.viewport.VSyncMode.__ne__ ```` ````{py:method} __neg__() :canonical: simvx.core.viewport.VSyncMode.__neg__ ```` ````{py:method} __new__() :canonical: simvx.core.viewport.VSyncMode.__new__ ```` ````{py:method} __or__() :canonical: simvx.core.viewport.VSyncMode.__or__ ```` ````{py:method} __pos__() :canonical: simvx.core.viewport.VSyncMode.__pos__ ```` ````{py:method} __pow__() :canonical: simvx.core.viewport.VSyncMode.__pow__ ```` ````{py:method} __radd__() :canonical: simvx.core.viewport.VSyncMode.__radd__ ```` ````{py:method} __rand__() :canonical: simvx.core.viewport.VSyncMode.__rand__ ```` ````{py:method} __rdivmod__() :canonical: simvx.core.viewport.VSyncMode.__rdivmod__ ```` ````{py:method} __reduce__() :canonical: simvx.core.viewport.VSyncMode.__reduce__ ```` ````{py:method} __reduce_ex__() :canonical: simvx.core.viewport.VSyncMode.__reduce_ex__ ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.VSyncMode.__repr__ ```` ````{py:method} __rfloordiv__() :canonical: simvx.core.viewport.VSyncMode.__rfloordiv__ ```` ````{py:method} __rlshift__() :canonical: simvx.core.viewport.VSyncMode.__rlshift__ ```` ````{py:method} __rmod__() :canonical: simvx.core.viewport.VSyncMode.__rmod__ ```` ````{py:method} __rmul__() :canonical: simvx.core.viewport.VSyncMode.__rmul__ ```` ````{py:method} __ror__() :canonical: simvx.core.viewport.VSyncMode.__ror__ ```` ````{py:method} __round__() :canonical: simvx.core.viewport.VSyncMode.__round__ ```` ````{py:method} __rpow__() :canonical: simvx.core.viewport.VSyncMode.__rpow__ ```` ````{py:method} __rrshift__() :canonical: simvx.core.viewport.VSyncMode.__rrshift__ ```` ````{py:method} __rshift__() :canonical: simvx.core.viewport.VSyncMode.__rshift__ ```` ````{py:method} __rsub__() :canonical: simvx.core.viewport.VSyncMode.__rsub__ ```` ````{py:method} __rtruediv__() :canonical: simvx.core.viewport.VSyncMode.__rtruediv__ ```` ````{py:method} __rxor__() :canonical: simvx.core.viewport.VSyncMode.__rxor__ ```` ````{py:method} __setattr__() :canonical: simvx.core.viewport.VSyncMode.__setattr__ ```` ````{py:method} __sizeof__() :canonical: simvx.core.viewport.VSyncMode.__sizeof__ ```` ````{py:method} __str__() :canonical: simvx.core.viewport.VSyncMode.__str__ ```` ````{py:method} __sub__() :canonical: simvx.core.viewport.VSyncMode.__sub__ ```` ````{py:method} __subclasshook__() :canonical: simvx.core.viewport.VSyncMode.__subclasshook__ ```` ````{py:method} __truediv__() :canonical: simvx.core.viewport.VSyncMode.__truediv__ ```` ````{py:method} __trunc__() :canonical: simvx.core.viewport.VSyncMode.__trunc__ ```` ````{py:method} __xor__() :canonical: simvx.core.viewport.VSyncMode.__xor__ ```` ````{py:method} as_integer_ratio() :canonical: simvx.core.viewport.VSyncMode.as_integer_ratio ```` ````{py:method} bit_count() :canonical: simvx.core.viewport.VSyncMode.bit_count ```` ````{py:method} bit_length() :canonical: simvx.core.viewport.VSyncMode.bit_length ```` ````{py:method} conjugate() :canonical: simvx.core.viewport.VSyncMode.conjugate ```` ```{py:class} denominator :canonical: simvx.core.viewport.VSyncMode.denominator ``` ```{py:class} imag :canonical: simvx.core.viewport.VSyncMode.imag ``` ````{py:method} is_integer() :canonical: simvx.core.viewport.VSyncMode.is_integer ```` ```{py:class} numerator :canonical: simvx.core.viewport.VSyncMode.numerator ``` ```{py:class} real :canonical: simvx.core.viewport.VSyncMode.real ``` ````{py:method} to_bytes() :canonical: simvx.core.viewport.VSyncMode.to_bytes ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.viewport.VSyncMode.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.viewport.VSyncMode.__copy__ ```` ````{py:method} name() :canonical: simvx.core.viewport.VSyncMode.name ```` ````{py:method} value() :canonical: simvx.core.viewport.VSyncMode.value ```` ````` `````{py:class} WindowMode() :canonical: simvx.core.viewport.WindowMode Bases: {py:obj}`enum.IntEnum` ````{py:attribute} WINDOWED :canonical: simvx.core.viewport.WindowMode.WINDOWED :value: > 0 ```{autodoc2-docstring} simvx.core.viewport.WindowMode.WINDOWED ``` ```` ````{py:attribute} FULLSCREEN :canonical: simvx.core.viewport.WindowMode.FULLSCREEN :value: > 1 ```{autodoc2-docstring} simvx.core.viewport.WindowMode.FULLSCREEN ``` ```` ````{py:attribute} BORDERLESS :canonical: simvx.core.viewport.WindowMode.BORDERLESS :value: > 2 ```{autodoc2-docstring} simvx.core.viewport.WindowMode.BORDERLESS ``` ```` ````{py:attribute} MAXIMIZED :canonical: simvx.core.viewport.WindowMode.MAXIMIZED :value: > 3 ```{autodoc2-docstring} simvx.core.viewport.WindowMode.MAXIMIZED ``` ```` ````{py:method} __abs__() :canonical: simvx.core.viewport.WindowMode.__abs__ ```` ````{py:method} __add__() :canonical: simvx.core.viewport.WindowMode.__add__ ```` ````{py:method} __and__() :canonical: simvx.core.viewport.WindowMode.__and__ ```` ````{py:method} __bool__() :canonical: simvx.core.viewport.WindowMode.__bool__ ```` ````{py:method} __ceil__() :canonical: simvx.core.viewport.WindowMode.__ceil__ ```` ````{py:method} __delattr__() :canonical: simvx.core.viewport.WindowMode.__delattr__ ```` ````{py:method} __dir__() :canonical: simvx.core.viewport.WindowMode.__dir__ ```` ````{py:method} __divmod__() :canonical: simvx.core.viewport.WindowMode.__divmod__ ```` ````{py:method} __eq__() :canonical: simvx.core.viewport.WindowMode.__eq__ ```` ````{py:method} __float__() :canonical: simvx.core.viewport.WindowMode.__float__ ```` ````{py:method} __floor__() :canonical: simvx.core.viewport.WindowMode.__floor__ ```` ````{py:method} __floordiv__() :canonical: simvx.core.viewport.WindowMode.__floordiv__ ```` ````{py:method} __format__() :canonical: simvx.core.viewport.WindowMode.__format__ ```` ````{py:method} __ge__() :canonical: simvx.core.viewport.WindowMode.__ge__ ```` ````{py:method} __getattribute__() :canonical: simvx.core.viewport.WindowMode.__getattribute__ ```` ````{py:method} __getnewargs__() :canonical: simvx.core.viewport.WindowMode.__getnewargs__ ```` ````{py:method} __getstate__() :canonical: simvx.core.viewport.WindowMode.__getstate__ ```` ````{py:method} __gt__() :canonical: simvx.core.viewport.WindowMode.__gt__ ```` ````{py:method} __hash__() :canonical: simvx.core.viewport.WindowMode.__hash__ ```` ````{py:method} __index__() :canonical: simvx.core.viewport.WindowMode.__index__ ```` ````{py:method} __int__() :canonical: simvx.core.viewport.WindowMode.__int__ ```` ````{py:method} __invert__() :canonical: simvx.core.viewport.WindowMode.__invert__ ```` ````{py:method} __le__() :canonical: simvx.core.viewport.WindowMode.__le__ ```` ````{py:method} __lshift__() :canonical: simvx.core.viewport.WindowMode.__lshift__ ```` ````{py:method} __lt__() :canonical: simvx.core.viewport.WindowMode.__lt__ ```` ````{py:method} __mod__() :canonical: simvx.core.viewport.WindowMode.__mod__ ```` ````{py:method} __mul__() :canonical: simvx.core.viewport.WindowMode.__mul__ ```` ````{py:method} __ne__() :canonical: simvx.core.viewport.WindowMode.__ne__ ```` ````{py:method} __neg__() :canonical: simvx.core.viewport.WindowMode.__neg__ ```` ````{py:method} __new__() :canonical: simvx.core.viewport.WindowMode.__new__ ```` ````{py:method} __or__() :canonical: simvx.core.viewport.WindowMode.__or__ ```` ````{py:method} __pos__() :canonical: simvx.core.viewport.WindowMode.__pos__ ```` ````{py:method} __pow__() :canonical: simvx.core.viewport.WindowMode.__pow__ ```` ````{py:method} __radd__() :canonical: simvx.core.viewport.WindowMode.__radd__ ```` ````{py:method} __rand__() :canonical: simvx.core.viewport.WindowMode.__rand__ ```` ````{py:method} __rdivmod__() :canonical: simvx.core.viewport.WindowMode.__rdivmod__ ```` ````{py:method} __reduce__() :canonical: simvx.core.viewport.WindowMode.__reduce__ ```` ````{py:method} __reduce_ex__() :canonical: simvx.core.viewport.WindowMode.__reduce_ex__ ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.WindowMode.__repr__ ```` ````{py:method} __rfloordiv__() :canonical: simvx.core.viewport.WindowMode.__rfloordiv__ ```` ````{py:method} __rlshift__() :canonical: simvx.core.viewport.WindowMode.__rlshift__ ```` ````{py:method} __rmod__() :canonical: simvx.core.viewport.WindowMode.__rmod__ ```` ````{py:method} __rmul__() :canonical: simvx.core.viewport.WindowMode.__rmul__ ```` ````{py:method} __ror__() :canonical: simvx.core.viewport.WindowMode.__ror__ ```` ````{py:method} __round__() :canonical: simvx.core.viewport.WindowMode.__round__ ```` ````{py:method} __rpow__() :canonical: simvx.core.viewport.WindowMode.__rpow__ ```` ````{py:method} __rrshift__() :canonical: simvx.core.viewport.WindowMode.__rrshift__ ```` ````{py:method} __rshift__() :canonical: simvx.core.viewport.WindowMode.__rshift__ ```` ````{py:method} __rsub__() :canonical: simvx.core.viewport.WindowMode.__rsub__ ```` ````{py:method} __rtruediv__() :canonical: simvx.core.viewport.WindowMode.__rtruediv__ ```` ````{py:method} __rxor__() :canonical: simvx.core.viewport.WindowMode.__rxor__ ```` ````{py:method} __setattr__() :canonical: simvx.core.viewport.WindowMode.__setattr__ ```` ````{py:method} __sizeof__() :canonical: simvx.core.viewport.WindowMode.__sizeof__ ```` ````{py:method} __str__() :canonical: simvx.core.viewport.WindowMode.__str__ ```` ````{py:method} __sub__() :canonical: simvx.core.viewport.WindowMode.__sub__ ```` ````{py:method} __subclasshook__() :canonical: simvx.core.viewport.WindowMode.__subclasshook__ ```` ````{py:method} __truediv__() :canonical: simvx.core.viewport.WindowMode.__truediv__ ```` ````{py:method} __trunc__() :canonical: simvx.core.viewport.WindowMode.__trunc__ ```` ````{py:method} __xor__() :canonical: simvx.core.viewport.WindowMode.__xor__ ```` ````{py:method} as_integer_ratio() :canonical: simvx.core.viewport.WindowMode.as_integer_ratio ```` ````{py:method} bit_count() :canonical: simvx.core.viewport.WindowMode.bit_count ```` ````{py:method} bit_length() :canonical: simvx.core.viewport.WindowMode.bit_length ```` ````{py:method} conjugate() :canonical: simvx.core.viewport.WindowMode.conjugate ```` ```{py:class} denominator :canonical: simvx.core.viewport.WindowMode.denominator ``` ```{py:class} imag :canonical: simvx.core.viewport.WindowMode.imag ``` ````{py:method} is_integer() :canonical: simvx.core.viewport.WindowMode.is_integer ```` ```{py:class} numerator :canonical: simvx.core.viewport.WindowMode.numerator ``` ```{py:class} real :canonical: simvx.core.viewport.WindowMode.real ``` ````{py:method} to_bytes() :canonical: simvx.core.viewport.WindowMode.to_bytes ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.viewport.WindowMode.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.viewport.WindowMode.__copy__ ```` ````{py:method} name() :canonical: simvx.core.viewport.WindowMode.name ```` ````{py:method} value() :canonical: simvx.core.viewport.WindowMode.value ```` ````` `````{py:class} DisplaySettings() :canonical: simvx.core.viewport.DisplaySettings ```{autodoc2-docstring} simvx.core.viewport.DisplaySettings ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.viewport.DisplaySettings.__init__ ``` ````{py:method} compute_canvas_transform(window_width: int, window_height: int) -> numpy.ndarray :canonical: simvx.core.viewport.DisplaySettings.compute_canvas_transform ```{autodoc2-docstring} simvx.core.viewport.DisplaySettings.compute_canvas_transform ``` ```` ````{py:method} compute_viewport_rect(window_width: int, window_height: int) -> tuple[int, int, int, int] :canonical: simvx.core.viewport.DisplaySettings.compute_viewport_rect ```{autodoc2-docstring} simvx.core.viewport.DisplaySettings.compute_viewport_rect ``` ```` ````` `````{py:class} SubViewport(name='SubViewport', **kwargs) :canonical: simvx.core.viewport.SubViewport Bases: {py:obj}`simvx.core.engine.Node` ```{autodoc2-docstring} simvx.core.viewport.SubViewport ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.viewport.SubViewport.__init__ ``` ````{py:attribute} size :canonical: simvx.core.viewport.SubViewport.size :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.SubViewport.size ``` ```` ````{py:attribute} transparent_bg :canonical: simvx.core.viewport.SubViewport.transparent_bg :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.SubViewport.transparent_bg ``` ```` ````{py:attribute} render_target_update_mode :canonical: simvx.core.viewport.SubViewport.render_target_update_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.SubViewport.render_target_update_mode ``` ```` ````{py:property} texture :canonical: simvx.core.viewport.SubViewport.texture ```{autodoc2-docstring} simvx.core.viewport.SubViewport.texture ``` ```` ````{py:method} get_texture_size() -> tuple[int, int] :canonical: simvx.core.viewport.SubViewport.get_texture_size ```{autodoc2-docstring} simvx.core.viewport.SubViewport.get_texture_size ``` ```` ````{py:attribute} script_error_raised :canonical: simvx.core.viewport.SubViewport.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.viewport.SubViewport.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.viewport.SubViewport.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.viewport.SubViewport.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.viewport.SubViewport.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.viewport.SubViewport.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.viewport.SubViewport.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.viewport.SubViewport.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.viewport.SubViewport.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.viewport.SubViewport.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.viewport.SubViewport.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.viewport.SubViewport.find_all ```` ````{py:property} path :canonical: simvx.core.viewport.SubViewport.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.viewport.SubViewport.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.viewport.SubViewport.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.viewport.SubViewport.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.viewport.SubViewport.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.viewport.SubViewport.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.viewport.SubViewport.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.viewport.SubViewport.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.viewport.SubViewport.physics_process ```` ````{py:method} draw(renderer) -> None :canonical: simvx.core.viewport.SubViewport.draw ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.viewport.SubViewport.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.viewport.SubViewport.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.viewport.SubViewport.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.viewport.SubViewport.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.viewport.SubViewport.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.viewport.SubViewport.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.viewport.SubViewport.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.viewport.SubViewport.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.viewport.SubViewport.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.viewport.SubViewport.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.viewport.SubViewport.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.viewport.SubViewport.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.SubViewport.__repr__ ```` ````` `````{py:class} ViewportContainer(name='ViewportContainer', **kwargs) :canonical: simvx.core.viewport.ViewportContainer Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.viewport.ViewportContainer ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.viewport.ViewportContainer.__init__ ``` ````{py:attribute} stretch :canonical: simvx.core.viewport.ViewportContainer.stretch :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.ViewportContainer.stretch ``` ```` ````{py:method} set_viewport(viewport: simvx.core.viewport.SubViewport) :canonical: simvx.core.viewport.ViewportContainer.set_viewport ```{autodoc2-docstring} simvx.core.viewport.ViewportContainer.set_viewport ``` ```` ````{py:attribute} size_x :canonical: simvx.core.viewport.ViewportContainer.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.viewport.ViewportContainer.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.viewport.ViewportContainer.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.viewport.ViewportContainer.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.viewport.ViewportContainer.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.viewport.ViewportContainer.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.viewport.ViewportContainer.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.viewport.ViewportContainer.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.viewport.ViewportContainer.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.viewport.ViewportContainer.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.viewport.ViewportContainer.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.viewport.ViewportContainer.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.viewport.ViewportContainer.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.viewport.ViewportContainer.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.viewport.ViewportContainer.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.viewport.ViewportContainer.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.viewport.ViewportContainer.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.viewport.ViewportContainer.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.viewport.ViewportContainer.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.viewport.ViewportContainer.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.viewport.ViewportContainer.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.viewport.ViewportContainer.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.viewport.ViewportContainer.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.viewport.ViewportContainer.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.viewport.ViewportContainer.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.viewport.ViewportContainer.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.viewport.ViewportContainer.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.viewport.ViewportContainer.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.viewport.ViewportContainer.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.viewport.ViewportContainer.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.viewport.ViewportContainer.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.viewport.ViewportContainer.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.viewport.ViewportContainer.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.viewport.ViewportContainer.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.viewport.ViewportContainer.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.viewport.ViewportContainer.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.viewport.ViewportContainer.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.viewport.ViewportContainer.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.viewport.ViewportContainer.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.viewport.ViewportContainer.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.viewport.ViewportContainer.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.viewport.ViewportContainer.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.viewport.ViewportContainer.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.viewport.ViewportContainer.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.viewport.ViewportContainer.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.viewport.ViewportContainer.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.viewport.ViewportContainer.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.viewport.ViewportContainer.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.viewport.ViewportContainer.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.viewport.ViewportContainer.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.viewport.ViewportContainer.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.viewport.ViewportContainer.find_all ```` ````{py:property} path :canonical: simvx.core.viewport.ViewportContainer.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.viewport.ViewportContainer.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.viewport.ViewportContainer.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.viewport.ViewportContainer.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.viewport.ViewportContainer.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.viewport.ViewportContainer.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.viewport.ViewportContainer.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.viewport.ViewportContainer.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.viewport.ViewportContainer.physics_process ```` ````{py:method} draw(renderer) -> None :canonical: simvx.core.viewport.ViewportContainer.draw ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.viewport.ViewportContainer.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.viewport.ViewportContainer.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.viewport.ViewportContainer.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.viewport.ViewportContainer.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.viewport.ViewportContainer.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.viewport.ViewportContainer.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.viewport.ViewportContainer.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.viewport.ViewportContainer.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.viewport.ViewportContainer.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.viewport.ViewportContainer.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.viewport.ViewportContainer.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.viewport.ViewportContainer.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.ViewportContainer.__repr__ ```` ````` `````{py:class} WorldEnvironment(name: str = '', **kwargs) :canonical: simvx.core.viewport.WorldEnvironment Bases: {py:obj}`simvx.core.engine.Node` ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.__init__ ``` ````{py:attribute} ambient_light_color :canonical: simvx.core.viewport.WorldEnvironment.ambient_light_color :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.ambient_light_color ``` ```` ````{py:attribute} ambient_light_energy :canonical: simvx.core.viewport.WorldEnvironment.ambient_light_energy :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.ambient_light_energy ``` ```` ````{py:attribute} ambient_light_mode :canonical: simvx.core.viewport.WorldEnvironment.ambient_light_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.ambient_light_mode ``` ```` ````{py:attribute} fog_enabled :canonical: simvx.core.viewport.WorldEnvironment.fog_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.fog_enabled ``` ```` ````{py:attribute} fog_color :canonical: simvx.core.viewport.WorldEnvironment.fog_color :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.fog_color ``` ```` ````{py:attribute} fog_density :canonical: simvx.core.viewport.WorldEnvironment.fog_density :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.fog_density ``` ```` ````{py:attribute} fog_height :canonical: simvx.core.viewport.WorldEnvironment.fog_height :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.fog_height ``` ```` ````{py:attribute} fog_height_density :canonical: simvx.core.viewport.WorldEnvironment.fog_height_density :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.fog_height_density ``` ```` ````{py:attribute} tonemap_mode :canonical: simvx.core.viewport.WorldEnvironment.tonemap_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.tonemap_mode ``` ```` ````{py:attribute} tonemap_exposure :canonical: simvx.core.viewport.WorldEnvironment.tonemap_exposure :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.tonemap_exposure ``` ```` ````{py:attribute} tonemap_white :canonical: simvx.core.viewport.WorldEnvironment.tonemap_white :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.tonemap_white ``` ```` ````{py:attribute} bloom_enabled :canonical: simvx.core.viewport.WorldEnvironment.bloom_enabled :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.bloom_enabled ``` ```` ````{py:attribute} bloom_threshold :canonical: simvx.core.viewport.WorldEnvironment.bloom_threshold :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.bloom_threshold ``` ```` ````{py:attribute} bloom_intensity :canonical: simvx.core.viewport.WorldEnvironment.bloom_intensity :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.bloom_intensity ``` ```` ````{py:attribute} sky_mode :canonical: simvx.core.viewport.WorldEnvironment.sky_mode :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.sky_mode ``` ```` ````{py:attribute} sky_color_top :canonical: simvx.core.viewport.WorldEnvironment.sky_color_top :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.sky_color_top ``` ```` ````{py:attribute} sky_color_bottom :canonical: simvx.core.viewport.WorldEnvironment.sky_color_bottom :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.sky_color_bottom ``` ```` ````{py:attribute} sky_texture :canonical: simvx.core.viewport.WorldEnvironment.sky_texture :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.viewport.WorldEnvironment.sky_texture ``` ```` ````{py:attribute} script_error_raised :canonical: simvx.core.viewport.WorldEnvironment.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.viewport.WorldEnvironment.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.viewport.WorldEnvironment.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.viewport.WorldEnvironment.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.viewport.WorldEnvironment.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.viewport.WorldEnvironment.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.viewport.WorldEnvironment.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.viewport.WorldEnvironment.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.viewport.WorldEnvironment.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.viewport.WorldEnvironment.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.viewport.WorldEnvironment.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.viewport.WorldEnvironment.find_all ```` ````{py:property} path :canonical: simvx.core.viewport.WorldEnvironment.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.viewport.WorldEnvironment.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.viewport.WorldEnvironment.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.viewport.WorldEnvironment.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.viewport.WorldEnvironment.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.viewport.WorldEnvironment.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.viewport.WorldEnvironment.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.viewport.WorldEnvironment.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.viewport.WorldEnvironment.physics_process ```` ````{py:method} draw(renderer) -> None :canonical: simvx.core.viewport.WorldEnvironment.draw ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.viewport.WorldEnvironment.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.viewport.WorldEnvironment.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.viewport.WorldEnvironment.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.viewport.WorldEnvironment.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.viewport.WorldEnvironment.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.viewport.WorldEnvironment.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.viewport.WorldEnvironment.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.viewport.WorldEnvironment.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.viewport.WorldEnvironment.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.viewport.WorldEnvironment.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.viewport.WorldEnvironment.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.viewport.WorldEnvironment.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.viewport.WorldEnvironment.__repr__ ```` ````` ````{py:class} Environment() :canonical: simvx.core.viewport.Environment ```{autodoc2-docstring} simvx.core.viewport.Environment ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.viewport.Environment.__init__ ``` ````