:github_url: hide .. _class_BackBufferCopy: BackBufferCopy ============== **Наследует:** :ref:`Node2D` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` Узел, который копирует область экрана в буфер для доступа в коде шейдера. .. rst-class:: classref-introduction-group Описание ---------------- Узел для буферизации текущего отображаемого экрана. Регион, определенный в узле **BackBufferCopy**, буферизуется содержимым экрана, который он покрывает, или всем экраном в соответствии с :ref:`copy_mode`. К нему можно получить доступ в скриптах шейдера с помощью текстуры экрана (т. е. однородного сэмплера с ``hint_screen_texture``). \ **Примечание:** Поскольку этот узел наследуется от :ref:`Node2D` (а не от :ref:`Control`), якоря и поля не будут применяться к дочерним узлам, производным от :ref:`Control`. Это может быть проблематично при изменении размера окна. Чтобы избежать этого, добавьте узлы, производные от :ref:`Control`, как *родственные* узлы в узел **BackBufferCopy** вместо того, чтобы добавлять их как дочерние. .. rst-class:: classref-introduction-group Обучающие материалы -------------------------------------- - :doc:`Шейдеры чтения экрана <../tutorials/shaders/screen-reading_shaders>` .. rst-class:: classref-reftable-group Свойства ---------------- .. table:: :widths: auto +-----------------------------------------------+-----------------------------------------------------------+---------------------------------+ | :ref:`CopyMode` | :ref:`copy_mode` | ``1`` | +-----------------------------------------------+-----------------------------------------------------------+---------------------------------+ | :ref:`Rect2` | :ref:`rect` | ``Rect2(-100, -100, 200, 200)`` | +-----------------------------------------------+-----------------------------------------------------------+---------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Перечисления ------------------------ .. _enum_BackBufferCopy_CopyMode: .. rst-class:: classref-enumeration enum **CopyMode**: :ref:`🔗` .. _class_BackBufferCopy_constant_COPY_MODE_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`CopyMode` **COPY_MODE_DISABLED** = ``0`` Отключает режим буферизации. Это означает, что узел **BackBufferCopy** будет напрямую использовать часть экрана, которую он покрывает. .. _class_BackBufferCopy_constant_COPY_MODE_RECT: .. rst-class:: classref-enumeration-constant :ref:`CopyMode` **COPY_MODE_RECT** = ``1`` **BackBufferCopy** буферизует прямоугольную область. .. _class_BackBufferCopy_constant_COPY_MODE_VIEWPORT: .. rst-class:: classref-enumeration-constant :ref:`CopyMode` **COPY_MODE_VIEWPORT** = ``2`` **BackBufferCopy** буферизует весь экран. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания свойств -------------------------------- .. _class_BackBufferCopy_property_copy_mode: .. rst-class:: classref-property :ref:`CopyMode` **copy_mode** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_copy_mode**\ (\ value\: :ref:`CopyMode`\ ) - :ref:`CopyMode` **get_copy_mode**\ (\ ) Режим буфера. .. rst-class:: classref-item-separator ---- .. _class_BackBufferCopy_property_rect: .. rst-class:: classref-property :ref:`Rect2` **rect** = ``Rect2(-100, -100, 200, 200)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_rect**\ (\ value\: :ref:`Rect2`\ ) - :ref:`Rect2` **get_rect**\ (\ ) Область, охватываемая **BackBufferCopy**. Используется только если :ref:`copy_mode` равен :ref:`COPY_MODE_RECT`. .. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)` .. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)` .. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)` .. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)` .. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)` .. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)` .. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`