diff options
author | reduz <reduzio@gmail.com> | 2021-06-24 10:58:36 -0300 |
---|---|---|
committer | reduz <reduzio@gmail.com> | 2021-06-24 15:59:15 -0300 |
commit | bde6f5eed1cec3639e5c81d1e5ee34ecf3fe7486 (patch) | |
tree | 8f339026a1db2addb5bd728d605b144d5258a320 /doc | |
parent | 8ccadfabf21fadc01fda157988c66c6cecf38555 (diff) |
Implement Framebuffer Subpass support
* Required for better optimizing mobile platforms
* Will be used by the Vulkan mobile renderer.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/classes/RDFramebufferPass.xml | 35 | ||||
-rw-r--r-- | doc/classes/RenderingDevice.xml | 50 |
2 files changed, 84 insertions, 1 deletions
diff --git a/doc/classes/RDFramebufferPass.xml b/doc/classes/RDFramebufferPass.xml new file mode 100644 index 0000000000..c26c41f93f --- /dev/null +++ b/doc/classes/RDFramebufferPass.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="RDFramebufferPass" inherits="RefCounted" version="4.0"> + <brief_description> + Framebuffer pass attachment description. + </brief_description> + <description> + This class contains the list of attachment descriptions for a framebuffer pass. Each points with an index to a previously supplied list of texture attachments. + Multipass framebuffers can optimize some configurations in mobile, on desktop they provide little to no advantage. + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="color_attachments" type="PackedInt32Array" setter="set_color_attachments" getter="get_color_attachments" default="PackedInt32Array()"> + Color attachments in order starting from 0. If this attachment is not used by the shader, pass ATTACHMENT_UNUSED to skip. + </member> + <member name="depth_attachment" type="int" setter="set_depth_attachment" getter="get_depth_attachment" default="-1"> + Depth attachment. ATTACHMENT_UNUSED should be used if no depth buffer is required for this pass. + </member> + <member name="input_attachments" type="PackedInt32Array" setter="set_input_attachments" getter="get_input_attachments" default="PackedInt32Array()"> + Used for multipass framebuffers (more than one render pass). Converts an attachment to an input. Make sure to also supply it properly in the [RDUniform] for the uniform set. + </member> + <member name="preserve_attachments" type="PackedInt32Array" setter="set_preserve_attachments" getter="get_preserve_attachments" default="PackedInt32Array()"> + Attachments to preserve in this pass (otherwise they are erased). + </member> + <member name="resolve_attachments" type="PackedInt32Array" setter="set_resolve_attachments" getter="get_resolve_attachments" default="PackedInt32Array()"> + If the color attachments are multisampled, non-multisampled resolve attachments can be provided. + </member> + </members> + <constants> + <constant name="ATTACHMENT_UNUSED" value="-1"> + </constant> + </constants> +</class> diff --git a/doc/classes/RenderingDevice.xml b/doc/classes/RenderingDevice.xml index dc56e6fd5d..b66b945025 100644 --- a/doc/classes/RenderingDevice.xml +++ b/doc/classes/RenderingDevice.xml @@ -341,13 +341,29 @@ <description> </description> </method> + <method name="draw_list_switch_to_next_pass"> + <return type="int"> + </return> + <description> + </description> + </method> + <method name="draw_list_switch_to_next_pass_split"> + <return type="PackedInt64Array"> + </return> + <argument index="0" name="splits" type="int"> + </argument> + <description> + </description> + </method> <method name="framebuffer_create"> <return type="RID"> </return> - <argument index="0" name="textures" type="Array"> + <argument index="0" name="textures" type="RID[]"> </argument> <argument index="1" name="validate_with_format" type="int" default="-1"> </argument> + <argument index="2" name="view_count" type="int" default="1"> + </argument> <description> </description> </method> @@ -363,11 +379,27 @@ <description> </description> </method> + <method name="framebuffer_create_multipass"> + <return type="RID"> + </return> + <argument index="0" name="textures" type="RID[]"> + </argument> + <argument index="1" name="passes" type="RDFramebufferPass[]"> + </argument> + <argument index="2" name="validate_with_format" type="int" default="-1"> + </argument> + <argument index="3" name="view_count" type="int" default="1"> + </argument> + <description> + </description> + </method> <method name="framebuffer_format_create"> <return type="int"> </return> <argument index="0" name="attachments" type="RDAttachmentFormat[]"> </argument> + <argument index="1" name="view_count" type="int" default="1"> + </argument> <description> </description> </method> @@ -379,11 +411,25 @@ <description> </description> </method> + <method name="framebuffer_format_create_multipass"> + <return type="int"> + </return> + <argument index="0" name="attachments" type="RDAttachmentFormat[]"> + </argument> + <argument index="1" name="passes" type="RDFramebufferPass[]"> + </argument> + <argument index="2" name="view_count" type="int" default="1"> + </argument> + <description> + </description> + </method> <method name="framebuffer_format_get_texture_samples"> <return type="int" enum="RenderingDevice.TextureSamples"> </return> <argument index="0" name="format" type="int"> </argument> + <argument index="1" name="render_pass" type="int" default="0"> + </argument> <description> </description> </method> @@ -524,6 +570,8 @@ </argument> <argument index="8" name="dynamic_state_flags" type="int" default="0"> </argument> + <argument index="9" name="for_render_pass" type="int" default="0"> + </argument> <description> </description> </method> |