2016-12-13 1 views
1

은 내가 스크립트 기능이 안드로이드 API16 +Android 렌더 스크립트 기능이 자동으로 커널로 설정되었으므로이를 피하는 방법은 무엇입니까? 내가 스크립트에 설정 내부 포인터 (할당)하고 싶은이와</p> <pre><code>void setBuffers(uchar *y, uchar *u, uchar *v){ ... } </code></pre> <p>:

에 대한 renderscript 코드를 컴파일합니다. 그러나 컴파일러는 RS_KERNEL 특성을 가진 것처럼 포인터 매개 변수로 모든 함수를 처리하고 커널 함수로 만들고 Java 코드를 forEach_setBuffers으로 생성하거나 y이 int (커널의 경우 true) 여야한다고 불평합니다.

이 자동 커널 모드가 단순화로 추가되어 스크립트에 함수를 표시 할 필요가 없다고 가정합니다. 좋은.

그러나이 코드를 invokable으로 변경하여 Java 코드에 invoke_setBuffers이 포함되도록해야합니다. 어떻게 만들 수 있습니까?

답변

0

포인터를 받아들이는 invokable을 가질 수 없으므로 이것이 커널로 표시되는 "바로 가기"가 발생하는 이유입니다. 포인터를 사용하지만 Java에 반영 할 필요가없는 함수가있는 경우 "정적"으로 표시하여 커널처럼 취급하지 않도록 할 수 있습니다. Java에서 실제 할당 데이터를 가져 오려면이 호출 가능하도록 대신 "rs_allocation"인수를 취해야합니다.

관련 문제