2013-10-22 68 views
1

我正在增加RS中的全局值,目的是在內核完成時將其傳回給Java。 rsDebug顯示每次迭代的值上升,但mScript.get_var()返回初始值1.什麼是獲得MAX的最後一個值的正確方法?將RenderScript全局值返回給Java

RS:

int MAX = 1; 

void root(const input* in, float* out){ 
    MAX = MAX+1; 
    rsDebug("MAX",MAX); 
    *out = atan2(in->first, in->second); 
} 

的Java:

float[] out = new float[100000]; 
mScript.forEach_root(mInAllocation, mOutAllocation); 
mOutAllocation.copyTo(out); 
Log.i("Max Count...", Integer.toString(mScript.get_MAX())); 

回答

2

get_var只返回由Java的,而不是由RS碼設置的最後一個值設置的最後一個值。在將來的某個時候,這個問題將得到解決,但尚未解決。現在,解決方法是將值存儲在RS分配中並將其複製回Java。

是的,這不是很好。對不起,這是我要解決的事情清單(我幾乎這樣做了,但由於BaseObjs可以從RS設置,所以它比我最初想象的要複雜得多)。

+0

感謝您的快速回答。我會發布後續行動來解決我的核心問題。 – sarwar