reckfellENGINE

RDUniform

Описание вида ресурса, binding и RID для uniform set.

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

RDUniform описывает привязку ресурсов к одному binding шейдера. Он не выделяет буфер или текстуру и не заменяет uniform set. Номер set задаётся отдельно; вид ресурса и RID должны соответствовать layout и одному устройству.

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

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

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

Создаёт описание: Binding=0, UniformType=Image, список RID пустой. Не создаёт GPU-ресурс или uniform set. Перед использованием явно задайте тип, binding и RID, соответствующие layout шейдера.

Свойства3

BindingСвойство
# Binding
C#
public int Binding { get; set; }

Номер binding внутри набора set шейдера. Должен совпадать с GLSL layout(binding=...); номер set задаётся отдельно при создании и привязке набора.

UniformTypeСвойство
# UniformType
C#
public RenderingDevice.UniformType UniformType { get; set; }

Вид ресурса привязки, например StorageBuffer. Должен соответствовать объявлению шейдера и переданным RID; этот параметр не выделяет GPU-ресурс.

_IdsСвойство
# _Ids
C#
public Reckfell.Collections.Array<Rid> _Ids { get; set; }

Внутреннее свойство сериализации списка RID. Getter возвращает отдельный контейнер; изменение его элементов не меняет описание. Setter сначала очищает описание, затем добавляет ненулевые RID; ошибка в элементе может оставить частичный список. Для обычного кода используйте AddId/ClearIds, а не это свойство. Описание не владеет GPU-ресурсами.

Методы7

AddIdvoid
# AddId
C#
public void AddId(Rid id);

Добавляет RID в описание привязки. Ресурс должен принадлежать устройству будущего uniform set; добавление идентификатора не создаёт копию GPU-ресурса.

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

RID ресурса подходящего вида на том же устройстве.

ClearIdsvoid
# ClearIds
C#
public void ClearIds();

Очищает идентификаторы в описании привязки. Не освобождает сами GPU-ресурсы и не пересоздаёт уже созданный uniform set.

GetBindingint
# GetBinding
C#
public int GetBinding();

Возвращает сохранённый Binding, изначально 0. Это номер binding внутри set, не индекс set, не порядковый номер RDUniform в массиве и не запрос существующего GPU uniform set.

Возвращает int

Сохранённый номер binding; изначально 0.

GetIdsReckfell.Collections.Array<Rid>
# GetIds
C#
public Reckfell.Collections.Array<Rid> GetIds();

Возвращает новую коллекцию текущих RID описания. Изменение этой коллекции не редактирует описание; используйте AddId и ClearIds. GPU-ресурсы не копируются.

Возвращает Reckfell.Collections.Array<Rid>

Новая коллекция идентификаторов, ссылающихся на прежние ресурсы.

GetUniformTypeRenderingDevice.UniformType
# GetUniformType
C#
public RenderingDevice.UniformType GetUniformType();

Возвращает сохранённый тип, изначально UniformType.Image. Тип не определяется автоматически по RID: StorageBuffer и SamplerWithTexture нужно указывать явно. Соответствие layout проверяется при создании uniform set.

Возвращает RenderingDevice.UniformType

Сохранённый UniformType; изначально Image.

SetBindingvoid
# SetBinding
C#
public void SetBinding(int pMember);

Сохраняет номер binding в описании без проверки соответствия шейдеру. Отрицательный int может сохраниться, но не является корректным способом задать binding GLSL. Изменение не перенастраивает существующий uniform set; создайте новый set для другой привязки.

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

Новый номер binding из shader layout, не индекс descriptor set.

SetUniformTypevoid
# SetUniformType
C#
public void SetUniformType(RenderingDevice.UniformType pMember);

Сохраняет тип описания. Не конвертирует RID, не выделяет буфер и не меняет уже созданный set. Выберите тип по декларации shader layout; для combined sampler используйте SamplerWithTexture и пары sampler RID, texture RID.

Параметры
ИмяТипПо умолчанию
pMemberRenderingDevice.UniformType—
pMember

Тип ресурса из layout, например StorageBuffer или SamplerWithTexture; не определяется по RID автоматически.

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

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

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

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