|
@@ -19669,7 +19669,7 @@ function reversePainterSortStable( a, b ) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-function WebGLRenderList() {
|
|
|
|
|
|
+function WebGLRenderList( properties ) {
|
|
|
|
|
|
const renderItems = [];
|
|
const renderItems = [];
|
|
let renderItemsIndex = 0;
|
|
let renderItemsIndex = 0;
|
|
@@ -19691,6 +19691,7 @@ function WebGLRenderList() {
|
|
function getNextRenderItem( object, geometry, material, groupOrder, z, group ) {
|
|
function getNextRenderItem( object, geometry, material, groupOrder, z, group ) {
|
|
|
|
|
|
let renderItem = renderItems[ renderItemsIndex ];
|
|
let renderItem = renderItems[ renderItemsIndex ];
|
|
|
|
+ const materialProperties = properties.get( material );
|
|
|
|
|
|
if ( renderItem === undefined ) {
|
|
if ( renderItem === undefined ) {
|
|
|
|
|
|
@@ -19699,7 +19700,7 @@ function WebGLRenderList() {
|
|
object: object,
|
|
object: object,
|
|
geometry: geometry,
|
|
geometry: geometry,
|
|
material: material,
|
|
material: material,
|
|
- program: material.program || defaultProgram,
|
|
|
|
|
|
+ program: materialProperties.program || defaultProgram,
|
|
groupOrder: groupOrder,
|
|
groupOrder: groupOrder,
|
|
renderOrder: object.renderOrder,
|
|
renderOrder: object.renderOrder,
|
|
z: z,
|
|
z: z,
|
|
@@ -19714,7 +19715,7 @@ function WebGLRenderList() {
|
|
renderItem.object = object;
|
|
renderItem.object = object;
|
|
renderItem.geometry = geometry;
|
|
renderItem.geometry = geometry;
|
|
renderItem.material = material;
|
|
renderItem.material = material;
|
|
- renderItem.program = material.program || defaultProgram;
|
|
|
|
|
|
+ renderItem.program = materialProperties.program || defaultProgram;
|
|
renderItem.groupOrder = groupOrder;
|
|
renderItem.groupOrder = groupOrder;
|
|
renderItem.renderOrder = object.renderOrder;
|
|
renderItem.renderOrder = object.renderOrder;
|
|
renderItem.z = z;
|
|
renderItem.z = z;
|
|
@@ -19787,7 +19788,7 @@ function WebGLRenderList() {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-function WebGLRenderLists() {
|
|
|
|
|
|
+function WebGLRenderLists( properties ) {
|
|
|
|
|
|
let lists = new WeakMap();
|
|
let lists = new WeakMap();
|
|
|
|
|
|
@@ -19808,7 +19809,7 @@ function WebGLRenderLists() {
|
|
|
|
|
|
if ( cameras === undefined ) {
|
|
if ( cameras === undefined ) {
|
|
|
|
|
|
- list = new WebGLRenderList();
|
|
|
|
|
|
+ list = new WebGLRenderList( properties );
|
|
lists.set( scene, new WeakMap() );
|
|
lists.set( scene, new WeakMap() );
|
|
lists.get( scene ).set( camera, list );
|
|
lists.get( scene ).set( camera, list );
|
|
|
|
|
|
@@ -19819,7 +19820,7 @@ function WebGLRenderLists() {
|
|
list = cameras.get( camera );
|
|
list = cameras.get( camera );
|
|
if ( list === undefined ) {
|
|
if ( list === undefined ) {
|
|
|
|
|
|
- list = new WebGLRenderList();
|
|
|
|
|
|
+ list = new WebGLRenderList( properties );
|
|
cameras.set( camera, list );
|
|
cameras.set( camera, list );
|
|
|
|
|
|
}
|
|
}
|
|
@@ -25014,7 +25015,7 @@ function WebGLRenderer( parameters ) {
|
|
morphtargets = new WebGLMorphtargets( _gl );
|
|
morphtargets = new WebGLMorphtargets( _gl );
|
|
programCache = new WebGLPrograms( _this, extensions, capabilities, bindingStates );
|
|
programCache = new WebGLPrograms( _this, extensions, capabilities, bindingStates );
|
|
materials = new WebGLMaterials( properties );
|
|
materials = new WebGLMaterials( properties );
|
|
- renderLists = new WebGLRenderLists();
|
|
|
|
|
|
+ renderLists = new WebGLRenderLists( properties );
|
|
renderStates = new WebGLRenderStates();
|
|
renderStates = new WebGLRenderStates();
|
|
|
|
|
|
background = new WebGLBackground( _this, state, objects, _premultipliedAlpha );
|
|
background = new WebGLBackground( _this, state, objects, _premultipliedAlpha );
|
|
@@ -25363,8 +25364,6 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
const programInfo = properties.get( material ).program;
|
|
const programInfo = properties.get( material ).program;
|
|
|
|
|
|
- material.program = undefined;
|
|
|
|
-
|
|
|
|
if ( programInfo !== undefined ) {
|
|
if ( programInfo !== undefined ) {
|
|
|
|
|
|
programCache.releaseProgram( programInfo );
|
|
programCache.releaseProgram( programInfo );
|
|
@@ -26070,7 +26069,6 @@ function WebGLRenderer( parameters ) {
|
|
materialProperties.program = program;
|
|
materialProperties.program = program;
|
|
materialProperties.uniforms = parameters.uniforms;
|
|
materialProperties.uniforms = parameters.uniforms;
|
|
materialProperties.outputEncoding = parameters.outputEncoding;
|
|
materialProperties.outputEncoding = parameters.outputEncoding;
|
|
- material.program = program;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|