Функции характеристик объекта RenderScript,Функции характеристик объекта RenderScript,Функции характеристик объекта RenderScript

Обзор

Приведенные ниже функции можно использовать для запроса характеристик объекта Allocation, Element или Sampler. Эти объекты созданы из Java. Вы не можете создать их из сценария.

Распределения:

Выделение — это основной метод, используемый для передачи данных в ядра RenderScript и обратно.

Они представляют собой структурированный набор ячеек, который можно использовать для хранения растровых изображений, текстур, произвольных точек данных и т. д.

Эта коллекция ячеек может иметь множество измерений (X, Y, Z, Массив0, Массив1, Массив2, Массив3), граней (для кубических карт) и уровня детализации (для мип-отображения).

Подробную информацию о создании распределений см. в android.renderscript.Allocation .

Элементы:

Термин «элемент» используется в RenderScript несколько неоднозначно, как для информации о типе ячеек выделения, так и для создания экземпляра этого типа. Например:

  • rs_element — это дескриптор спецификации типа, а
  • В таких функциях, как rsGetElementAt (), «элемент» означает создание экземпляра типа, то есть ячейку выделения.

Приведенные ниже функции позволяют запрашивать характеристики спецификации типа.

Элемент может указывать простые типы данных, такие как C, например целое число, число с плавающей запятой или логическое значение. Он также может указать дескриптор объекта RenderScript. См. список основных типов в rs_data_type .

Элементы могут указывать вектор фиксированного размера (размером 2, 3 или 4) версии базовых типов. Элементы можно группировать в сложные элементы, создавая эквивалент определений структур C.

Элементы также могут иметь вид — семантическую информацию, используемую для интерпретации данных пикселей. См. rs_data_kind .

При создании распределения общих элементов вы можете просто использовать один из множества предопределенных элементов, например F32_2 .

Для создания сложных элементов используйте Java-класс Element.Builder .

Сэмплеры:

Объекты сэмплеров определяют, как выделения могут быть прочитаны как структура внутри ядра. См. android.renderscript.S .

Краткое содержание

Функции
rsAllocationGetDimFaces Наличие более чем одного лица
rsAllocationGetDimLOD Наличие уровней детализации
rsAllocationGetDimX Размер X-размера
rsAllocationGetDimY Размер измерения Y
rsAllocationGetDimZ Размер размера Z
rsAllocationGetElement Получите объект, описывающий ячейку распределения.
rsClearObject Освободить объект
rsElementGetBytesSize Размер элемента
rsElementGetDataKind Вид элемента
rsElementGetDataType Тип данных элемента
rsElementGetSubElement Подэлемент сложного Элемента
rsElementGetSubElementArraySize Размер массива подэлемента сложного элемента
rsElementGetSubElementCount Количество подэлементов
rsElementGetSubElementName Имя подэлемента
rsElementGetSubElementNameLength Длина имени подэлемента
rsElementGetSubElementOffsetBytes Смещение созданного подэлемента
rsElementGetVectorSize Векторный размер элемента
rsIsObject Проверьте пустой дескриптор
rsSamplerGetAnisotropy Анизотропия семплера
rsSamplerGetMagnification Значение увеличения пробоотборника
rsSamplerGetMinification Значение минимизации сэмплера
rsSamplerGetWrapS Значение S обертки сэмплера
rsSamplerGetWrapT Значение T обертки пробоотборника
Устаревшие функции
rsGetAllocation Устарело . Вернуть выделение для данного указателя

Функции

rsAllocationGetDimFaces : наличие более одного лица.

uint32_t rsAllocationGetDimFaces ( rs_allocation a);
Возврат
Возвращает 1, если присутствует более одного лица, в противном случае — 0.

Если распределение является кубической картой, эта функция возвращает 1, если присутствует более одной грани. Во всех остальных случаях возвращается 0.

Используйте rsGetDimHasFaces (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimLOD : наличие уровней детализации.

uint32_t rsAllocationGetDimLOD ( rs_allocation a);
Возврат
Возвращает 1, если присутствует более одного уровня детализации, в противном случае — 0.

Запросить распределение на наличие более одного уровня детализации. Это полезно для MIP-карт.

Используйте rsGetDimLod (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimX : Размер измерения X.

uint32_t rsAllocationGetDimX ( rs_allocation a);
Возврат
X-размер распределения.

Возвращает размер измерения X распределения.

Используйте rsGetDimX (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimY : Размер измерения Y.

uint32_t rsAllocationGetDimY( rs_allocation a);
Возврат
Измерение Y распределения.

Возвращает размер измерения Y распределения. Если распределение имеет менее двух измерений, возвращается 0.

Используйте rsGetDimY (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimZ : Размер измерения Z.

uint32_t rsAllocationGetDimZ ( rs_allocation a);
Возврат
Z-размер распределения.

Возвращает размер измерения Z распределения. Если распределение имеет менее трех измерений, возвращается 0.

Используйте rsGetDimZ (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetElement : получить объект, описывающий ячейку выделения.

rs_element rsAllocationGetElement ( rs_allocation a);
Параметры
а Выделение, из которого нужно получить данные.
Возврат
Элемент, описывающий макет распределения.

Получите объект Element, описывающий тип, вид и другие характеристики ячейки распределения. См. функции rsElement* ниже.

rsClearObject : освободить объект.

void rsClearObject ( rs_allocation * dst);
void rsClearObject ( rs_element * dst);
void rsClearObject ( rs_font * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_mesh * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_program_fragment * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject( rs_program_raster * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject( rs_program_store * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_program_vertex * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_sampler * dst);
void rsClearObject( rs_script * dst);
void rsClearObject( rs_type * dst);

Сообщает среде выполнения, что этот дескриптор больше не будет использоваться для доступа к связанному объекту. Если это был последний дескриптор этого объекта, может произойти восстановление ресурса.

После вызова этой функции для *dst будет установлен пустой дескриптор. См. rsIsObject ().

rsElementGetBytesSize : Размер элемента.

uint32_t rsElementGetBytesSize( rs_element e); Добавлено на уровне API 16.

Возвращает размер в байтах, который будет занимать экземпляр этого элемента.

rsElementGetDataKind : вид элемента

rs_data_kind rsElementGetDataKind( rs_element e); Добавлено на уровне API 16.

Возвращает тип данных элемента. Это используется для интерпретации данных пикселей.

См. rs_data_kind .

rsElementGetDataType : тип данных элемента.

rs_data_type rsElementGetDataType( rs_element e); Добавлено на уровне API 16.

Возвращает базовый тип данных элемента. Это может быть тип, аналогичный C/C++ (например, RS_TYPE_UNSIGNED_8), дескриптор (например, RS_TYPE_ALLOCATION и RS_TYPE_ELEMENT) или более сложный числовой тип (например, RS_TYPE_UNSIGNED_5_6_5 и RS_TYPE_MATRIX_4X4). См. rs_data_type .

Если элемент описывает вектор, эта функция возвращает тип данных одного из его элементов. Используйте rsElementGetVectorSize , чтобы получить размер вектора.

Если элемент описывает структуру, возвращается RS_TYPE_NONE. Используйте функции rsElementGetSub*, чтобы изучить этот сложный Элемент.

rsElementGetSubElement : подэлемент сложного элемента.

rs_element rsElementGetSubElement( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент для запроса.
индекс Индекс возвращаемого подэлемента.
Возврат
Подэлемент по данному индексу.

Для элементов, представляющих структуру, эта функция возвращает подэлемент по указанному индексу.

Если элемент не является структурой или индекс больше или равен количеству подэлементов, возвращается недопустимый дескриптор.

rsElementGetSubElementArraySize : Размер массива подэлемента сложного элемента.

uint32_t rsElementGetSubElementArraySize( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент для запроса.
индекс Индекс подэлемента.
Возврат
Размер массива подэлемента.

Для сложных элементов подэлементы могут представлять собой массивы статического размера. Эта функция возвращает размер массива подэлемента по индексу. Это повторение подэлемента отличается от векторов фиксированного размера.

rsElementGetSubElementCount : количество подэлементов.

uint32_t rsElementGetSubElementCount( rs_element e); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
Возврат
Количество подэлементов.

Элементы могут быть простыми, например, int или float, или структурой с несколькими подэлементами. Эта функция возвращает ноль для простых элементов и количество подэлементов для сложных элементов.

rsElementGetSubElementName : имя подэлемента.

uint32_t rsElementGetSubElementName( rs_element e, uint32_t index, char* name, uint32_t nameLength); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
имя Адрес массива, в котором будет сохранено имя.
имяДлина Длина предоставленного массива имен.
Возврат
Количество скопированных символов, исключая нулевой терминатор.

Для сложных элементов эта функция возвращает имя подэлемента по указанному индексу.

rsElementGetSubElementNameLength : длина имени подэлемента.

uint32_t rsElementGetSubElementNameLength( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
Возврат
Длина имени подэлемента, включая нулевой терминатор.

Для сложных элементов эта функция возвращает длину имени подэлемента по указанному индексу.

rsElementGetSubElementOffsetBytes : смещение созданного подэлемента.

uint32_t rsElementGetSubElementOffsetBytes ( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
Возврат
Смещение в байтах.

Эта функция возвращает относительную позицию экземпляра указанного подэлемента в экземпляре Элемента.

Например, если элемент описывает 32-битное число с плавающей запятой, за которым следует 32-битное целое число, возврат смещения для первого будет 0, а для второго — 4.

rsElementGetVectorSize : векторный размер элемента.

uint32_t rsElementGetVectorSize( rs_element e); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
Возврат
Длина вектора элемента.

Возвращает размер вектора элемента. Если элемент не представляет вектор, возвращается 1.

rsGetAllocation : возвращает выделение для данного указателя.

rs_allocation rsGetAllocation(const void* p);

Устарело. Эта функция устарела и будет удалена из SDK в будущем выпуске.

Возвращает выделение для данного указателя. Указатель должен указывать на допустимое выделение. Результаты не определены, если указатель не принадлежит допустимому выделению.

rsIsObject : проверка пустого дескриптора.

bool rsIsObject( rs_allocation v);
bool rsIsObject( rs_element v);
bool rsIsObject( rs_font v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject ( rs_mesh v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_fragment v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_raster v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_store v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_vertex v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_sampler v);
bool rsIsObject( rs_script v);
bool rsIsObject( rs_type v);

Возвращает true, если дескриптор содержит ненулевую ссылку.

Эта функция не проверяет, что внутренний указатель, используемый в дескрипторе, указывает на действительный объект; он проверяет только ноль.

Эту функцию можно использовать для проверки элемента, возвращаемого функцией rsElementGetSubElement (), или для проверки того, был ли вызван rsClearObject () для дескриптора.

rsSamplerGetAnisotropy : анизотропия семплера.

float rsSamplerGetAnisotropy( rs_sampler s); Добавлено на уровне API 16.

Получите анизотропию Сэмплера.

См. android.renderscript.S .

rsSamplerGetMagnification : значение увеличения сэмплера.

rs_sampler_value rsSamplerGetMagnification( rs_sampler s); Добавлено на уровне API 16.

Получите значение увеличения Sampler.

См. android.renderscript.S .

rsSamplerGetMinification : значение минимизации семплера.

rs_sampler_value rsSamplerGetMinification( rs_sampler s); Добавлено на уровне API 16.

Получите значение минимизации Sampler.

См. android.renderscript.S .

rsSamplerGetWrapS : значение S переноса семплера.

rs_sampler_value rsSamplerGetWrapS( rs_sampler s); Добавлено на уровне API 16.

Получите значение S обертки Sampler.

См. android.renderscript.S .

rsSamplerGetWrapT : значение T переноса сэмплера

rs_sampler_value rsSamplerGetWrapT( rs_sampler s); Добавлено на уровне API 16.

Получите значение T обертки сэмплера.

См. android.renderscript.S .

,

Обзор

Приведенные ниже функции можно использовать для запроса характеристик объекта Allocation, Element или Sampler. Эти объекты созданы из Java. Вы не можете создать их из сценария.

Распределения:

Выделение — это основной метод, используемый для передачи данных в ядра RenderScript и обратно.

Они представляют собой структурированный набор ячеек, который можно использовать для хранения растровых изображений, текстур, произвольных точек данных и т. д.

Эта коллекция ячеек может иметь множество измерений (X, Y, Z, Массив0, Массив1, Массив2, Массив3), граней (для кубических карт) и уровня детализации (для мип-отображения).

Подробную информацию о создании распределений см. в android.renderscript.Allocation .

Элементы:

Термин «элемент» используется в RenderScript несколько неоднозначно, как для информации о типе ячеек выделения, так и для создания экземпляра этого типа. Например:

  • rs_element — это дескриптор спецификации типа, а
  • В таких функциях, как rsGetElementAt (), «элемент» означает создание экземпляра типа, то есть ячейку выделения.

Приведенные ниже функции позволяют запрашивать характеристики спецификации типа.

Элемент может указывать простые типы данных, такие как C, например целое число, число с плавающей запятой или логическое значение. Он также может указать дескриптор объекта RenderScript. См. список основных типов в rs_data_type .

Элементы могут указывать вектор фиксированного размера (размером 2, 3 или 4) версии базовых типов. Элементы можно группировать в сложные элементы, создавая эквивалент определений структур C.

Элементы также могут иметь вид — семантическую информацию, используемую для интерпретации данных пикселей. См. rs_data_kind .

При создании распределения общих элементов вы можете просто использовать один из множества предопределенных элементов, например F32_2 .

Для создания сложных элементов используйте Java-класс Element.Builder .

Сэмплеры:

Объекты сэмплеров определяют, как выделения могут быть прочитаны как структура внутри ядра. См. android.renderscript.S .

Краткое содержание

Функции
rsAllocationGetDimFaces Наличие более чем одного лица
rsAllocationGetDimLOD Наличие уровней детализации
rsAllocationGetDimX Размер X-размера
rsAllocationGetDimY Размер измерения Y
rsAllocationGetDimZ Размер размера Z
rsAllocationGetElement Получите объект, описывающий ячейку распределения.
rsClearObject Освободить объект
rsElementGetBytesSize Размер элемента
rsElementGetDataKind Вид элемента
rsElementGetDataType Тип данных элемента
rsElementGetSubElement Подэлемент сложного Элемента
rsElementGetSubElementArraySize Размер массива подэлемента сложного элемента
rsElementGetSubElementCount Количество подэлементов
rsElementGetSubElementName Имя подэлемента
rsElementGetSubElementNameLength Длина имени подэлемента
rsElementGetSubElementOffsetBytes Смещение созданного подэлемента
rsElementGetVectorSize Векторный размер элемента
rsIsObject Проверьте пустой дескриптор
rsSamplerGetAnisotropy Анизотропия семплера
rsSamplerGetMagnification Значение увеличения пробоотборника
rsSamplerGetMinification Значение минимизации сэмплера
rsSamplerGetWrapS Значение S обертки сэмплера
rsSamplerGetWrapT Значение T обертки пробоотборника
Устаревшие функции
rsGetAllocation Устарело . Вернуть выделение для данного указателя

Функции

rsAllocationGetDimFaces : наличие более одного лица.

uint32_t rsAllocationGetDimFaces ( rs_allocation a);
Возврат
Возвращает 1, если присутствует более одного лица, в противном случае — 0.

Если распределение является кубической картой, эта функция возвращает 1, если присутствует более одной грани. Во всех остальных случаях возвращается 0.

Используйте rsGetDimHasFaces (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimLOD : наличие уровней детализации.

uint32_t rsAllocationGetDimLOD ( rs_allocation a);
Возврат
Возвращает 1, если присутствует более одного уровня детализации, в противном случае — 0.

Запросить распределение на наличие более одного уровня детализации. Это полезно для MIP-карт.

Используйте rsGetDimLod (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimX : Размер измерения X.

uint32_t rsAllocationGetDimX ( rs_allocation a);
Возврат
X-размер распределения.

Возвращает размер измерения X распределения.

Используйте rsGetDimX (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimY : Размер измерения Y.

uint32_t rsAllocationGetDimY( rs_allocation a);
Возврат
Измерение Y распределения.

Возвращает размер измерения Y распределения. Если распределение имеет менее двух измерений, возвращается 0.

Используйте rsGetDimY (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimZ : Размер измерения Z.

uint32_t rsAllocationGetDimZ ( rs_allocation a);
Возврат
Z-размер распределения.

Возвращает размер измерения Z распределения. Если распределение имеет менее трех измерений, возвращается 0.

Используйте rsGetDimZ (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetElement : получить объект, описывающий ячейку выделения.

rs_element rsAllocationGetElement ( rs_allocation a);
Параметры
а Выделение, из которого нужно получить данные.
Возврат
Элемент, описывающий макет распределения.

Получите объект Element, описывающий тип, вид и другие характеристики ячейки распределения. См. функции rsElement* ниже.

rsClearObject : освободить объект.

void rsClearObject ( rs_allocation * dst);
void rsClearObject ( rs_element * dst);
void rsClearObject ( rs_font * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_mesh * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_program_fragment * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject( rs_program_raster * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject( rs_program_store * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_program_vertex * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_sampler * dst);
void rsClearObject( rs_script * dst);
void rsClearObject( rs_type * dst);

Сообщает среде выполнения, что этот дескриптор больше не будет использоваться для доступа к связанному объекту. Если это был последний дескриптор этого объекта, может произойти восстановление ресурса.

После вызова этой функции для *dst будет установлен пустой дескриптор. См. rsIsObject ().

rsElementGetBytesSize : Размер элемента.

uint32_t rsElementGetBytesSize( rs_element e); Добавлено на уровне API 16.

Возвращает размер в байтах, который будет занимать экземпляр этого элемента.

rsElementGetDataKind : вид элемента

rs_data_kind rsElementGetDataKind( rs_element e); Добавлено на уровне API 16.

Возвращает тип данных элемента. Это используется для интерпретации данных пикселей.

См. rs_data_kind .

rsElementGetDataType : тип данных элемента.

rs_data_type rsElementGetDataType( rs_element e); Добавлено на уровне API 16.

Возвращает базовый тип данных элемента. Это может быть тип, аналогичный C/C++ (например, RS_TYPE_UNSIGNED_8), дескриптор (например, RS_TYPE_ALLOCATION и RS_TYPE_ELEMENT) или более сложный числовой тип (например, RS_TYPE_UNSIGNED_5_6_5 и RS_TYPE_MATRIX_4X4). См. rs_data_type .

Если элемент описывает вектор, эта функция возвращает тип данных одного из его элементов. Используйте rsElementGetVectorSize , чтобы получить размер вектора.

Если элемент описывает структуру, возвращается RS_TYPE_NONE. Используйте функции rsElementGetSub*, чтобы изучить этот сложный Элемент.

rsElementGetSubElement : подэлемент сложного элемента.

rs_element rsElementGetSubElement( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент для запроса.
индекс Индекс возвращаемого подэлемента.
Возврат
Подэлемент по данному индексу.

Для элементов, представляющих структуру, эта функция возвращает подэлемент по указанному индексу.

Если элемент не является структурой или индекс больше или равен количеству подэлементов, возвращается недопустимый дескриптор.

rsElementGetSubElementArraySize : Размер массива подэлемента сложного элемента.

uint32_t rsElementGetSubElementArraySize( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент для запроса.
индекс Индекс подэлемента.
Возврат
Размер массива подэлемента.

Для сложных элементов подэлементы могут представлять собой массивы статического размера. Эта функция возвращает размер массива подэлемента по индексу. Это повторение подэлемента отличается от векторов фиксированного размера.

rsElementGetSubElementCount : количество подэлементов.

uint32_t rsElementGetSubElementCount( rs_element e); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
Возврат
Количество подэлементов.

Элементы могут быть простыми, например, int или float, или структурой с несколькими подэлементами. Эта функция возвращает ноль для простых элементов и количество подэлементов для сложных элементов.

rsElementGetSubElementName : имя подэлемента.

uint32_t rsElementGetSubElementName( rs_element e, uint32_t index, char* name, uint32_t nameLength); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
имя Адрес массива, в котором будет сохранено имя.
имяДлина Длина предоставленного массива имен.
Возврат
Количество скопированных символов, исключая нулевой терминатор.

Для сложных элементов эта функция возвращает имя подэлемента по указанному индексу.

rsElementGetSubElementNameLength : длина имени подэлемента.

uint32_t rsElementGetSubElementNameLength( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
Возврат
Длина имени подэлемента, включая нулевой терминатор.

Для сложных элементов эта функция возвращает длину имени подэлемента по указанному индексу.

rsElementGetSubElementOffsetBytes : смещение созданного подэлемента.

uint32_t rsElementGetSubElementOffsetBytes ( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
Возврат
Смещение в байтах.

Эта функция возвращает относительную позицию экземпляра указанного подэлемента в экземпляре Элемента.

Например, если элемент описывает 32-битное число с плавающей запятой, за которым следует 32-битное целое число, возврат смещения для первого будет 0, а для второго — 4.

rsElementGetVectorSize : векторный размер элемента.

uint32_t rsElementGetVectorSize( rs_element e); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
Возврат
Длина вектора элемента.

Возвращает размер вектора элемента. Если элемент не представляет вектор, возвращается 1.

rsGetAllocation : возвращает выделение для данного указателя.

rs_allocation rsGetAllocation(const void* p);

Устарело. Эта функция устарела и будет удалена из SDK в будущем выпуске.

Возвращает выделение для данного указателя. Указатель должен указывать на допустимое выделение. Результаты не определены, если указатель не принадлежит допустимому выделению.

rsIsObject : проверка пустого дескриптора.

bool rsIsObject( rs_allocation v);
bool rsIsObject( rs_element v);
bool rsIsObject( rs_font v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject ( rs_mesh v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_fragment v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_raster v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_store v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_vertex v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_sampler v);
bool rsIsObject( rs_script v);
bool rsIsObject( rs_type v);

Возвращает true, если дескриптор содержит ненулевую ссылку.

Эта функция не проверяет, что внутренний указатель, используемый в дескрипторе, указывает на действительный объект; он проверяет только ноль.

Эту функцию можно использовать для проверки элемента, возвращаемого функцией rsElementGetSubElement (), или для проверки того, был ли вызван rsClearObject () для дескриптора.

rsSamplerGetAnisotropy : анизотропия семплера.

float rsSamplerGetAnisotropy( rs_sampler s); Добавлено на уровне API 16.

Получите анизотропию Сэмплера.

См. android.renderscript.S .

rsSamplerGetMagnification : значение увеличения сэмплера.

rs_sampler_value rsSamplerGetMagnification( rs_sampler s); Добавлено на уровне API 16.

Получите значение увеличения Sampler.

См. android.renderscript.S .

rsSamplerGetMinification : значение минимизации семплера.

rs_sampler_value rsSamplerGetMinification( rs_sampler s); Добавлено на уровне API 16.

Получите значение минимизации Sampler.

См. android.renderscript.S .

rsSamplerGetWrapS : значение S переноса семплера.

rs_sampler_value rsSamplerGetWrapS( rs_sampler s); Добавлено на уровне API 16.

Получите значение S обертки Sampler.

См. android.renderscript.S .

rsSamplerGetWrapT : значение T переноса сэмплера

rs_sampler_value rsSamplerGetWrapT( rs_sampler s); Добавлено на уровне API 16.

Получите значение T обертки сэмплера.

См. android.renderscript.S .

,

Обзор

Приведенные ниже функции можно использовать для запроса характеристик объекта Allocation, Element или Sampler. Эти объекты созданы из Java. Вы не можете создать их из сценария.

Распределения:

Выделение — это основной метод, используемый для передачи данных в ядра RenderScript и обратно.

Они представляют собой структурированный набор ячеек, который можно использовать для хранения растровых изображений, текстур, произвольных точек данных и т. д.

Эта коллекция ячеек может иметь множество измерений (X, Y, Z, Массив0, Массив1, Массив2, Массив3), граней (для кубических карт) и уровня детализации (для мип-отображения).

Подробную информацию о создании распределений см. в android.renderscript.Allocation .

Элементы:

Термин «элемент» используется в RenderScript несколько неоднозначно, как для информации о типе ячеек выделения, так и для создания экземпляра этого типа. Например:

  • rs_element — это дескриптор спецификации типа, а
  • В таких функциях, как rsGetElementAt (), «элемент» означает создание экземпляра типа, то есть ячейку выделения.

Приведенные ниже функции позволяют запрашивать характеристики спецификации типа.

Элемент может указывать простые типы данных, такие как C, например целое число, число с плавающей запятой или логическое значение. Он также может указать дескриптор объекта RenderScript. См. список основных типов в rs_data_type .

Элементы могут указывать вектор фиксированного размера (размером 2, 3 или 4) версии базовых типов. Элементы можно группировать в сложные элементы, создавая эквивалент определений структур C.

Элементы также могут иметь вид — семантическую информацию, используемую для интерпретации данных пикселей. См. rs_data_kind .

При создании распределения общих элементов вы можете просто использовать один из множества предопределенных элементов, например F32_2 .

Для создания сложных элементов используйте Java-класс Element.Builder .

Сэмплеры:

Объекты сэмплеров определяют, как выделения могут быть прочитаны как структура внутри ядра. См. android.renderscript.S .

Краткое содержание

Функции
rsAllocationGetDimFaces Наличие более чем одного лица
rsAllocationGetDimLOD Наличие уровней детализации
rsAllocationGetDimX Размер X-размера
rsAllocationGetDimY Размер измерения Y
rsAllocationGetDimZ Размер размера Z
rsAllocationGetElement Получите объект, описывающий ячейку распределения.
rsClearObject Освободить объект
rsElementGetBytesSize Размер элемента
rsElementGetDataKind Вид элемента
rsElementGetDataType Тип данных элемента
rsElementGetSubElement Подэлемент сложного Элемента
rsElementGetSubElementArraySize Размер массива подэлемента сложного элемента
rsElementGetSubElementCount Количество подэлементов
rsElementGetSubElementName Имя подэлемента
rsElementGetSubElementNameLength Длина имени подэлемента
rsElementGetSubElementOffsetBytes Смещение созданного подэлемента
rsElementGetVectorSize Векторный размер элемента
rsIsObject Проверьте пустой дескриптор
rsSamplerGetAnisotropy Анизотропия семплера
rsSamplerGetMagnification Значение увеличения пробоотборника
rsSamplerGetMinification Значение минимизации сэмплера
rsSamplerGetWrapS Значение S обертки сэмплера
rsSamplerGetWrapT Значение T обертки пробоотборника
Устаревшие функции
rsGetAllocation Устарело . Вернуть выделение для данного указателя

Функции

rsAllocationGetDimFaces : наличие более одного лица.

uint32_t rsAllocationGetDimFaces ( rs_allocation a);
Возврат
Возвращает 1, если присутствует более одного лица, в противном случае — 0.

Если распределение является кубической картой, эта функция возвращает 1, если присутствует более одной грани. Во всех остальных случаях возвращается 0.

Используйте rsGetDimHasFaces (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimLOD : наличие уровней детализации.

uint32_t rsAllocationGetDimLOD ( rs_allocation a);
Возврат
Возвращает 1, если присутствует более одного уровня детализации, в противном случае — 0.

Запросить распределение на наличие более одного уровня детализации. Это полезно для MIP-карт.

Используйте rsGetDimLod (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimX : Размер измерения X.

uint32_t rsAllocationGetDimX ( rs_allocation a);
Возврат
X-размер распределения.

Возвращает размер измерения X распределения.

Используйте rsGetDimX (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimY : Размер измерения Y.

uint32_t rsAllocationGetDimY( rs_allocation a);
Возврат
Измерение Y распределения.

Возвращает размер измерения Y распределения. Если распределение имеет менее двух измерений, возвращается 0.

Используйте rsGetDimY (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetDimZ : Размер измерения Z.

uint32_t rsAllocationGetDimZ ( rs_allocation a);
Возврат
Z-размер распределения.

Возвращает размер измерения Z распределения. Если распределение имеет менее трех измерений, возвращается 0.

Используйте rsGetDimZ (), чтобы получить размерность работающего в данный момент ядра.

rsAllocationGetElement : получить объект, описывающий ячейку выделения.

rs_element rsAllocationGetElement ( rs_allocation a);
Параметры
а Выделение, из которого нужно получить данные.
Возврат
Элемент, описывающий макет распределения.

Получите объект Element, описывающий тип, вид и другие характеристики ячейки распределения. См. функции rsElement* ниже.

rsClearObject : освободить объект.

void rsClearObject ( rs_allocation * dst);
void rsClearObject ( rs_element * dst);
void rsClearObject ( rs_font * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_mesh * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_program_fragment * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject( rs_program_raster * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject( rs_program_store * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_program_vertex * dst); При компиляции для 32 бит. Удален из API уровня 23 и выше.
void rsClearObject ( rs_sampler * dst);
void rsClearObject( rs_script * dst);
void rsClearObject( rs_type * dst);

Сообщает среде выполнения, что этот дескриптор больше не будет использоваться для доступа к связанному объекту. Если это был последний дескриптор этого объекта, может произойти восстановление ресурса.

После вызова этой функции для *dst будет установлен пустой дескриптор. См. rsIsObject ().

rsElementGetBytesSize : Размер элемента.

uint32_t rsElementGetBytesSize( rs_element e); Добавлено на уровне API 16.

Возвращает размер в байтах, который будет занимать экземпляр этого элемента.

rsElementGetDataKind : вид элемента

rs_data_kind rsElementGetDataKind( rs_element e); Добавлено на уровне API 16.

Возвращает тип данных элемента. Это используется для интерпретации данных пикселей.

См. rs_data_kind .

rsElementGetDataType : тип данных элемента.

rs_data_type rsElementGetDataType( rs_element e); Добавлено на уровне API 16.

Возвращает базовый тип данных элемента. Это может быть тип, аналогичный C/C++ (например, RS_TYPE_UNSIGNED_8), дескриптор (например, RS_TYPE_ALLOCATION и RS_TYPE_ELEMENT) или более сложный числовой тип (например, RS_TYPE_UNSIGNED_5_6_5 и RS_TYPE_MATRIX_4X4). См. rs_data_type .

Если элемент описывает вектор, эта функция возвращает тип данных одного из его элементов. Используйте rsElementGetVectorSize , чтобы получить размер вектора.

Если элемент описывает структуру, возвращается RS_TYPE_NONE. Используйте функции rsElementGetSub*, чтобы изучить этот сложный Элемент.

rsElementGetSubElement : подэлемент сложного элемента.

rs_element rsElementGetSubElement( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент для запроса.
индекс Индекс возвращаемого подэлемента.
Возврат
Подэлемент по данному индексу.

Для элементов, представляющих структуру, эта функция возвращает подэлемент по указанному индексу.

Если элемент не является структурой или индекс больше или равен количеству подэлементов, возвращается недопустимый дескриптор.

rsElementGetSubElementArraySize : Размер массива подэлемента сложного элемента.

uint32_t rsElementGetSubElementArraySize( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент для запроса.
индекс Индекс подэлемента.
Возврат
Размер массива подэлемента.

Для сложных элементов подэлементы могут представлять собой массивы статического размера. Эта функция возвращает размер массива подэлемента по индексу. Это повторение подэлемента отличается от векторов фиксированного размера.

rsElementGetSubElementCount : количество подэлементов.

uint32_t rsElementGetSubElementCount( rs_element e); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
Возврат
Количество подэлементов.

Элементы могут быть простыми, например, int или float, или структурой с несколькими подэлементами. Эта функция возвращает ноль для простых элементов и количество подэлементов для сложных элементов.

rsElementGetSubElementName : имя подэлемента.

uint32_t rsElementGetSubElementName( rs_element e, uint32_t index, char* name, uint32_t nameLength); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
имя Адрес массива, в котором будет сохранено имя.
имяДлина Длина предоставленного массива имен.
Возврат
Количество скопированных символов, исключая нулевой терминатор.

Для сложных элементов эта функция возвращает имя подэлемента по указанному индексу.

rsElementGetSubElementNameLength : длина имени подэлемента.

uint32_t rsElementGetSubElementNameLength( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
Возврат
Длина имени подэлемента, включая нулевой терминатор.

Для сложных элементов эта функция возвращает длину имени подэлемента по указанному индексу.

rsElementGetSubElementOffsetBytes : смещение созданного подэлемента.

uint32_t rsElementGetSubElementOffsetBytes ( rs_element e, uint32_t index); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
индекс Индекс подэлемента.
Возврат
Смещение в байтах.

Эта функция возвращает относительную позицию экземпляра указанного подэлемента в экземпляре Элемента.

Например, если элемент описывает 32-битное число с плавающей запятой, за которым следует 32-битное целое число, возврат смещения для первого будет 0, а для второго — 4.

rsElementGetVectorSize : векторный размер элемента.

uint32_t rsElementGetVectorSize( rs_element e); Добавлено на уровне API 16.
Параметры
е Элемент, из которого нужно получить данные.
Возврат
Длина вектора элемента.

Возвращает размер вектора элемента. Если элемент не представляет вектор, возвращается 1.

rsGetAllocation : возвращает выделение для данного указателя.

rs_allocation rsGetAllocation(const void* p);

Устарело. Эта функция устарела и будет удалена из SDK в будущем выпуске.

Возвращает выделение для данного указателя. Указатель должен указывать на допустимое выделение. Результаты не определены, если указатель не принадлежит допустимому выделению.

rsIsObject : проверка пустого дескриптора.

bool rsIsObject( rs_allocation v);
bool rsIsObject( rs_element v);
bool rsIsObject( rs_font v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject ( rs_mesh v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_fragment v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_raster v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_store v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_program_vertex v); При компиляции для 32 бит. Удален из API уровня 23 и выше.
bool rsIsObject( rs_sampler v);
bool rsIsObject( rs_script v);
bool rsIsObject( rs_type v);

Возвращает true, если дескриптор содержит ненулевую ссылку.

Эта функция не проверяет, что внутренний указатель, используемый в дескрипторе, указывает на действительный действительный объект; он проверяет только ноль.

Эту функцию можно использовать для проверки элемента, возвращаемого функцией rsElementGetSubElement (), или для проверки того, был ли вызван rsClearObject () для дескриптора.

rsSamplerGetAnisotropy : анизотропия семплера.

float rsSamplerGetAnisotropy( rs_sampler s); Добавлено на уровне API 16.

Получите анизотропию Сэмплера.

См. android.renderscript.S .

rsSamplerGetMagnification : значение увеличения сэмплера.

rs_sampler_value rsSamplerGetMagnification( rs_sampler s); Добавлено на уровне API 16.

Получите значение увеличения Sampler.

См. android.renderscript.S .

rsSamplerGetMinification : значение минимизации семплера.

rs_sampler_value rsSamplerGetMinification( rs_sampler s); Добавлено на уровне API 16.

Получите значение минимизации Sampler.

См. android.renderscript.S .

rsSamplerGetWrapS : значение S переноса семплера.

rs_sampler_value rsSamplerGetWrapS( rs_sampler s); Добавлено на уровне API 16.

Получите значение S обертки Sampler.

См. android.renderscript.S .

rsSamplerGetWrapT : значение T переноса сэмплера

rs_sampler_value rsSamplerGetWrapT( rs_sampler s); Добавлено на уровне API 16.

Получите значение T обертки сэмплера.

См. android.renderscript.S .