<?xml version="1.0" encoding="UTF-8" ?>
<class name="RDTextureFormat" inherits="RefCounted" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Texture format (used by [RenderingDevice]).
	</brief_description>
	<description>
		This object is used by [RenderingDevice].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_shareable_format">
			<return type="void" />
			<param index="0" name="format" type="int" enum="RenderingDevice.DataFormat" />
			<description>
				Adds [param format] as a valid format for the corresponding [RDTextureView]'s [member RDTextureView.format_override] property. If any format is added as shareable, then the main [member format] must also be added.
			</description>
		</method>
		<method name="remove_shareable_format">
			<return type="void" />
			<param index="0" name="format" type="int" enum="RenderingDevice.DataFormat" />
			<description>
				Removes [param format] from the list of valid formats that the corresponding [RDTextureView]'s [member RDTextureView.format_override] property can be set to.
			</description>
		</method>
	</methods>
	<members>
		<member name="array_layers" type="int" setter="set_array_layers" getter="get_array_layers" default="1">
			The number of layers in the texture. Only relevant for 2D texture arrays.
		</member>
		<member name="depth" type="int" setter="set_depth" getter="get_depth" default="1">
			The texture's depth (in pixels). This is always [code]1[/code] for 2D textures.
		</member>
		<member name="format" type="int" setter="set_format" getter="get_format" enum="RenderingDevice.DataFormat" default="8">
			The texture's pixel data format.
		</member>
		<member name="height" type="int" setter="set_height" getter="get_height" default="1">
			The texture's height (in pixels).
		</member>
		<member name="is_discardable" type="bool" setter="set_is_discardable" getter="get_is_discardable" default="false">
			If a texture is discardable, its contents do not need to be preserved between frames. This flag is only relevant when the texture is used as target in a draw list.
			This information is used by [RenderingDevice] to figure out if a texture's contents can be discarded, eliminating unnecessary writes to memory and boosting performance.
		</member>
		<member name="is_resolve_buffer" type="bool" setter="set_is_resolve_buffer" getter="get_is_resolve_buffer" default="false">
			The texture will be used as the destination of a resolve operation.
		</member>
		<member name="mipmaps" type="int" setter="set_mipmaps" getter="get_mipmaps" default="1">
			The number of mipmaps available in the texture.
		</member>
		<member name="samples" type="int" setter="set_samples" getter="get_samples" enum="RenderingDevice.TextureSamples" default="0">
			The number of samples used when sampling the texture.
		</member>
		<member name="texture_type" type="int" setter="set_texture_type" getter="get_texture_type" enum="RenderingDevice.TextureType" default="1">
			The texture type.
		</member>
		<member name="usage_bits" type="int" setter="set_usage_bits" getter="get_usage_bits" enum="RenderingDevice.TextureUsageBits" is_bitfield="true" default="0">
			The texture's usage bits, which determine what can be done using the texture.
		</member>
		<member name="width" type="int" setter="set_width" getter="get_width" default="1">
			The texture's width (in pixels).
		</member>
	</members>
</class>
