Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

DrawableTexture2D

Наследует: Texture2D < Texture < Resource < RefCounted < Object

2D текстура, поддерживающая отрисовку самой на себя с помощью вызовов Blit.

Описание

2D текстура, которую можно изменять с помощью вызовов blit, копируя изображение с целевой текстуры на себя. В основном предназначена для управления в коде; пользователь должен вызвать setup() для инициализации состояния перед отрисовкой. Каждый вызов blit_rect() принимает как минимум прямоугольник (область для отрисовки) и другую текстуру (что именно нужно отрисовать). Вызовы отрисовки используют шейдер Texture_Blit для обработки и вычисления результата, пиксель за пикселем. Пользователи могут предоставлять собственные ShaderMaterial с пользовательскими шейдерами Texture_Blit для более сложных сценариев поведения.

Свойства

bool

resource_local_to_scene

false (overrides Resource)

Методы

void

blit_rect(rect: Rect2i, source: Texture2D, modulate: Color = Color(1, 1, 1, 1), mipmap: int = 0, material: Material = null)

void

blit_rect_multi(rect: Rect2i, sources: Array[Texture2D], extra_targets: Array[DrawableTexture2D], modulate: Color = Color(1, 1, 1, 1), mipmap: int = 0, material: Material = null)

void

generate_mipmaps()

bool

get_use_mipmaps() const

void

set_format(format: DrawableFormat)

void

set_use_mipmaps(mipmaps: bool)

void

setup(width: int, height: int, format: DrawableFormat, color: Color = Color(1, 1, 1, 1), use_mipmaps: bool = false)


Перечисления

enum DrawableFormat: 🔗

DrawableFormat DRAWABLE_FORMAT_RGBA8 = 0

Текстурный формат OpenGL RGBA, состоящий из четырех компонентов, каждый с 8-битной глубиной цвета.

DrawableFormat DRAWABLE_FORMAT_RGBA8_SRGB = 1

Текстурный формат OpenGL RGBA с четырьмя компонентами, каждый с 8-битной глубиной цвета.

При отрисовке выполняется преобразование цветового пространства sRGB в линейное.

DrawableFormat DRAWABLE_FORMAT_RGBAH = 2

Текстурный формат OpenGL GL_RGBA16F, состоящий из четырех компонентов, каждый из которых представляет собой 16-битное значение с плавающей запятой "половинной точности".

DrawableFormat DRAWABLE_FORMAT_RGBAF = 3

Текстурный формат OpenGL GL_RGBA32F, состоящий из четырех компонентов, каждый из которых представляет собой 32-битное значение с плавающей запятой.


Описания метода

void blit_rect(rect: Rect2i, source: Texture2D, modulate: Color = Color(1, 1, 1, 1), mipmap: int = 0, material: Material = null) 🔗

Экспериментальное: Этот метод может быть изменён или удалён в будущих версиях.

Рисует на заданном rect участке этой текстуры, копируя изображение из заданного source. В качестве цвета для шейдера можно передать modulate, но по умолчанию он белый. Значение mipmap позволяет указать отрисовку на более низком уровне мипмапа. Параметр material может принимать объект ShaderMaterial с шейдером TextureBlit для настройки поведения отрисовки.


void blit_rect_multi(rect: Rect2i, sources: Array[Texture2D], extra_targets: Array[DrawableTexture2D], modulate: Color = Color(1, 1, 1, 1), mipmap: int = 0, material: Material = null) 🔗

Экспериментальное: Этот метод может быть изменён или удалён в будущих версиях.

Рисует на заданном rect участке этой текстуры, а также на не более чем 3 объектах DrawableTexture extra_targets. Все extra_targets должны иметь тот же размер и формат DrawableFormat, что и исходный целевой объект, иначе шейдер может завершиться ошибкой. Ожидает до 4 объектов Texture sources, но заменит отсутствующие sources текстурами Black по умолчанию.


void generate_mipmaps() 🔗

Пересчитывает мипмапы для этой текстуры по запросу.


bool get_use_mipmaps() const 🔗

Возвращает true, если для этого объекта DrawableTexture задано использование мипмапов.


void set_format(format: DrawableFormat) 🔗

Задает формат этого DrawableTexture.


void set_use_mipmaps(mipmaps: bool) 🔗

Определяет, следует ли использовать мипмапы для этого объекта DrawableTexture.


void setup(width: int, height: int, format: DrawableFormat, color: Color = Color(1, 1, 1, 1), use_mipmaps: bool = false) 🔗

Экспериментальное: Этот метод может быть изменён или удалён в будущих версиях.

Инициализирует DrawableTexture белой текстурой заданных параметров: width, height и format.