Browse Source

Revert "GLTFExporter: Fix padding in stringToArrayBuffer for multi-byte strings"

This reverts commit 0359d57168a149782865e0cc831571908f4ffc1c.
Takahiro 7 years ago
parent
commit
05effe2102
1 changed files with 14 additions and 45 deletions
  1. 14 45
      examples/js/exporters/GLTFExporter.js

+ 14 - 45
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;
+
 		}
 
 		/**