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.

Reply via email to