Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
c3355d9b
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c3355d9b
编写于
9月 15, 2015
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
More post-release fixes.
上级
4360ed69
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
143 addition
and
144 deletion
+143
-144
build/three.js
build/three.js
+76
-77
build/three.min.js
build/three.min.js
+61
-61
examples/webgl_materials_cubemap_dynamic.html
examples/webgl_materials_cubemap_dynamic.html
+4
-4
examples/webgl_test_memory2.html
examples/webgl_test_memory2.html
+2
-2
未找到文件。
build/three.js
浏览文件 @
c3355d9b
...
...
@@ -14238,31 +14238,31 @@ THREE.ObjectLoader.prototype = {
var scope = this;
var images = {};
if ( json !== undefined && json.length > 0 ) {
var manager = new THREE.LoadingManager( onLoad );
function loadImage( url ) {
var loader = new THREE.ImageLoader( manager );
loader.setCrossOrigin( this.crossOrigin );
scope.manager.itemStart( url );
var loadImage = function ( url
) {
return loader.load( url, function (
) {
url = scope.texturePath + url
;
scope.manager.itemEnd( url )
;
scope.manager.itemStart( url
);
}
);
return loader.load( url, function () {
}
scope.manager.itemEnd( url );
if ( json !== undefined && json.length > 0 ) {
}
);
var manager = new THREE.LoadingManager( onLoad
);
};
var loader = new THREE.ImageLoader( manager );
loader.setCrossOrigin( this.crossOrigin );
for ( var i = 0, l = json.length; i < l; i ++ ) {
var image = json[ i ];
images[ image.uuid ] = loadImage( image.url );
var path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test( image.url ) ? image.url : scope.texturePath + image.url;
images[ image.uuid ] = loadImage( path );
}
...
...
@@ -19706,8 +19706,6 @@ THREE.WebGLRenderer = function ( parameters ) {
var _this = this,
_programs = [],
// internal state cache
_currentProgram = null,
...
...
@@ -19755,7 +19753,6 @@ THREE.WebGLRenderer = function ( parameters ) {
_infoMemory = {
programs: 0,
geometries: 0,
textures: 0
...
...
@@ -19774,10 +19771,11 @@ THREE.WebGLRenderer = function ( parameters ) {
render: _infoRender,
memory: _infoMemory,
programs:
_programs
programs:
null
};
// initialize
var _gl;
...
...
@@ -19839,6 +19837,8 @@ THREE.WebGLRenderer = function ( parameters ) {
var objects = new THREE.WebGLObjects( _gl, properties, this.info );
var programCache = new THREE.WebGLPrograms( this, capabilities );
this.info.programs = programCache.programs;
var bufferRenderer = new THREE.WebGLBufferRenderer( _gl, extensions, _infoRender );
var indexedBufferRenderer = new THREE.WebGLIndexedBufferRenderer( _gl, extensions, _infoRender );
...
...
@@ -20213,41 +20213,13 @@ THREE.WebGLRenderer = function ( parameters ) {
function releaseMaterialProgramReference( material ) {
var program = properties.get( material ).program.program;
if ( program === undefined ) return;
var programInfo = properties.get( material ).program;
material.program = undefined;
for ( var i = 0, n = _programs.length; i !== n; ++ i ) {
var programInfo = _programs[ i ];
if ( programInfo.program === program ) {
var newReferenceCount = -- programInfo.usedTimes;
if ( newReferenceCount === 0 ) {
// the last material that has been using the program let
// go of it, so remove it from the (unordered) _programs
// set and deallocate the GL resource
var newLength = n - 1;
_programs[ i ] = _programs[ newLength ];
_programs.pop();
_gl.deleteProgram( program );
_infoMemory.programs = newLength;
}
break;
}
if ( programInfo !== undefined ) {
programCache.releaseProgram( programInfo );
}
}
...
...
@@ -21066,15 +21038,15 @@ THREE.WebGLRenderer = function ( parameters ) {
var parameters = programCache.getParameters( material, lights, fog, object );
var code = programCache.getProgramCode( material, parameters );
var program = materialProperties.program;
var programChange = true;
if (
! materialProperties.program
) {
if (
program === undefined
) {
// new material
material.addEventListener( 'dispose', onMaterialDispose );
} else if (
materialProperties.
program.code !== code ) {
} else if ( program.code !== code ) {
// changed glsl or parameters
releaseMaterialProgramReference( material );
...
...
@@ -21091,41 +21063,39 @@ THREE.WebGLRenderer = function ( parameters ) {
}
if ( p
arameters.shaderID
) {
if ( p
rogramChange
) {
var shader = THREE.ShaderLib[ parameters.shaderID ];
if ( parameters.shaderID ) {
materialProperties.__webglShader = {
name: material.type,
uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
vertexShader: shader.vertexShader,
fragmentShader: shader.fragmentShader
};
var shader = THREE.ShaderLib[ parameters.shaderID ];
} else {
materialProperties.__webglShader = {
name: material.type,
uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
vertexShader: shader.vertexShader,
fragmentShader: shader.fragmentShader
};
materialProperties.__webglShader = {
name: material.type,
uniforms: material.uniforms,
vertexShader: material.vertexShader,
fragmentShader: material.fragmentShader
};
} else {
}
materialProperties.__webglShader = {
name: material.type,
uniforms: material.uniforms,
vertexShader: material.vertexShader,
fragmentShader: material.fragmentShader
};
material.__webglShader = materialProperties.__webglShader;
}
var program = programCache.getProgram( material, parameters, code )
;
material.__webglShader = materialProperties.__webglShader
;
if ( programChange ) {
program = programCache.acquireProgram( material, parameters, code );
program.usedTimes ++;
materialProperties.program = program;
material.program = program;
}
materialProperties.program = program;
material.program = program;
var attributes = program.getAttributes();
if ( material.morphTargets ) {
...
...
@@ -24338,6 +24308,15 @@ THREE.WebGLProgram = ( function () {
};
// free resource
this.destroy = function() {
gl.deleteProgram( program );
this.program = undefined;
};
// DEPRECATED
Object.defineProperties( this, {
...
...
@@ -24612,7 +24591,7 @@ THREE.WebGLPrograms = function ( renderer, capabilities ) {
};
this.
get
Program = function ( material, parameters, code ) {
this.
acquire
Program = function ( material, parameters, code ) {
var program;
...
...
@@ -24624,6 +24603,7 @@ THREE.WebGLPrograms = function ( renderer, capabilities ) {
if ( programInfo.code === code ) {
program = programInfo;
++ program.usedTimes;
break;
...
...
@@ -24638,9 +24618,28 @@ THREE.WebGLPrograms = function ( renderer, capabilities ) {
}
return program
;
return program;
}
};
this.releaseProgram = function( program ) {
if ( -- program.usedTimes === 0 ) {
// Remove from unordered set
var i = programs.indexOf( program );
programs[ i ] = programs[ programs.length - 1 ];
programs.pop();
// Free WebGL resources
program.destroy();
}
};
// Exposed for resource monitoring & error feedback via renderer.info:
this.programs = programs;
};
...
...
build/three.min.js
浏览文件 @
c3355d9b
此差异已折叠。
点击以展开。
examples/webgl_materials_cubemap_dynamic.html
浏览文件 @
c3355d9b
...
...
@@ -262,11 +262,11 @@
var
params
=
{
"
a
"
:
{
map
:
flareA
,
useScreenCoordinates
:
false
,
color
:
0xffffff
,
blending
:
THREE
.
AdditiveBlending
},
"
b
"
:
{
map
:
flareB
,
useScreenCoordinates
:
false
,
color
:
0xffffff
,
blending
:
THREE
.
AdditiveBlending
},
"
a
"
:
{
map
:
flareA
,
color
:
0xffffff
,
blending
:
THREE
.
AdditiveBlending
},
"
b
"
:
{
map
:
flareB
,
color
:
0xffffff
,
blending
:
THREE
.
AdditiveBlending
},
"
ar
"
:
{
map
:
flareA
,
useScreenCoordinates
:
false
,
color
:
0xff0000
,
blending
:
THREE
.
AdditiveBlending
},
"
br
"
:
{
map
:
flareB
,
useScreenCoordinates
:
false
,
color
:
0xff0000
,
blending
:
THREE
.
AdditiveBlending
}
"
ar
"
:
{
map
:
flareA
,
color
:
0xff0000
,
blending
:
THREE
.
AdditiveBlending
},
"
br
"
:
{
map
:
flareB
,
color
:
0xff0000
,
blending
:
THREE
.
AdditiveBlending
}
};
...
...
examples/webgl_test_memory2.html
浏览文件 @
c3355d9b
...
...
@@ -128,7 +128,7 @@
renderer
.
render
(
scene
,
camera
);
console
.
log
(
"
before
"
,
renderer
.
info
.
memory
.
programs
);
console
.
log
(
"
before
"
,
renderer
.
info
.
programs
.
length
);
for
(
var
i
=
0
;
i
<
N
;
i
++
)
{
...
...
@@ -137,7 +137,7 @@
}
console
.
log
(
"
after
"
,
renderer
.
info
.
memory
.
programs
);
console
.
log
(
"
after
"
,
renderer
.
info
.
programs
.
length
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录