|
@@ -12,7 +12,7 @@ function painterSortStable( a, b ) {
|
|
|
|
|
|
return a.renderOrder - b.renderOrder;
|
|
return a.renderOrder - b.renderOrder;
|
|
|
|
|
|
- } else if ( a.program && b.program && a.program !== b.program ) {
|
|
|
|
|
|
+ } else if ( a.program !== b.program ) {
|
|
|
|
|
|
return a.program.id - b.program.id;
|
|
return a.program.id - b.program.id;
|
|
|
|
|
|
@@ -63,6 +63,8 @@ function WebGLRenderList() {
|
|
var opaque = [];
|
|
var opaque = [];
|
|
var transparent = [];
|
|
var transparent = [];
|
|
|
|
|
|
|
|
+ var defaultProgram = { id: - 1 };
|
|
|
|
+
|
|
function init() {
|
|
function init() {
|
|
|
|
|
|
renderItemsIndex = 0;
|
|
renderItemsIndex = 0;
|
|
@@ -83,7 +85,7 @@ function WebGLRenderList() {
|
|
object: object,
|
|
object: object,
|
|
geometry: geometry,
|
|
geometry: geometry,
|
|
material: material,
|
|
material: material,
|
|
- program: material.program,
|
|
|
|
|
|
+ program: material.program || defaultProgram,
|
|
groupOrder: groupOrder,
|
|
groupOrder: groupOrder,
|
|
renderOrder: object.renderOrder,
|
|
renderOrder: object.renderOrder,
|
|
z: z,
|
|
z: z,
|
|
@@ -98,7 +100,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;
|
|
|
|
|
|
+ renderItem.program = material.program || defaultProgram;
|
|
renderItem.groupOrder = groupOrder;
|
|
renderItem.groupOrder = groupOrder;
|
|
renderItem.renderOrder = object.renderOrder;
|
|
renderItem.renderOrder = object.renderOrder;
|
|
renderItem.z = z;
|
|
renderItem.z = z;
|