summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2021-06-24 10:58:36 -0300
committerreduz <reduzio@gmail.com>2021-06-24 15:59:15 -0300
commitbde6f5eed1cec3639e5c81d1e5ee34ecf3fe7486 (patch)
tree8f339026a1db2addb5bd728d605b144d5258a320 /doc
parent8ccadfabf21fadc01fda157988c66c6cecf38555 (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.xml35
-rw-r--r--doc/classes/RenderingDevice.xml50
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>