Javascript Tableaux Typés et Endianness

Je suis en utilisant WebGL pour rendre un binaire codé fichier de maillage. Le fichier binaire est écrit en format big-endian (je peux le vérifier en ouvrant le fichier dans un éditeur hexadécimal, ou de visualiser le trafic réseau à l'aide de fiddler). Lorsque je tente de lire la réponse binaire à l'aide d'un Float32Array ou Int32Array, le binaire est interprété comme little-endian et de mes valeurs sont fausses:

//Interpret first 32bits in buffer as an int
var wrongValue = new Int32Array(binaryArrayBuffer)[0];

Je ne trouve pas de références à la valeur par défaut boutisme de tableaux typés dans http://www.khronos.org/registry/typedarray/specs/latest/ alors je me demandais quel est le problème? Dois-je supposer que toutes les données binaires doivent être little-endian lors de la lecture à l'aide de tableaux typés?

Pour contourner le problème, je peux utiliser un objet DataView (voir le lien précédent) et de l'appeler:

//Interpret first 32bits in buffer as an int
var correctValue = new DataView(binaryArrayBuffer).getInt32(0);

Le DataView des fonctions telles que "getInt32" lire big-endian valeurs par défaut.

(Note: j'ai testé avec Google Chrome 15 et Firefox 8 et ils se comportent de la même manière)

  • Dans le cas où certains se poseraient la question, je pense que la réponse est qu'il faut que j'écrive mon fichier à l'aide de little-endian.
  • Qui a appelé à éviter le problème au lieu de le combler.
InformationsquelleAutor Bob | 2011-10-23