<?xml version="1.0" encoding="UTF-8" ?>
<class name="ExternalTexture" inherits="Texture2D" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Texture which displays the content of an external buffer.
	</brief_description>
	<description>
		Displays the content of an external buffer provided by the platform.
		Requires the [url=https://registry.khronos.org/OpenGL/extensions/OES/OES_EGL_image_external.txt]OES_EGL_image_external[/url] extension (OpenGL) or [url=https://registry.khronos.org/vulkan/specs/1.1-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer]VK_ANDROID_external_memory_android_hardware_buffer[/url] extension (Vulkan).
		[b]Note:[/b] This is currently only supported in Android builds.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_external_texture_id" qualifiers="const">
			<return type="int" />
			<description>
				Returns the external texture ID.
				Depending on your use case, you may need to pass this to platform APIs, for example, when creating an [code]android.graphics.SurfaceTexture[/code] on Android.
			</description>
		</method>
		<method name="set_external_buffer_id">
			<return type="void" />
			<param index="0" name="external_buffer_id" type="int" />
			<description>
				Sets the external buffer ID.
				Depending on your use case, you may need to call this with data received from a platform API, for example, [code]SurfaceTexture.getHardwareBuffer()[/code] on Android.
			</description>
		</method>
	</methods>
	<members>
		<member name="resource_local_to_scene" type="bool" setter="set_local_to_scene" getter="is_local_to_scene" overrides="Resource" default="false" />
		<member name="size" type="Vector2" setter="set_size" getter="get_size" default="Vector2(256, 256)">
			External texture size.
		</member>
	</members>
</class>
