If you want to write the C code such that it writes to a float*, then that data has to live inside the Emscripten heap.
That is, JavaScript must reserve some space in the Emscripten heap (via _malloc, for example), and pass the pointer to the C function. Then, JavaScript can read the floats out of the array by accessing HEAPF32[(p>>2) + index] where p is the pointer returned by _malloc and index is the index into the array. On Tue, Sep 16, 2014 at 2:17 PM, Arve Knudsen <arve.knud...@gmail.com> wrote: > Hi guys > > I need to pass an array of floating point numbers from a JavaScript > library to a C callback, so that the latter can fill the array with data. > I'm using Runtime.getFuncWrapper to be able to call the C callback from > JavaScript. > > How do I pass an array to the C callback, so that it appears as a > writeable array of floats to the latter? > > I've created a gist of an Emscripten-generated HTML page, to demonstrate > the scenario: https://gist.github.com/aknuds1/fd6348ab32583dea8b4a. It > shows what I've tried so far, the problem being that the data written to > the array by the C function doesn't make it back to the calling JavaScript > function. Compile the gist into an HTML page like so: > > emcc --js-library library.js -o tst.html tst.cpp. > > The JavaScript function is called 'initialize', while the C callback is > called 'callback'. Let me know if anything is unclear. > > Thanks, > Arve > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to emscripten-discuss+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Chad Austin Technical Director, IMVU http://engineering.imvu.com <http://www.imvu.com/members/Chad/> http://chadaustin.me -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.