From 6b8608bcc4114618ad13730606a6fd00c635fab6 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Wed, 19 Feb 2014 18:04:41 -0500 Subject: [PATCH] Updated builds. --- build/three.js | 246 +++++++++++---------------------------------- build/three.min.js | 123 +++++++++++------------ 2 files changed, 120 insertions(+), 249 deletions(-) diff --git a/build/three.js b/build/three.js index 3979d11e45..90e0c90302 100644 --- a/build/three.js +++ b/build/three.js @@ -22659,45 +22659,6 @@ THREE.WebGLRenderer = function ( parameters ) { }; - // used by renderBufferDirect for THREE.Line - function setupLinesVertexAttributes( material, programAttributes, geometryAttributes, startIndex ) { - - var attributeItem, attributeName, attributePointer, attributeSize; - - for ( attributeName in programAttributes ) { - - attributePointer = programAttributes[ attributeName ]; - attributeItem = geometryAttributes[ attributeName ]; - - if ( attributePointer >= 0 ) { - - if ( attributeItem ) { - - attributeSize = attributeItem.itemSize; - _gl.bindBuffer( _gl.ARRAY_BUFFER, attributeItem.buffer ); - enableAttribute( attributePointer ); - _gl.vertexAttribPointer( attributePointer, attributeSize, _gl.FLOAT, false, 0, startIndex * attributeSize * 4 ); // 4 bytes per Float32 - - } else if ( material.defaultAttributeValues ) { - - if ( material.defaultAttributeValues[ attributeName ].length === 2 ) { - - _gl.vertexAttrib2fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } else if ( material.defaultAttributeValues[ attributeName ].length === 3 ) { - - _gl.vertexAttrib3fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } - - } - - } - - } - - } - function setDirectBuffers( geometry, hint ) { var attributes = geometry.attributes; @@ -22825,6 +22786,43 @@ THREE.WebGLRenderer = function ( parameters ) { }; + function setupVertexAttributes( material, programAttributes, geometryAttributes, startIndex ) { + + for ( var attributeName in programAttributes ) { + + var attributePointer = programAttributes[ attributeName ]; + var attributeItem = geometryAttributes[ attributeName ]; + + if ( attributePointer >= 0 ) { + + if ( attributeItem ) { + + var attributeSize = attributeItem.itemSize; + + _gl.bindBuffer( _gl.ARRAY_BUFFER, attributeItem.buffer ); + enableAttribute( attributePointer ); + _gl.vertexAttribPointer( attributePointer, attributeSize, _gl.FLOAT, false, 0, startIndex * attributeSize * 4 ); // 4 bytes per Float32 + + } else if ( material.defaultAttributeValues ) { + + if ( material.defaultAttributeValues[ attributeName ].length === 2 ) { + + _gl.vertexAttrib2fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); + + } else if ( material.defaultAttributeValues[ attributeName ].length === 3 ) { + + _gl.vertexAttrib3fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); + + } + + } + + } + + } + + } + this.renderBufferDirect = function ( camera, lights, fog, material, geometry, object ) { if ( material.visible === false ) return; @@ -22860,57 +22858,32 @@ THREE.WebGLRenderer = function ( parameters ) { var index = geometryAttributes[ "index" ]; - var type, size; - - if ( index.array instanceof Uint32Array ) { - - type = _gl.UNSIGNED_INT; - size = 4; - - } else { - - type = _gl.UNSIGNED_SHORT; - size = 2; - - } - if ( index ) { // indexed triangles + var type, size; + + if ( index.array instanceof Uint32Array ) { + + type = _gl.UNSIGNED_INT; + size = 4; + + } else { + + type = _gl.UNSIGNED_SHORT; + size = 2; + + } + var offsets = geometry.offsets; if ( offsets.length === 0 ) { - for ( attributeName in programAttributes ) { - - attributePointer = programAttributes[ attributeName ]; - attributeItem = geometryAttributes[ attributeName ]; - - if ( attributePointer >= 0 ) { - - if ( attributeItem ) { - - attributeSize = attributeItem.itemSize; - _gl.bindBuffer( _gl.ARRAY_BUFFER, attributeItem.buffer ); - enableAttribute( attributePointer ); - _gl.vertexAttribPointer( attributePointer, attributeSize, _gl.FLOAT, false, 0, 0 ); - - } else if ( material.defaultAttributeValues ) { - - if ( material.defaultAttributeValues[ attributeName ].length === 2 ) { - - _gl.vertexAttrib2fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } else if ( material.defaultAttributeValues[ attributeName ].length === 3 ) { - - _gl.vertexAttrib3fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } - - } + if ( updateBuffers ) { - } + setupVertexAttributes( material, programAttributes, geometryAttributes, 0 ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); } @@ -22934,40 +22907,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( updateBuffers ) { - for ( attributeName in programAttributes ) { - - attributePointer = programAttributes[ attributeName ]; - attributeItem = geometryAttributes[ attributeName ]; - - if ( attributePointer >= 0 ) { - - if ( attributeItem ) { - - attributeSize = attributeItem.itemSize; - _gl.bindBuffer( _gl.ARRAY_BUFFER, attributeItem.buffer ); - enableAttribute( attributePointer ); - _gl.vertexAttribPointer( attributePointer, attributeSize, _gl.FLOAT, false, 0, startIndex * attributeSize * 4 ); // 4 bytes per Float32 - - } else if ( material.defaultAttributeValues ) { - - if ( material.defaultAttributeValues[ attributeName ].length === 2 ) { - - _gl.vertexAttrib2fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } else if ( material.defaultAttributeValues[ attributeName ].length === 3 ) { - - _gl.vertexAttrib3fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } - - } - - } - - } - - // indices - + setupVertexAttributes( material, programAttributes, geometryAttributes, startIndex ); _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); } @@ -22990,39 +22930,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( updateBuffers ) { - for ( attributeName in programAttributes ) { - - if ( attributeName === 'index') continue; - - attributePointer = programAttributes[ attributeName ]; - attributeItem = geometryAttributes[ attributeName ]; - - if ( attributePointer >= 0 ) { - - if ( attributeItem ) { - - attributeSize = attributeItem.itemSize; - _gl.bindBuffer( _gl.ARRAY_BUFFER, attributeItem.buffer ); - enableAttribute( attributePointer ); - _gl.vertexAttribPointer( attributePointer, attributeSize, _gl.FLOAT, false, 0, 0 ); - - } else if ( material.defaultAttributeValues && material.defaultAttributeValues[ attributeName ] ) { - - if ( material.defaultAttributeValues[ attributeName ].length === 2 ) { - - _gl.vertexAttrib2fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } else if ( material.defaultAttributeValues[ attributeName ].length === 3 ) { - - _gl.vertexAttrib3fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } - - } - - } - - } + setupVertexAttributes( material, programAttributes, geometryAttributes, 0 ); } @@ -23044,37 +22952,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( updateBuffers ) { - for ( attributeName in programAttributes ) { - - attributePointer = programAttributes[ attributeName ]; - attributeItem = geometryAttributes[ attributeName ]; - - if ( attributePointer >= 0 ) { - - if ( attributeItem ) { - - attributeSize = attributeItem.itemSize; - _gl.bindBuffer( _gl.ARRAY_BUFFER, attributeItem.buffer ); - enableAttribute( attributePointer ); - _gl.vertexAttribPointer( attributePointer, attributeSize, _gl.FLOAT, false, 0, 0 ); - - } else if ( material.defaultAttributeValues && material.defaultAttributeValues[ attributeName ] ) { - - if ( material.defaultAttributeValues[ attributeName ].length === 2 ) { - - _gl.vertexAttrib2fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } else if ( material.defaultAttributeValues[ attributeName ].length === 3 ) { - - _gl.vertexAttrib3fv( attributePointer, material.defaultAttributeValues[ attributeName ] ); - - } - - } - - } - - } + setupVertexAttributes( material, programAttributes, geometryAttributes, 0 ); } @@ -23119,9 +22997,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( updateBuffers ) { - setupLinesVertexAttributes( material, programAttributes, geometryAttributes, 0 ); - - // indices + setupVertexAttributes( material, programAttributes, geometryAttributes, 0 ); _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); } @@ -23145,9 +23021,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( updateBuffers ) { - setupLinesVertexAttributes(material, programAttributes, geometryAttributes, startIndex); - - // indices + setupVertexAttributes( material, programAttributes, geometryAttributes, startIndex ); _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); } @@ -23169,7 +23043,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( updateBuffers ) { - setupLinesVertexAttributes( material, programAttributes, geometryAttributes, 0 ); + setupVertexAttributes( material, programAttributes, geometryAttributes, 0 ); } diff --git a/build/three.min.js b/build/three.min.js index eada6efc7b..513e4c7250 100644 --- a/build/three.min.js +++ b/build/three.min.js @@ -317,8 +317,8 @@ THREE.Scene.prototype.__addObject=function(a){if(a instanceof THREE.Light)-1===t THREE.Scene.prototype.__removeObject=function(a){if(a instanceof THREE.Light){var b=this.__lights.indexOf(a);-1!==b&&this.__lights.splice(b,1);if(a.shadowCascadeArray)for(b=0;b=h||(h*=f.intensity,c.add(La.multiplyScalar(h)))}else f instanceof THREE.PointLight&&(g=Oa.setFromMatrixPosition(f.matrixWorld),h=b.dot(Oa.subVectors(g,a).normalize()),0>=h||(h*=0==f.distance?1:1-Math.min(a.distanceTo(g)/f.distance,1),0!=h&&(h*=f.intensity,c.add(La.multiplyScalar(h)))))}} function c(a,b,c,d){r(b);q(c);u(d);p(a.getStyle());y.stroke();Pa.expandByScalar(2*b)}function d(a){v(a.getStyle());y.fill()}function e(a){f(a.target)}function f(a){var b=a.wrapS===THREE.RepeatWrapping,c=a.wrapT===THREE.RepeatWrapping,d=a.image,e=document.createElement("canvas");e.width=d.width;e.height=d.height;var f=e.getContext("2d");f.setTransform(1,0,0,-1,0,d.height);f.drawImage(d,0,0);la[a.id]=y.createPattern(e,!0===b&&!0===c?"repeat":!0===b&&!1===c?"repeat-x":!1===b&&!0===c?"repeat-y":"no-repeat")} -function g(a,b,c,d,g,h,m,k,l,n,p,r,q){if(!(q instanceof THREE.DataTexture)){!1===q.hasEventListener("update",e)&&(void 0!==q.image&&0d.numSupportedMorphTargets?(l.sort(n),l.length= -d.numSupportedMorphTargets):l.length>d.numSupportedMorphNormals?l.sort(n):0===l.length&&l.push([0,0]);for(p=0;pba;ba++)Ca=ca[ba],Xa[Ga]=Ca.x, -Xa[Ga+1]=Ca.y,Xa[Ga+2]=Ca.z,Ga+=3;else for(ba=0;3>ba;ba++)Xa[Ga]=R.x,Xa[Ga+1]=R.y,Xa[Ga+2]=R.z,Ga+=3;m.bindBuffer(m.ARRAY_BUFFER,A.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,Xa,C)}if(Bb&&Cb&&M){E=0;for(J=ea.length;Eba;ba++)La=$[ba],db[Oa]=La.x,db[Oa+1]=La.y,Oa+=2;0ba;ba++)Ja= -sa[ba],hb[Qa]=Ja.x,hb[Qa+1]=Ja.y,Qa+=2;0d.numSupportedMorphTargets?(l.sort(n),l.length=d.numSupportedMorphTargets):l.length>d.numSupportedMorphNormals?l.sort(n):0===l.length&&l.push([0,0]);for(p=0;pba;ba++)Ca=ca[ba],Xa[Ga]=Ca.x,Xa[Ga+1]=Ca.y,Xa[Ga+2]=Ca.z,Ga+=3;else for(ba=0;3>ba;ba++)Xa[Ga]=R.x,Xa[Ga+1]=R.y,Xa[Ga+2]=R.z,Ga+=3;m.bindBuffer(m.ARRAY_BUFFER,A.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,Xa,C)}if(Bb&&Cb&&M){E=0;for(J=ea.length;Eba;ba++)La=$[ba],db[Oa]=La.x,db[Oa+1]=La.y,Oa+=2;0ba;ba++)Ja=sa[ba],hb[Qa]=Ja.x,hb[Qa+1]=Ja.y,Qa+=2;0