|
@@ -154,6 +154,7 @@ export function createRenderItem<T extends RenderVariantDefines, S extends keyof
|
|
|
const valueChanges = createValueChanges()
|
|
|
|
|
|
let destroyed = false
|
|
|
+ let currentProgramId = -1
|
|
|
|
|
|
return {
|
|
|
id,
|
|
@@ -164,13 +165,14 @@ export function createRenderItem<T extends RenderVariantDefines, S extends keyof
|
|
|
if (drawCount === 0 || instanceCount === 0) return
|
|
|
const program = programs[variant].value
|
|
|
const vertexArray = vertexArrays[variant]
|
|
|
- if (program.id !== state.currentProgramId ||
|
|
|
+ if (program.id !== state.currentProgramId || program.id !== currentProgramId ||
|
|
|
materialId === -1 || materialId !== state.currentMaterialId
|
|
|
) {
|
|
|
// console.log('program.id changed or materialId changed/-1', materialId)
|
|
|
if (program.id !== state.currentProgramId) program.use()
|
|
|
program.setUniforms(materialUniformValueEntries)
|
|
|
state.currentMaterialId = materialId
|
|
|
+ currentProgramId = program.id
|
|
|
}
|
|
|
program.setUniforms(uniformValueEntries)
|
|
|
program.bindTextures(textures)
|