diff --git a/examples/js/exporters/GLTFExporter.js b/examples/js/exporters/GLTFExporter.js index 40e67459c2619c0b0c18b9a3b327354ebcba9db5..0cbfbc33d2c90bd20e6deb8d2c0a49e95a621255 100644 --- a/examples/js/exporters/GLTFExporter.js +++ b/examples/js/exporters/GLTFExporter.js @@ -131,70 +131,39 @@ THREE.GLTFExporter.prototype = { /** * Converts a string to an ArrayBuffer. * @param {string} text - * @param {Boolean} padded * @return {ArrayBuffer} */ function stringToArrayBuffer( text, padded ) { + if ( padded ) { - var spaceCode = ' '.charCodeAt( 0 ); + var pad = getPaddedBufferSize( text.length ) - text.length; - if ( window.TextEncoder !== undefined ) { - - var view = new TextEncoder().encode( text ); - - if ( ! padded || ( view.length % 4 ) === 0 ) return view.buffer; - - var view2 = new Uint8Array( new ArrayBuffer( getPaddedBufferSize( view.length ) ) ); + for ( var i = 0; i < pad; i++ ) { - for ( var i = 0, il = view.length; i < il; i ++ ) { - - view2[ i ] = view[ i ]; + text += ' '; } - // pad with space - for ( var i = view.length, il = view2.length; i < il; i ++ ) { - - view2[ i ] = spaceCode; - - } - - return view2.buffer; - - } else { - - var length = padded ? getPaddedBufferSize( text.length ) : text.length; - - var view = new Uint8Array( new ArrayBuffer( length ) ); - - for ( var i = 0, il = text.length; i < il; i ++ ) { - - var value = text.charCodeAt( i ); - - if ( value > 0xFF ) { - - // replace multi-byte string with space - view[ i ] = spaceCode; - - } else { + } - view[ i ] = value; + if ( window.TextEncoder !== undefined ) { - } + return new TextEncoder().encode( text ).buffer; - } + } - // pad with space - for ( var i = text.length; i < length; i ++ ) { + var buffer = new ArrayBuffer( text.length ); - view[ i ] = spaceCode; + var bufferView = new Uint8Array( buffer ); - } + for ( var i = 0; i < text.length; ++ i ) { - return view.buffer; + bufferView[ i ] = text.charCodeAt( i ); } + return buffer; + } /**