我是使用Firebreath的新手。作爲一個練習,我正在嘗試編寫一個插件來完成矢量添加。出於某種原因,我正在爲此而掙扎。我會對我正在嘗試做的事情做相關的代碼。Firebreath NPAPI插件通過javascript數組傳遞
這是我的Javascript代碼。
var problemsize = 512 * 100
var allocsize = problemsize * 8
var bufferA = new ArrayBuffer(allocsize);
var bufferB = new ArrayBuffer(allocsize);
var bufferC = new ArrayBuffer(allocsize);
var N = problemsize
var float32ViewA = new Float32Array(bufferA);
var float32ViewB = new Float32Array(bufferB);
var float32ViewC = new Float32Array(bufferC);
for (var i = 0; i < problemsize; i++) {
float32ViewA[i] = 4;
float32ViewB[i] = 3;
float32ViewC[i] = 0;
}
plugin().addvect(float32ViewA.buffer,float32ViewB.buffer,float32ViewC.buffer,problemsize);
和代碼在我的插件API.cpp
void TestJSAPI::addvect(const FB::JSObjectPtr& A, const FB::JSObjectPtr& B, const FB::JSObjectPtr& C, int N){
std::cout << "Entering TestJSAPI::addvect " << std::endl;
int i = 0;
for(i = 0 ; i < N ; i++){
double val = A->GetProperty(i).cast<double>() + B->GetProperty(i).cast<double>();
C->SetProperty(i,val);
}
std::cout << "Exiting TestJSAPI::addvect" << std::endl;
}
我似乎無法弄清楚什麼錯。我從控制檯啓動Firefox,它只是打印輸入...和不退出..我在這裏錯過了什麼?謝謝