<?xml version="1.0" encoding="UTF-8" ?>
<class name="RenderSceneBuffersRD" inherits="RenderSceneBuffers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Render scene buffer implementation for the RenderingDevice based renderers.
	</brief_description>
	<description>
		This object manages all 3D rendering buffers for the rendering device based renderers. An instance of this object is created for every viewport that has 3D rendering enabled. See also [RenderSceneBuffers].
		All buffers are organized in [b]contexts[/b]. The default context is called [b]render_buffers[/b] and can contain amongst others the color buffer, depth buffer, velocity buffers, VRS density map and MSAA variants of these buffers.
		Buffers are only guaranteed to exist during rendering of the viewport.
		[b]Note:[/b] This is an internal rendering server object. Do not instantiate this class from a script.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="clear_context">
			<return type="void" />
			<param index="0" name="context" type="StringName" />
			<description>
				Frees all buffers related to this context.
			</description>
		</method>
		<method name="create_texture">
			<return type="RID" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<param index="2" name="data_format" type="int" enum="RenderingDevice.DataFormat" />
			<param index="3" name="usage_bits" type="int" />
			<param index="4" name="texture_samples" type="int" enum="RenderingDevice.TextureSamples" />
			<param index="5" name="size" type="Vector2i" />
			<param index="6" name="layers" type="int" />
			<param index="7" name="mipmaps" type="int" />
			<param index="8" name="unique" type="bool" />
			<param index="9" name="discardable" type="bool" />
			<description>
				Create a new texture with the given definition and cache this under the given name. Will return the existing texture if it already exists.
			</description>
		</method>
		<method name="create_texture_from_format">
			<return type="RID" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<param index="2" name="format" type="RDTextureFormat" />
			<param index="3" name="view" type="RDTextureView" />
			<param index="4" name="unique" type="bool" />
			<description>
				Create a new texture using the given format and view and cache this under the given name. Will return the existing texture if it already exists.
			</description>
		</method>
		<method name="create_texture_view">
			<return type="RID" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<param index="2" name="view_name" type="StringName" />
			<param index="3" name="view" type="RDTextureView" />
			<description>
				Create a new texture view for an existing texture and cache this under the given [param view_name]. Will return the existing texture view if it already exists. Will error if the source texture doesn't exist.
			</description>
		</method>
		<method name="get_color_layer">
			<return type="RID" />
			<param index="0" name="layer" type="int" />
			<param index="1" name="msaa" type="bool" default="false" />
			<description>
				Returns the specified layer from the color texture we are rendering 3D content to.
				If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the MSAA variant of the buffer.
			</description>
		</method>
		<method name="get_color_texture">
			<return type="RID" />
			<param index="0" name="msaa" type="bool" default="false" />
			<description>
				Returns the color texture we are rendering 3D content to. If multiview is used this will be a texture array with all views.
				If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the MSAA variant of the buffer.
			</description>
		</method>
		<method name="get_depth_layer">
			<return type="RID" />
			<param index="0" name="layer" type="int" />
			<param index="1" name="msaa" type="bool" default="false" />
			<description>
				Returns the specified layer from the depth texture we are rendering 3D content to.
				If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the MSAA variant of the buffer.
			</description>
		</method>
		<method name="get_depth_texture">
			<return type="RID" />
			<param index="0" name="msaa" type="bool" default="false" />
			<description>
				Returns the depth texture we are rendering 3D content to. If multiview is used this will be a texture array with all views.
				If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the MSAA variant of the buffer.
			</description>
		</method>
		<method name="get_fsr_sharpness" qualifiers="const">
			<return type="float" />
			<description>
				Returns the FSR sharpness value used while rendering the 3D content (if [method get_scaling_3d_mode] is an FSR mode).
			</description>
		</method>
		<method name="get_internal_size" qualifiers="const">
			<return type="Vector2i" />
			<description>
				Returns the internal size of the render buffer (size before upscaling) with which textures are created by default.
			</description>
		</method>
		<method name="get_msaa_3d" qualifiers="const">
			<return type="int" enum="RenderingServer.ViewportMSAA" />
			<description>
				Returns the applied 3D MSAA mode for this viewport.
			</description>
		</method>
		<method name="get_render_target" qualifiers="const">
			<return type="RID" />
			<description>
				Returns the render target associated with this buffers object.
			</description>
		</method>
		<method name="get_scaling_3d_mode" qualifiers="const">
			<return type="int" enum="RenderingServer.ViewportScaling3DMode" />
			<description>
				Returns the scaling mode used for upscaling.
			</description>
		</method>
		<method name="get_screen_space_aa" qualifiers="const">
			<return type="int" enum="RenderingServer.ViewportScreenSpaceAA" />
			<description>
				Returns the screen-space antialiasing method applied.
			</description>
		</method>
		<method name="get_target_size" qualifiers="const">
			<return type="Vector2i" />
			<description>
				Returns the target size of the render buffer (size after upscaling).
			</description>
		</method>
		<method name="get_texture" qualifiers="const">
			<return type="RID" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<description>
				Returns a cached texture with this name.
			</description>
		</method>
		<method name="get_texture_format" qualifiers="const">
			<return type="RDTextureFormat" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<description>
				Returns the texture format information with which a cached texture was created.
			</description>
		</method>
		<method name="get_texture_samples" qualifiers="const">
			<return type="int" enum="RenderingDevice.TextureSamples" />
			<description>
				Returns the number of MSAA samples used.
			</description>
		</method>
		<method name="get_texture_slice">
			<return type="RID" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<param index="2" name="layer" type="int" />
			<param index="3" name="mipmap" type="int" />
			<param index="4" name="layers" type="int" />
			<param index="5" name="mipmaps" type="int" />
			<description>
				Returns a specific slice (layer or mipmap) for a cached texture.
			</description>
		</method>
		<method name="get_texture_slice_size">
			<return type="Vector2i" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<param index="2" name="mipmap" type="int" />
			<description>
				Returns the texture size of a given slice of a cached texture.
			</description>
		</method>
		<method name="get_texture_slice_view">
			<return type="RID" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<param index="2" name="layer" type="int" />
			<param index="3" name="mipmap" type="int" />
			<param index="4" name="layers" type="int" />
			<param index="5" name="mipmaps" type="int" />
			<param index="6" name="view" type="RDTextureView" />
			<description>
				Returns a specific view of a slice (layer or mipmap) for a cached texture.
			</description>
		</method>
		<method name="get_use_debanding" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if debanding is enabled.
			</description>
		</method>
		<method name="get_use_taa" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if TAA is enabled.
			</description>
		</method>
		<method name="get_velocity_layer">
			<return type="RID" />
			<param index="0" name="layer" type="int" />
			<param index="1" name="msaa" type="bool" default="false" />
			<description>
				Returns the specified layer from the velocity texture we are rendering 3D content to.
			</description>
		</method>
		<method name="get_velocity_texture">
			<return type="RID" />
			<param index="0" name="msaa" type="bool" default="false" />
			<description>
				Returns the velocity texture we are rendering 3D content to. If multiview is used this will be a texture array with all views.
				If [param msaa] is [b]true[/b] and MSAA is enabled, this returns the MSAA variant of the buffer.
			</description>
		</method>
		<method name="get_view_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the view count for the associated viewport.
			</description>
		</method>
		<method name="has_texture" qualifiers="const">
			<return type="bool" />
			<param index="0" name="context" type="StringName" />
			<param index="1" name="name" type="StringName" />
			<description>
				Returns [code]true[/code] if a cached texture exists for this name.
			</description>
		</method>
	</methods>
</class>
