reckfellENGINE

DpiTexture

SVG-текстура для масштабируемого интерфейса.

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

DpiTexture хранит SVG и создаёт растровые варианты для масштабируемого интерфейса. Это ресурс для иконок и других векторных элементов, а не универсальный SVG-документ с браузерным API. BaseScale определяет базовое разрешение; SetSizeOverride меняет только логический размер. При рисовании могут использоваться варианты для oversampling текущего CanvasItem.

Палитру изменяйте через копию: Duplicate словаря до изменения, затем SetColorMap с изменённой копией. Изменение разделяемого ColorMap на месте не обновляет внутреннюю палитру. PremultAlpha требует согласованного режима смешивания материала. Для плагинов см. подготовку и импорт SVG.

Источник, масштаб, палитра и флаги сохраняются вместе с ресурсом; логический size override не сохраняется. Проверены ресурсные операции и пиксели в Windows Forward+/Vulkan. Рисование при разных уровнях oversampling, ручная смена DPI/темы и визуальная оценка краёв здесь не подтверждены.

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

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

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

Создаёт пустой ресурс: источник пуст, BaseScale и Saturation равны 1, флаги выключены, палитра пуста. До запроса размеров, изображения или RID задайте корректный SVG через SetSource. Конструктор сам по себе не создаёт готовую иконку.

Свойства6

BaseScaleСвойство
# BaseScale
C#
public float BaseScale { get; set; }

Базовый множитель растеризации SVG; по умолчанию 1. Значение 2 даёт вдвое больше пикселей по каждой оси и меняет естественный размер текстуры. Передавайте положительное конечное значение. Подсказка инспектора 0.01…10 не ограничивает setter этим диапазоном. Изменение сбрасывает кэш.

ColorMapСвойство
# ColorMap
C#
public Reckfell.Collections.Dictionary ColorMap { get; set; }

Словарь замен Color → Color; по умолчанию пуст. Не изменяйте полученный словарь на месте: сохранённое содержимое может измениться без обновления внутренней палитры и изображения. Сначала Duplicate словаря, затем изменение копии и назначение обратно. Setter пропускает словари с равным содержимым. Это не автоматическая тема редактора.

FixAlphaBorderСвойство
# FixAlphaBorder
C#
public bool FixAlphaBorder { get; set; }

По умолчанию false. Перед загрузкой в GPU исправляет RGB прозрачных краевых пикселей соседними цветами. Может уменьшать тёмную кайму при фильтрации; не добавляет непрозрачную обводку и не гарантирует исправление любого изображения. Изменение сбрасывает кэш.

PremultAlphaСвойство
# PremultAlpha
C#
public bool PremultAlpha { get; set; }

По умолчанию false. При растеризации умножает RGB на альфу, сохраняя саму альфу. Нужен согласованный режим смешивания: например, CanvasItemMaterial.BlendModeEnum.PremultAlpha или blend_premul_alpha в canvas_item-шейдере. Это преобразование данных, а не включение прозрачности на материале.

SaturationСвойство
# Saturation
C#
public float Saturation { get; set; }

Множитель насыщенности; по умолчанию 1, значение 0 даёт оттенки серого. Setter не ограничивает значение диапазоном подсказки инспектора 0…1. Для обычного интерфейса используйте конечные значения 0…1. Изменение сбрасывает кэш изображения.

_SourceСвойство
# _Source
C#
public string _Source { get; set; }

Внутреннее сохраняемое свойство исходного SVG, связанное с SetSource/GetSource. В обычном коде используйте эти методы. Содержит текст, не URI; изменение вызывает тот же сброс кэша. Это не второй отдельный источник изображения.

Методы15

CreateFromStringDpiTexture
# CreateFromString
C#
public static DpiTexture CreateFromString(string source, float scale = 1f, float saturation = 1f, Reckfell.Collections.Dictionary colorMap = null);

Создаёт отдельный DpiTexture и задаёт SVG, масштаб, насыщенность и палитру. Это не проверка синтаксиса SVG: растеризация выполняется лениво при запросе изображения, размеров или RID. Фабрика не возвращает Error. Передавайте корректный SVG и положительный конечный scale.

Параметры
ИмяТипПо умолчанию
sourcestring—
scalefloat1f
saturationfloat1f
colorMapReckfell.Collections.Dictionarynull
source

Корректный текст SVG, не путь к файлу.

scale

Положительный конечный базовый масштаб; по умолчанию 1.

saturation

Конечный множитель насыщенности; по умолчанию 1.

colorMap

Необязательный словарь Color → Color; null использует пустой. Не изменяйте разделяемый словарь после назначения.

Возвращает DpiTexture

Новый ресурс; вызывающий код владеет своей ссылкой. Создание не доказывает корректность SVG.

GetBaseScalefloat
# GetBaseScale
C#
public float GetBaseScale();

Возвращает BaseScale. Базовый множитель растеризации SVG; по умолчанию 1. Значение 2 даёт вдвое больше пикселей по каждой оси и меняет естественный размер текстуры. Передавайте положительное конечное значение. Подсказка инспектора 0.01…10 не ограничивает setter этим диапазоном. Изменение сбрасывает кэш.

Возвращает float

Текущий базовый множитель; по умолчанию 1.

GetColorMapReckfell.Collections.Dictionary
# GetColorMap
C#
public Reckfell.Collections.Dictionary GetColorMap();

Возвращает ColorMap. Словарь замен Color → Color; по умолчанию пуст. Не изменяйте полученный словарь на месте: сохранённое содержимое может измениться без обновления внутренней палитры и изображения. Сначала Duplicate словаря, затем изменение копии и назначение обратно. Setter пропускает словари с равным содержимым. Это не автоматическая тема редактора.

Возвращает Reckfell.Collections.Dictionary

Разделяемый словарь замен; копируйте до изменения.

GetFixAlphaBorderbool
# GetFixAlphaBorder
C#
public bool GetFixAlphaBorder();

Возвращает FixAlphaBorder. По умолчанию false. Перед загрузкой в GPU исправляет RGB прозрачных краевых пикселей соседними цветами. Может уменьшать тёмную кайму при фильтрации; не добавляет непрозрачную обводку и не гарантирует исправление любого изображения. Изменение сбрасывает кэш.

Возвращает bool

Текущее состояние исправления альфа-границ.

GetPremultAlphabool
# GetPremultAlpha
C#
public bool GetPremultAlpha();

Возвращает PremultAlpha. По умолчанию false. При растеризации умножает RGB на альфу, сохраняя саму альфу. Нужен согласованный режим смешивания: например, CanvasItemMaterial.BlendModeEnum.PremultAlpha или blend_premul_alpha в canvas_item-шейдере. Это преобразование данных, а не включение прозрачности на материале.

Возвращает bool

Текущее состояние умножения RGB на альфу.

GetSaturationfloat
# GetSaturation
C#
public float GetSaturation();

Возвращает Saturation. Множитель насыщенности; по умолчанию 1, значение 0 даёт оттенки серого. Setter не ограничивает значение диапазоном подсказки инспектора 0…1. Для обычного интерфейса используйте конечные значения 0…1. Изменение сбрасывает кэш изображения.

Возвращает float

Текущий множитель насыщенности; по умолчанию 1.

GetScaledRidRid
# GetScaledRid
C#
public Rid GetScaledRid();

Возвращает RID варианта для oversampling текущего рисуемого CanvasItem. Вне рисования при oversampling = 0 используется базовый масштаб 1. Дескриптор принадлежит ресурсу: не освобождайте его вручную и не считайте стабильным после изменения текстуры. Метод не задаёт масштаб окна или редактора.

Возвращает Rid

Заимствованный RID текущего варианта, либо базовый RID вне рисования.

GetSourcestring
# GetSource
C#
public string GetSource();

Возвращает сохранённый текст SVG, а не путь к файлу или растровые пиксели. Чтение строки не подтверждает успешную растеризацию.

Возвращает string

Сохранённая строка SVG; у нового ресурса может быть пустой.

SetBaseScalevoid
# SetBaseScale
C#
public void SetBaseScale(float baseScale);

Задаёт BaseScale. Базовый множитель растеризации SVG; по умолчанию 1. Значение 2 даёт вдвое больше пикселей по каждой оси и меняет естественный размер текстуры. Передавайте положительное конечное значение. Подсказка инспектора 0.01…10 не ограничивает setter этим диапазоном. Изменение сбрасывает кэш.

Параметры
ИмяТипПо умолчанию
baseScalefloat—
baseScale

Положительный конечный множитель растеризации.

SetColorMapvoid
# SetColorMap
C#
public void SetColorMap(Reckfell.Collections.Dictionary colorMap);

Задаёт ColorMap. Словарь замен Color → Color; по умолчанию пуст. Не изменяйте полученный словарь на месте: сохранённое содержимое может измениться без обновления внутренней палитры и изображения. Сначала Duplicate словаря, затем изменение копии и назначение обратно. Setter пропускает словари с равным содержимым. Это не автоматическая тема редактора.

Параметры
ИмяТипПо умолчанию
colorMapReckfell.Collections.Dictionary—
colorMap

Словарь Color → Color; изменяйте отдельную копию до назначения.

SetFixAlphaBordervoid
# SetFixAlphaBorder
C#
public void SetFixAlphaBorder(bool fixAlphaBorder);

Задаёт FixAlphaBorder. По умолчанию false. Перед загрузкой в GPU исправляет RGB прозрачных краевых пикселей соседними цветами. Может уменьшать тёмную кайму при фильтрации; не добавляет непрозрачную обводку и не гарантирует исправление любого изображения. Изменение сбрасывает кэш.

Параметры
ИмяТипПо умолчанию
fixAlphaBorderbool—
fixAlphaBorder

Включить исправление RGB у прозрачных краёв.

SetPremultAlphavoid
# SetPremultAlpha
C#
public void SetPremultAlpha(bool premultAlpha);

Задаёт PremultAlpha. По умолчанию false. При растеризации умножает RGB на альфу, сохраняя саму альфу. Нужен согласованный режим смешивания: например, CanvasItemMaterial.BlendModeEnum.PremultAlpha или blend_premul_alpha в canvas_item-шейдере. Это преобразование данных, а не включение прозрачности на материале.

Параметры
ИмяТипПо умолчанию
premultAlphabool—
premultAlpha

Умножать RGB на альфу при растеризации.

SetSaturationvoid
# SetSaturation
C#
public void SetSaturation(float saturation);

Задаёт Saturation. Множитель насыщенности; по умолчанию 1, значение 0 даёт оттенки серого. Setter не ограничивает значение диапазоном подсказки инспектора 0…1. Для обычного интерфейса используйте конечные значения 0…1. Изменение сбрасывает кэш изображения.

Параметры
ИмяТипПо умолчанию
saturationfloat—
saturation

Конечный множитель; для обычного UI используйте 0…1.

SetSizeOverridevoid
# SetSizeOverride
C#
public void SetSizeOverride(Vector2I size);

Задаёт логический размер без повторной растеризации SVG. При BaseScale = 2 SVG 16×16 даёт изображение 32×32; override 48×24 меняет GetWidth/GetHeight на 48×24, но GetImage остаётся 32×32. Ноль восстанавливает естественный размер соответствующей оси; Vector2I.Zero снимает override. Передавайте неотрицательные компоненты. Override не сохраняется как свойство ресурса. Для увеличения разрешения используйте BaseScale.

Параметры
ИмяТипПо умолчанию
sizeVector2I—
size

Неотрицательные логические размеры; 0 восстанавливает естественный размер этой оси.

SetSourcevoid
# SetSource
C#
public void SetSource(string source);

Заменяет исходный SVG и сбрасывает кэши изображения, RID и проверки альфы; одинаковая строка не вызывает обновление. Передавайте текст SVG, не asset://-путь. Этот void-метод не возвращает ошибку синтаксиса: она может проявиться при последующей растеризации.

Параметры
ИмяТипПо умолчанию
sourcestring—
source

Исходный текст корректного SVG.

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

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

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

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