提交 57354d14 编写于 作者: M Mr.doob

Updated builds.

上级 b26c8e77
......@@ -11132,6 +11132,43 @@ THREE.SpotLight.prototype.clone = function () {
};
/**
* @author mrdoob / http://mrdoob.com/
*/
THREE.Cache = {
files: {},
add: function ( key, file ) {
// console.log( 'THREE.Cache', 'Adding key:', key );
this.files[ key ] = file;
},
get: function ( key ) {
// console.log( 'THREE.Cache', 'Checking key:', key );
return this.files[ key ];
},
remove: function ( key ) {
delete this.files[ key ];
},
clear: function () {
this.files = {}
}
};
/**
* @author alteredq / http://alteredqualia.com/
*/
......@@ -11237,13 +11274,6 @@ THREE.Loader.prototype = {
var _this = this;
function is_pow2( n ) {
var l = Math.log( n ) / Math.LN2;
return Math.floor( l ) == l;
}
function nearest_pow2( n ) {
var l = Math.log( n ) / Math.LN2;
......@@ -11251,36 +11281,6 @@ THREE.Loader.prototype = {
}
function load_image( where, url ) {
var image = new Image();
image.onload = function () {
if ( !is_pow2( this.width ) || !is_pow2( this.height ) ) {
var width = nearest_pow2( this.width );
var height = nearest_pow2( this.height );
where.image.width = width;
where.image.height = height;
where.image.getContext( '2d' ).drawImage( this, 0, 0, width, height );
} else {
where.image = this;
}
where.needsUpdate = true;
};
if ( _this.crossOrigin !== undefined ) image.crossOrigin = _this.crossOrigin;
image.src = url;
}
function create_texture( where, name, sourceFile, repeat, offset, wrap, anisotropy ) {
var isCompressed = /\.dds$/i.test( sourceFile );
......@@ -11338,7 +11338,31 @@ THREE.Loader.prototype = {
if ( ! isCompressed ) {
load_image( where[ name ], fullPath );
var texture = where[ name ];
var loader = new THREE.ImageLoader();
loader.crossOrigin = _this.crossOrigin;
loader.load( fullPath, function ( image ) {
if ( THREE.Math.isPowerOfTwo( image.width ) === false ||
THREE.Math.isPowerOfTwo( image.height ) === false ) {
var width = nearest_pow2( image.width );
var height = nearest_pow2( image.height );
texture.image.width = width;
texture.image.height = height;
texture.image.getContext( '2d' ).drawImage( image, 0, 0, width, height );
} else {
texture.image = image;
}
texture.needsUpdate = true;
} );
}
......@@ -11595,6 +11619,15 @@ THREE.XHRLoader.prototype = {
load: function ( url, onLoad, onProgress, onError ) {
var cached = THREE.Cache.get( url );
if ( cached !== undefined ) {
onLoad( cached );
return;
}
var scope = this;
var request = new XMLHttpRequest();
......@@ -11602,6 +11635,8 @@ THREE.XHRLoader.prototype = {
request.addEventListener( 'load', function ( event ) {
THREE.Cache.add( url, event.target.responseText );
onLoad( event.target.responseText );
scope.manager.itemEnd( url );
......@@ -11662,6 +11697,15 @@ THREE.ImageLoader.prototype = {
load: function ( url, onLoad, onProgress, onError ) {
var cached = THREE.Cache.get( url );
if ( cached !== undefined ) {
onLoad( cached );
return;
}
var scope = this;
var image = document.createElement( 'img' );
......@@ -11669,8 +11713,10 @@ THREE.ImageLoader.prototype = {
image.addEventListener( 'load', function ( event ) {
scope.manager.itemEnd( url );
THREE.Cache.add( url, this );
onLoad( this );
scope.manager.itemEnd( url );
}, false );
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册