Документация для Android Renderscript расширенный вызов rsForEach

У меня вопрос о том, как работает функция Android Renderscript rsForEach с аргументом rs_script_call_t*. В примерах используется только другая (простая) функция rsForEach, так что мне это не помогает. Я хотел бы изменить xStart и xEnd моего массива и поэкспериментировать с разными RS_FOR_EACH_STRATEGY. Я понимаю, что мне нужно создать структуру rs_script_call_t и установить для полей правильные значения. Однако любая попытка использовать этот вызов rsForEach приводит к SIGSEGV и дампу ядра.

В структуре rs_script_call (в rs_math.rsh):

  • К чему относятся значения xStart, xEnd, yStart, yEnd, zStart, zEnd? Индексы или указатели?
  • На что ссылаются значения arrayStart и arrayEnd? Индексы или указатели?
  • Каковы их значения по умолчанию?

Есть ли еще документация (или примеры), объясняющая, как правильно использовать функцию rsForEach с аргументом rs_script_call_t*?


person Roelof    schedule 25.08.2011    source источник


Ответы (1)


Значения x/y/z/start/end являются индексами выделения памяти, над которым работает вычислительный скрипт. Структура может ограничить вызов rsForEach подобластью распределения.

Например, для выделения размером 640x480 можно определить xStart = 100; хКонец = 200; устарт = 100; yEnd = 200. Тогда вызов foreach запустится в области распределения размером 100x100.

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

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

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

person robertly    schedule 22.11.2011