2017-09-12 20:42:36 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 08:08:05 +00:00
<class name= "BackBufferCopy" inherits= "Node2D" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 20:42:36 +00:00
<brief_description >
2023-06-24 11:19:58 +00:00
A node that copies a region of the screen to a buffer for access in shader code.
2017-09-12 20:42:36 +00:00
</brief_description>
<description >
2023-06-24 11:19:58 +00:00
Node for back-buffering the currently-displayed screen. The region defined in the [BackBufferCopy] node is buffered with the content of the screen it covers, or the entire screen according to the [member copy_mode]. It can be accessed in shader scripts using the screen texture (i.e. a uniform sampler with [code]hint_screen_texture[/code]).
2022-12-08 18:50:59 +00:00
[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), anchors and margins won't apply to child [Control]-derived nodes. This can be problematic when resizing the window. To avoid this, add [Control]-derived nodes as [i]siblings[/i] to the [BackBufferCopy] node instead of adding them as children.
2017-09-12 20:42:36 +00:00
</description>
<tutorials >
2024-10-22 14:38:24 +00:00
<link title= "Screen-reading shaders" > $DOCS_URL/tutorials/shaders/screen-reading_shaders.html</link>
2017-09-12 20:42:36 +00:00
</tutorials>
<members >
2019-06-29 10:38:01 +00:00
<member name= "copy_mode" type= "int" setter= "set_copy_mode" getter= "get_copy_mode" enum= "BackBufferCopy.CopyMode" default= "1" >
2019-06-27 10:34:26 +00:00
Buffer mode. See [enum CopyMode] constants.
2017-09-12 20:42:36 +00:00
</member>
2019-09-24 17:45:03 +00:00
<member name= "rect" type= "Rect2" setter= "set_rect" getter= "get_rect" default= "Rect2(-100, -100, 200, 200)" >
2022-12-08 18:50:59 +00:00
The area covered by the [BackBufferCopy]. Only used if [member copy_mode] is [constant COPY_MODE_RECT].
2017-09-12 20:42:36 +00:00
</member>
</members>
<constants >
2017-11-24 22:16:30 +00:00
<constant name= "COPY_MODE_DISABLED" value= "0" enum= "CopyMode" >
2022-12-08 18:50:59 +00:00
Disables the buffering mode. This means the [BackBufferCopy] node will directly use the portion of screen it covers.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "COPY_MODE_RECT" value= "1" enum= "CopyMode" >
2022-12-08 18:50:59 +00:00
[BackBufferCopy] buffers a rectangular region.
2017-09-12 20:42:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "COPY_MODE_VIEWPORT" value= "2" enum= "CopyMode" >
2022-12-08 18:50:59 +00:00
[BackBufferCopy] buffers the entire screen.
2017-09-12 20:42:36 +00:00
</constant>
</constants>
</class>