At the moment, I don't have the time (or the hardware / configuration) to get your code up and running, but if someone else could take a look, this would be a great candidate for an example to put on the wiki. Having JavaScript interact with C is quite common.
On Tue, Sep 16, 2014 at 2:59 PM, Arve Knudsen <arve.knud...@gmail.com> wrote: > Thanks very much for the info, Chad. Would it be possible for you to amend > my gist to employ your technique?? > > Best, > Arve > > On Tue, Sep 16, 2014 at 11:36 PM, Chad Austin <c...@imvu.com> wrote: > >> 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. >> > > -- > 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.