|
@@ -12156,7 +12156,7 @@ BufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototy
|
|
|
|
|
|
}
|
|
|
|
|
|
- data.data = { attributes: {} };
|
|
|
+ data.data = { attributes: {}, morphAttributes: {} };
|
|
|
|
|
|
var index = this.index;
|
|
|
|
|
@@ -12188,6 +12188,32 @@ BufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototy
|
|
|
|
|
|
}
|
|
|
|
|
|
+ var morphAttributes = this.morphAttributes;
|
|
|
+
|
|
|
+ for ( var key in morphAttributes ) {
|
|
|
+
|
|
|
+ var attributeArray = this.morphAttributes[ key ];
|
|
|
+
|
|
|
+ var array = [];
|
|
|
+
|
|
|
+ for ( var i = 0, il = attributeArray.length; i < il; i ++ ) {
|
|
|
+
|
|
|
+ var attribute = attributeArray[ i ];
|
|
|
+
|
|
|
+ array.push( {
|
|
|
+ name: attribute.name,
|
|
|
+ itemSize: attribute.itemSize,
|
|
|
+ type: attribute.array.constructor.name,
|
|
|
+ array: Array.prototype.slice.call( attribute.array ),
|
|
|
+ normalized: attribute.normalized
|
|
|
+ } );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ data.data.morphAttributes[ key ] = array;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
var groups = this.groups;
|
|
|
|
|
|
if ( groups.length > 0 ) {
|
|
@@ -22575,6 +22601,7 @@ function WebGLRenderer( parameters ) {
|
|
|
} catch ( error ) {
|
|
|
|
|
|
console.error( 'THREE.WebGLRenderer: ' + error.message );
|
|
|
+ throw error;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -22794,11 +22821,26 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
this.setViewport = function ( x, y, width, height ) {
|
|
|
|
|
|
- _viewport.set( x, y, width, height );
|
|
|
+ if ( x.isVector4 ) {
|
|
|
+
|
|
|
+ _viewport.set( x.x, x.y, x.z, x.w );
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ _viewport.set( x, y, width, height );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
state.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ) );
|
|
|
|
|
|
};
|
|
|
|
|
|
+ this.getScissor = function ( target ) {
|
|
|
+
|
|
|
+ return target.copy( _scissor );
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
this.setScissor = function ( x, y, width, height ) {
|
|
|
|
|
|
_scissor.set( x, y, width, height );
|
|
@@ -22806,6 +22848,12 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
};
|
|
|
|
|
|
+ this.getScissorTest = function () {
|
|
|
+
|
|
|
+ return _scissorTest;
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
this.setScissorTest = function ( boolean ) {
|
|
|
|
|
|
state.setScissorTest( _scissorTest = boolean );
|
|
@@ -37886,6 +37934,29 @@ Object.assign( BufferGeometryLoader.prototype, {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ var morphAttributes = json.data.morphAttributes;
|
|
|
+
|
|
|
+ for ( var key in morphAttributes ) {
|
|
|
+
|
|
|
+ var attributeArray = morphAttributes[ key ];
|
|
|
+
|
|
|
+ var array = [];
|
|
|
+
|
|
|
+ for ( var i = 0, il = attributeArray.length; i < il; i ++ ) {
|
|
|
+
|
|
|
+ var attribute = attributeArray[ i ];
|
|
|
+ var typedArray = new TYPED_ARRAYS[ attribute.type ]( attribute.array );
|
|
|
+
|
|
|
+ var bufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );
|
|
|
+ if ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;
|
|
|
+ array.push( bufferAttribute );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ geometry.morphAttributes[ key ] = array;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
var groups = json.data.groups || json.data.drawcalls || json.data.offsets;
|
|
|
|
|
|
if ( groups !== undefined ) {
|