javascript - Use nan to receive and return Float32Array in an addon -


i'm trying use nan in order calculate on array of floats in add-on , return float32array.

but while args have isnumber() , numbervalue()functions has isfloat32array() function , no float32array().

i've tried @ those: 1,2 tutorials found no suitable examples.

nan_method(calc) {   nanscope();    if (args.length() < 2) {     nanthrowtypeerror("wrong number of arguments");     nanreturnundefined();   }    if (!args[0]->isnumber() || !args[1]->isfloat32array()) {     nanthrowtypeerror("wrong arguments");     nanreturnundefined();   }   /* vector of floats ? */  args[0]-> ???;   double arg1 = args[1]->numbervalue();   // calculation on vector    nanreturnvalue(/* return float32array array */); } 

accepting typedarray best done nan::typedarraycontents

local<typedarray> ta = args[0].as<typedarray>(); nan::typedarraycontents<float> vfloat(ta); float firstelement = (*vfloat)[0]; 

there no nan helper constructing typed array yet, use helper in own code:

template <typename t> struct v8typedarraytraits; // no generic case template<> struct v8typedarraytraits<float32array> { typedef float value_type; }; template<> struct v8typedarraytraits<float64array> { typedef double value_type; }; // etc. v8 doesn't export make nice.  template <typename t> local<t> createtypedarray(size_t size) {   size_t bytelength = size * sizeof(typename v8typedarraytraits<t>::value_type);   local<arraybuffer> buffer = arraybuffer::new(isolate::getcurrent(), bytelength);   local<t> result = t::new(buffer, 0, size);   return result; }; 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -