reckfellENGINE

Texture2D

Базовый ресурс двумерной текстуры для интерфейса, 2D и материалов 3D.

На этой странице
class Texture2DReckfellSharpНаследует Texture

Texture2D задаёт общий контракт текстур, а не загружает файл своим конструктором. Для импортированных ресурсов используйте ResourceLoader.Load<Texture2D>; для создаваемых пикселей — ImageTexture, для SVG — DpiTexture. Один ресурс может использоваться несколькими объектами; изменение ресурса влияет на всех его пользователей.

GetSize возвращает логический размер. GetImage читает данные, доступные конкретной реализации; после size override его разрешение может отличаться от GetSize. Не считайте HasAlpha доказательством прозрачных пикселей. В текущем ImageTexture запросы HasMipmaps/GetMipmapCount могут возвращать false/0 при наличии цепочки в GetImage; это подтверждённое ограничение этой реализации.

Draw, DrawRect и DrawRectRegion отправляют 2D-команды для CanvasItem. Они не назначают текстуру материалу 3D. transpose переставляет оси; srcRect использует координаты текстуры, не нормализованные UV. Для собственных ресурсов методы с подчёркиванием — hooks реализации; вызовы публичных методов и hooks выполняют разные роли.

Проверены виртуальная диспетчеризация, параметры рисования, placeholder и запросы ресурса в Windows Forward+/Vulkan. Визуальный результат transpose/tile/clip, произвольные подклассы и использование в 3D этими проверками не подтверждены. Максимальный размер и потребление памяти зависят от backend, GPU и формата; одно число не гарантирует успешное выделение.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

Texture2DКонструктор
# Texture2D
C#
public Texture2D();

Создаёт базовый ресурс Texture2D, но не загружает изображение и не выделяет готовую текстуру с пикселями. Обычно используйте конкретный подкласс или ResourceLoader.Load<Texture2D>. В собственном подклассе реализуйте необходимые методы размеров и данных.

Методы23

CreatePlaceholderResource
# CreatePlaceholder
C#
public Resource CreatePlaceholder();

Создаёт отдельный PlaceholderTexture2D с текущим логическим размером. Исходные пиксели, формат и цепочка mipmaps не копируются. Используйте как заменитель ресурса, а не как уменьшенную копию изображения.

Возвращает Resource

Resource, фактически PlaceholderTexture2D с логическим размером оригинала, без исходных пикселей.

Drawvoid
# Draw
C#
public void Draw(Rid canvasItem, Vector2 position, Color? modulate = default, bool transpose = false);

Рисует всю текстуру с верхним левым углом position и её логическим размером. modulate умножает цвет, null в C# означает белый. transpose переставляет оси; не считайте его универсальным поворотом на 90°. Используйте действительный RID CanvasItem, например GetCanvasItem() внутри _Draw своего Entity2D/Control. Для повторной отрисовки после изменения состояния вызовите QueueRedraw у CanvasItem. Это 2D-команда, не назначение материала 3D.

Параметры
ИмяТипПо умолчанию
canvasItemRid—
positionVector2—
modulateColor?default
transposeboolfalse
canvasItem

Заимствованный действительный RID целевого CanvasItem; это не RID текстуры.

position

Верхний левый угол в локальных координатах целевого CanvasItem.

modulate

Множитель RGBA; null в nullable-параметре публичного C#-метода означает белый, в hook передаётся уже конкретный Color.

transpose

Переставить оси при рисовании; не произвольный угол вращения.

DrawRectvoid
# DrawRect
C#
public void DrawRect(Rid canvasItem, Rect2 rect, bool tile, Color? modulate = default, bool transpose = false);

Рисует текстуру в прямоугольнике rect. При tile = false изображение растягивается, при true повторяется для заполнения области. modulate умножает цвет; transpose переставляет оси, а не задаёт произвольный угол. Используйте действительный RID CanvasItem, например GetCanvasItem() внутри _Draw своего Entity2D/Control. Для повторной отрисовки после изменения состояния вызовите QueueRedraw у CanvasItem. Это 2D-команда, не назначение материала 3D.

Параметры
ИмяТипПо умолчанию
canvasItemRid—
rectRect2—
tilebool—
modulateColor?default
transposeboolfalse
canvasItem

Заимствованный действительный RID целевого CanvasItem; это не RID текстуры.

rect

Прямоугольник назначения в локальных координатах CanvasItem.

tile

Повторять текстуру вместо растяжения на rect.

modulate

Множитель RGBA; null в nullable-параметре публичного C#-метода означает белый, в hook передаётся уже конкретный Color.

transpose

Переставить оси при рисовании; не произвольный угол вращения.

DrawRectRegionvoid
# DrawRectRegion
C#
public void DrawRectRegion(Rid canvasItem, Rect2 rect, Rect2 srcRect, Color? modulate = default, bool transpose = false, bool clipUV = true);

Рисует область srcRect в rect. Область источника задана в координатах текстуры, не нормализованных UV 0…1. clipUV ограничивает выборку областью источника; это не clipping геометрии CanvasItem. modulate по умолчанию белый. Используйте действительный RID CanvasItem, например GetCanvasItem() внутри _Draw своего Entity2D/Control. Для повторной отрисовки после изменения состояния вызовите QueueRedraw у CanvasItem. Это 2D-команда, не назначение материала 3D.

Параметры
ИмяТипПо умолчанию
canvasItemRid—
rectRect2—
srcRectRect2—
modulateColor?default
transposeboolfalse
clipUVbooltrue
canvasItem

Заимствованный действительный RID целевого CanvasItem; это не RID текстуры.

rect

Прямоугольник назначения в локальных координатах CanvasItem.

srcRect

Прямоугольник источника в координатах текстуры; не UV 0…1.

modulate

Множитель RGBA; null в nullable-параметре публичного C#-метода означает белый, в hook передаётся уже конкретный Color.

transpose

Переставить оси при рисовании; не произвольный угол вращения.

clipUV

Ограничить выборку областью источника; по умолчанию true у публичного метода.

GetFormatImage.Format
# GetFormat
C#
public Image.Format GetFormat();

Возвращает формат изображения, предоставленный реализацией текстуры. У базовой реализации без _GetFormat результат Image.Format.Max означает отсутствие конкретного формата; не передавайте его как формат нового Image. Формат не является информацией о цветовом пространстве материала.

Возвращает Image.Format

Формат реализации либо Image.Format.Max без поставщика.

GetHeightint
# GetHeight
C#
public int GetHeight();

Возвращает логическую высоту текстуры; size override может отличать её от высоты GetImage. В собственном подклассе значение предоставляет _GetHeight.

Возвращает int

Логическая высота в единицах текстуры.

GetImageImage
# GetImage
C#
public Image GetImage();

Получает Image с данными текстуры, если реализация их предоставляет. Для импортированного CompressedTexture2D это снимок с возможным чтением из GPU: изменение Image не обновляет исходную текстуру. Не вызывайте чтение каждый кадр без необходимости.

Возвращает Image

Image с доступными данными либо null, если реализация не предоставляет изображение. Не считайте формат всегда несжатым RGBA8.

GetMipmapCountint
# GetMipmapCount
C#
public int GetMipmapCount();

Возвращает число дополнительных уровней mipmaps от реализации; основной уровень не включается. Базовый результат без _GetMipmapCount — 0. В текущем ImageTexture он может оставаться 0 при наличии mipmaps в GetImage. Не рассчитывайте размер хранилища по неподтверждённому результату.

Возвращает int

Число дополнительных уровней от реализации; 0 у базы.

GetSizeVector2
# GetSize
C#
public Vector2 GetSize();

Возвращает Vector2 из GetWidth и GetHeight в логических единицах текстуры. Это не мировой размер Sprite2D, не размер Control и не обязательно физическое разрешение GetImage после override.

Возвращает Vector2

Vector2 из текущих логических ширины и высоты.

GetWidthint
# GetWidth
C#
public int GetWidth();

Возвращает логическую ширину текстуры. У ресурса с size override она может отличаться от ширины GetImage. В собственном подклассе значение предоставляет _GetWidth; не выводите разрешение GPU-хранилища только из этого метода.

Возвращает int

Логическая ширина в единицах текстуры.

HasAlphabool
# HasAlpha
C#
public bool HasAlpha();

Возвращает признак поддержки альфы от реализации; не проверяет каждый пиксель на прозрачность. У базовой реализации без _HasAlpha результат true. Поэтому true не доказывает наличие хотя бы одного прозрачного пикселя.

Возвращает bool

Признак поддержки альфы; не факт наличия прозрачных пикселей.

HasMipmapsbool
# HasMipmaps
C#
public bool HasMipmaps();

Возвращает признак mipmaps от реализации; у базы без _HasMipmaps — false. В текущем ImageTexture этот запрос может вернуть false при наличии цепочки в GetImage, поскольку подкласс не переопределяет нативный метод. Не используйте его как единственную проверку пиксельных данных всех типов текстур.

Возвращает bool

Значение реализации; false у базового контракта.

_Drawvoid
# _Draw
C#
public virtual void _Draw(Rid toCanvasItem, Vector2 pos, Color modulate, bool transpose);

Переопределение Draw для собственного Texture2D. Если hook обработал вызов, базовая команда рисования не добавляется автоматически; отправьте нужные команды самостоятельно. Не вызывайте из него тот же метод на this: получится рекурсия. Рисует всю текстуру с верхним левым углом position и её логическим размером. modulate умножает цвет, null в C# означает белый. transpose переставляет оси; не считайте его универсальным поворотом на 90°. Используйте действительный RID CanvasItem, например GetCanvasItem() внутри _Draw своего Entity2D/Control. Для повторной отрисовки после изменения состояния вызовите QueueRedraw у CanvasItem. Это 2D-команда, не назначение материала 3D.

Параметры
ИмяТипПо умолчанию
toCanvasItemRid—
posVector2—
modulateColor—
transposebool—
toCanvasItem

Действительный RID CanvasItem, переданный нативным вызовом.

pos

Верхний левый угол в локальных координатах целевого CanvasItem.

modulate

Множитель RGBA; null в nullable-параметре публичного C#-метода означает белый, в hook передаётся уже конкретный Color.

transpose

Переставить оси при рисовании; не произвольный угол вращения.

_DrawRectvoid
# _DrawRect
C#
public virtual void _DrawRect(Rid toCanvasItem, Rect2 rect, bool tile, Color modulate, bool transpose);

Переопределение DrawRect для собственного Texture2D. Если hook обработал вызов, базовая команда рисования не добавляется автоматически; отправьте нужные команды самостоятельно. Не вызывайте из него тот же метод на this: получится рекурсия. Рисует текстуру в прямоугольнике rect. При tile = false изображение растягивается, при true повторяется для заполнения области. modulate умножает цвет; transpose переставляет оси, а не задаёт произвольный угол. Используйте действительный RID CanvasItem, например GetCanvasItem() внутри _Draw своего Entity2D/Control. Для повторной отрисовки после изменения состояния вызовите QueueRedraw у CanvasItem. Это 2D-команда, не назначение материала 3D.

Параметры
ИмяТипПо умолчанию
toCanvasItemRid—
rectRect2—
tilebool—
modulateColor—
transposebool—
toCanvasItem

Действительный RID CanvasItem, переданный нативным вызовом.

rect

Прямоугольник назначения в локальных координатах CanvasItem.

tile

Повторять текстуру вместо растяжения на rect.

modulate

Множитель RGBA; null в nullable-параметре публичного C#-метода означает белый, в hook передаётся уже конкретный Color.

transpose

Переставить оси при рисовании; не произвольный угол вращения.

_DrawRectRegionvoid
# _DrawRectRegion
C#
public virtual void _DrawRectRegion(Rid toCanvasItem, Rect2 rect, Rect2 srcRect, Color modulate, bool transpose, bool clipUV);

Переопределение DrawRectRegion для собственного Texture2D. Если hook обработал вызов, базовая команда рисования не добавляется автоматически; отправьте нужные команды самостоятельно. Не вызывайте из него тот же метод на this: получится рекурсия. Рисует область srcRect в rect. Область источника задана в координатах текстуры, не нормализованных UV 0…1. clipUV ограничивает выборку областью источника; это не clipping геометрии CanvasItem. modulate по умолчанию белый. Используйте действительный RID CanvasItem, например GetCanvasItem() внутри _Draw своего Entity2D/Control. Для повторной отрисовки после изменения состояния вызовите QueueRedraw у CanvasItem. Это 2D-команда, не назначение материала 3D.

Параметры
ИмяТипПо умолчанию
toCanvasItemRid—
rectRect2—
srcRectRect2—
modulateColor—
transposebool—
clipUVbool—
toCanvasItem

Действительный RID CanvasItem, переданный нативным вызовом.

rect

Прямоугольник назначения в локальных координатах CanvasItem.

srcRect

Прямоугольник источника в координатах текстуры; не UV 0…1.

modulate

Множитель RGBA; null в nullable-параметре публичного C#-метода означает белый, в hook передаётся уже конкретный Color.

transpose

Переставить оси при рисовании; не произвольный угол вращения.

clipUV

Ограничить выборку областью источника; по умолчанию true у публичного метода.

_GetFormatImage.Format
# _GetFormat
C#
public virtual Image.Format _GetFormat();

Поставщик формата для собственного Texture2D. Верните конкретный Image.Format, соответствующий предоставляемому изображению; без реализации базовый GetFormat возвращает Max. Не меняет формат GPU-текстуры автоматически.

Возвращает Image.Format

Конкретный формат предоставляемых данных изображения.

_GetHeightint
# _GetHeight
C#
public virtual int _GetHeight();

Переопределите для собственного Texture2D: верните логическую высоту. Нативные GetHeight и GetSize используют этот контракт. Согласуйте размеры с собственной реализацией рисования.

Возвращает int

Логическая высота собственной текстуры.

_GetImageImage
# _GetImage
C#
public virtual Image _GetImage();

Поставщик Image для собственного Texture2D. Верните доступные данные либо null, если чтение не поддерживается. В тестовом подклассе возвращаются независимые изображения; базовый API не заставляет каждый подкласс копировать данные одинаково. Не освобождайте возвращаемый ресурс до передачи вызывающему коду.

Возвращает Image

Image с доступными данными либо null.

_GetMipmapCountint
# _GetMipmapCount
C#
public virtual int _GetMipmapCount();

Поставщик числа дополнительных mipmap-уровней собственного Texture2D, без основного уровня. Согласуйте с _HasMipmaps и фактическими данными. Без реализации базовый результат 0.

Возвращает int

Количество дополнительных уровней, без основного.

_GetWidthint
# _GetWidth
C#
public virtual int _GetWidth();

Переопределите для собственного Texture2D: верните его логическую ширину. Нативные GetWidth и GetSize обращаются к этому контракту. Это запрос данных, а не место загрузки ресурса каждый кадр.

Возвращает int

Логическая ширина собственной текстуры.

_HasAlphabool
# _HasAlpha
C#
public virtual bool _HasAlpha();

Поставщик признака поддержки альфы для собственного Texture2D. Это декларация реализации, а не сканирование пикселей. Без переопределения базовый HasAlpha возвращает true.

Возвращает bool

Признак поддержки альфы собственного ресурса.

_HasMipmapsbool
# _HasMipmaps
C#
public virtual bool _HasMipmaps();

Поставщик признака mipmaps для собственного Texture2D; согласуйте с _GetMipmapCount и данными _GetImage. Без переопределения базовый результат false; создание цепочки в отдельном Image не меняет этот контракт автоматически.

Возвращает bool

Есть ли у предоставляемых данных цепочка mipmaps.

_IsPixelOpaquebool
# _IsPixelOpaque
C#
public virtual bool _IsPixelOpaque(int x, int y);

Переопределение проверки пикселя для собственного Texture2D; вызывается нативными потребителями, например Sprite2D.IsPixelOpaque. Координаты локальны для текстуры, не для экрана. Обработайте границы в своей реализации. Без переопределения базовый результат true. Это не автоматическая физическая коллизия.

Параметры
ИмяТипПо умолчанию
xint—
yint—
x

Целочисленная горизонтальная координата пикселя текстуры.

y

Целочисленная вертикальная координата пикселя текстуры.

Возвращает bool

true для пикселя, который ваша реализация считает непрозрачным, иначе false.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.