我正在從我的renderscript內核返回結構數組。我的問題是,儘管我可以使用生成的代碼在java中創建一個結構數組,並通過獲取從此生成的數組的分配將其傳遞給我的根方法,但我無法將數組重新獲取到java中。 Renderscript文檔說使用copyTo方法複製分配以確保renderscript已經完成對它的操作。然而這個方法只支持float,int,byte,bitmap。即使在訪問數組之前等待幾秒鐘以確保renderscript已經完成,out分配中的數據根本不會改變,所以我不知道我是否正在接近這個錯誤。從Renderscript內核返回Renderscript結構
任何幫助都讚賞
澄清編輯:
我在Java中有以下
ScriptField_NBody bodys = ScriptField_NBody.create1D(mRS, size, Allocation.USAGE_SCRIPT);
ScriptField_NBody outBodys = new ScriptField_NBody(mRS, 1);
創建我的結構的陣列,然後我把我的renderScript功能填充人體的
後nBodyScript.forEach_root(bodys.getAllocation(), outBodys.getAllocation())
我的renderscript應該s意味着複製人體的到outBodys
void root(const NBody_t *v_in, NBody_t *v_out, uint32_t x) {
*v_out = *v_in;
}
早在Java的我現在想訪問outBodies,(從調試的代碼,我知道我的renderScript函數讀取數據,並將其複製罰款)。但是我不能使用outBodys.getllocation()函數上的標準copyTo,因爲它只能使用浮點數,整型,字節和位圖以及outBody對象從分配中自行更新。請注意,NBody_t是我在renderscript文件中定義的結構。
歡迎來到SO。您可能希望包含一些代碼並更好地設置您的問題的格式,以便人們在閱讀您的問題時不會感到困惑。 – mavrosxristoforos