Thanks for your quick answer Alon! Data2 has at first normal size: 64
bytes, but sometimes returned value "return" is being again reused as a
parameter. So when I use debugger to see sizes of arraybuffers all
data.buffer.byteLength, data2.buffer.byteLength and
targetdata.buffer.byteLength return 64 bytes. But when I check
result.buffer.byteLength it returns exactly 16777216 bytes.
So this line: var result = new Float32Array(targetHeap.buffer,
targetHeap.byteOffset, 16);
produces a result with value as expected:
[0.000001385850055157789, -1, 7.756424391658356e-10, 0, -1,
-0.000001385850055157789, 0.0000013868001360606286, 0,
-0.0000013868001360606286, -7.775643462437642e-10, -1, 0, 0, 0, 0, 1]
but after checking with debugger in the console result.buffer.byteLength
the length is 16777216 bytes, same as targetHeap.buffer. Now it's
impossible to feed it back into this function(so it's buffer will be
used in this line: dataHeap2.set( new Uint8Array(data2.buffer) ).
Is it an error of Float32Array that it doesn't return a buffer of
byteLength of 64 or is it because Uint8Array should atomatically
truncate input? Or is it because the design of my function is wrong?
Following "Uint8Array should atomatically truncate input" I made a
change to limit amount of data coming to Uint8Array by adding
data2.byteOffset and nDataBytes parameters:
dataHeap2.set( new Uint8Array(data2.buffer, data2.byteOffset, nDataBytes) );
what's interesting is that the game is now running, but the screen is
white. At least it's not crashing. Something is still very wrong but it
looks like tons of calculations are happening now. Only wrong.
The returned value after checking it with debugger() on first run
On 22/07/2015 01:10, Alon Zakai wrote:
Where does data2 come from? If you trace that back, you should be able
to see why it is the wrong array or size.
On Tue, Jul 21, 2015 at 3:41 PM, Pawel Misiurski
<[email protected] <mailto:[email protected]>> wrote:
Hi I'm completely new to Emscripten and I have a problem which I
posted on stack overflow, but it's a very niche thing I'm trying
to find someone who tried this already.
http://stackoverflow.com/questions/31550198/emscripten-uncaught-rangeerror-source-is-too-large-multiple-float32arrays
It looks like once an array has been added to Emscripten's Heap it
contains all it's data(only in the buffer).Therefore when trying
to send it again to this function I'm getting "Source is too
large" error. After 2 days maybe I'm missing something or maybe my
code is completely wrong? I only want to add that it is not caused
by my C++ code because even after commenting out the function call
I'm still getting the error.
Thanks for help and in the meantime I'm coming back to pulling my
hair out.
--
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 [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the
Google Groups "emscripten-discuss" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/emscripten-discuss/JvDRhCWpY2c/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
[email protected]
<mailto:[email protected]>.
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 [email protected].
For more options, visit https://groups.google.com/d/optout.