reckfellENGINE

RDTextureView

Формат и выбор каналов при чтении GPU-текстуры.

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

RDTextureView — описание интерпретации текстуры для TextureCreate или TextureCreateShared. Это не Texture2D для интерфейса, не viewport и не прямоугольник обрезки изображения. По умолчанию FormatOverride=DataFormat.Max наследует базовый формат, а SwizzleR/G/B/A выбирают соответствующие входные каналы.

Swizzle определяет источник каждого выходного канала: R/G/B/A либо Zero/One. Например, SwizzleR=B и SwizzleB=R меняют выбор красного и синего при чтении через представление. Они не переставляют байты хранилища и не изменяют UV. Вызов TextureGetData возвращает данные хранения, а не картинку после shader sampling.

Для другого FormatOverride подготовьте базовый RDTextureFormat: если список shareable-форматов непустой, в нём должны быть базовый формат и нужный override. Поддержка зависит от устройства и совместимости форматов. R8G8B8A8Srgb описывает цветовую интерпретацию; это не произвольное преобразование размеров или кодирование нового файла. Shared-путь может использовать зависимый от драйвера fallback, поэтому обещать всегда нулевую стоимость копирования нельзя.

TextureCreateShared возвращает отдельный RID, зависимый от исходной текстуры. Пока он нужен, сохраняйте владельца. Освобождайте собственные представления через то же RenderingDevice.FreeRid; освобождение владельца делает зависимые представления недействительными. Скопированный Rid.IsValid всё ещё может быть true, потому что проверяет ненулевой идентификатор; состояние текстуры проверяется через TextureIsValid на нужном устройстве. Не освобождайте borrowed RID чужого framebuffer.

Описание, созданное через new RDTextureView, принадлежит вашему коду и может быть Dispose после вызова создания. Его последующее изменение не перенастраивает уже созданное GPU-представление. Основное RenderingDevice заимствовано; работайте в render-thread callback и не Dispose его.

Выполненная проверка Windows/Vulkan Forward+ создала отдельные swizzled/sRGB-представления, прочитала исходные байты и проверила инвалидирование при освобождении владельца. Отображение swizzle и преобразование sRGB в шейдере не проверялись; предупреждение загрузчика Vulkan сохранено. Пример создания текстуры: RDTextureFormat.

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

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

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

Создаёт описание представления: FormatOverride=DataFormat.Max и соответствие каналов R→R, G→G, B→B, A→A. Не выделяет GPU-представление и не владеет текстурой. Созданное вами описание можно Dispose после TextureCreate или TextureCreateShared.

Свойства5

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

Формат представления, изначально DataFormat.Max — наследовать формат текстуры. Max здесь служебное значение, а не допустимый формат хранения RDTextureFormat. Другой формат должен быть разрешён списком AddShareableFormat и совместим с устройством; это не универсальный конвертер изображений.

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

Источник выходного канала A при чтении через представление, изначально TextureSwizzle.A. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала B при чтении через представление, изначально TextureSwizzle.B. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала G при чтении через представление, изначально TextureSwizzle.G. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала R при чтении через представление, изначально TextureSwizzle.R. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

Методы10

GetFormatOverrideRenderingDevice.DataFormat
# GetFormatOverride
C#
public RenderingDevice.DataFormat GetFormatOverride();

Возвращает сохранённое значение FormatOverride из описания. Формат представления, изначально DataFormat.Max — наследовать формат текстуры. Max здесь служебное значение, а не допустимый формат хранения RDTextureFormat. Другой формат должен быть разрешён списком AddShareableFormat и совместим с устройством; это не универсальный конвертер изображений.

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

Сохранённое FormatOverride этого описания; не запрос текущего GPU-ресурса.

GetSwizzleARenderingDevice.TextureSwizzle
# GetSwizzleA
C#
public RenderingDevice.TextureSwizzle GetSwizzleA();

Возвращает сохранённое значение SwizzleA из описания. Источник выходного канала A при чтении через представление, изначально TextureSwizzle.A. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Сохранённое SwizzleA этого описания; не запрос текущего GPU-ресурса.

GetSwizzleBRenderingDevice.TextureSwizzle
# GetSwizzleB
C#
public RenderingDevice.TextureSwizzle GetSwizzleB();

Возвращает сохранённое значение SwizzleB из описания. Источник выходного канала B при чтении через представление, изначально TextureSwizzle.B. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Сохранённое SwizzleB этого описания; не запрос текущего GPU-ресурса.

GetSwizzleGRenderingDevice.TextureSwizzle
# GetSwizzleG
C#
public RenderingDevice.TextureSwizzle GetSwizzleG();

Возвращает сохранённое значение SwizzleG из описания. Источник выходного канала G при чтении через представление, изначально TextureSwizzle.G. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Сохранённое SwizzleG этого описания; не запрос текущего GPU-ресурса.

GetSwizzleRRenderingDevice.TextureSwizzle
# GetSwizzleR
C#
public RenderingDevice.TextureSwizzle GetSwizzleR();

Возвращает сохранённое значение SwizzleR из описания. Источник выходного канала R при чтении через представление, изначально TextureSwizzle.R. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Сохранённое SwizzleR этого описания; не запрос текущего GPU-ресурса.

SetFormatOverridevoid
# SetFormatOverride
C#
public void SetFormatOverride(RenderingDevice.DataFormat pMember);

Сохраняет FormatOverride без выделения GPU-памяти и проверки готовности всей конфигурации. Формат представления, изначально DataFormat.Max — наследовать формат текстуры. Max здесь служебное значение, а не допустимый формат хранения RDTextureFormat. Другой формат должен быть разрешён списком AddShareableFormat и совместим с устройством; это не универсальный конвертер изображений.

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

Формат представления, изначально DataFormat.Max — наследовать формат текстуры. Max здесь служебное значение, а не допустимый формат хранения RDTextureFormat. Другой формат должен быть разрешён списком AddShareableFormat и совместим с устройством; это не универсальный конвертер изображений.

SetSwizzleAvoid
# SetSwizzleA
C#
public void SetSwizzleA(RenderingDevice.TextureSwizzle pMember);

Сохраняет SwizzleA без выделения GPU-памяти и проверки готовности всей конфигурации. Источник выходного канала A при чтении через представление, изначально TextureSwizzle.A. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала A при чтении через представление, изначально TextureSwizzle.A. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

SetSwizzleBvoid
# SetSwizzleB
C#
public void SetSwizzleB(RenderingDevice.TextureSwizzle pMember);

Сохраняет SwizzleB без выделения GPU-памяти и проверки готовности всей конфигурации. Источник выходного канала B при чтении через представление, изначально TextureSwizzle.B. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала B при чтении через представление, изначально TextureSwizzle.B. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

SetSwizzleGvoid
# SetSwizzleG
C#
public void SetSwizzleG(RenderingDevice.TextureSwizzle pMember);

Сохраняет SwizzleG без выделения GPU-памяти и проверки готовности всей конфигурации. Источник выходного канала G при чтении через представление, изначально TextureSwizzle.G. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала G при чтении через представление, изначально TextureSwizzle.G. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

SetSwizzleRvoid
# SetSwizzleR
C#
public void SetSwizzleR(RenderingDevice.TextureSwizzle pMember);

Сохраняет SwizzleR без выделения GPU-памяти и проверки готовности всей конфигурации. Источник выходного канала R при чтении через представление, изначально TextureSwizzle.R. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

Источник выходного канала R при чтении через представление, изначально TextureSwizzle.R. Можно выбрать входной R/G/B/A либо константу Zero/One. Перестановка не переписывает сохранённые байты, не меняет UV и не заменяет настройку формата.

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

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

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

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