From b0ab77ee7f38e8db5058d718729f96f66aeb01ab Mon Sep 17 00:00:00 2001
From: Alexander Rose <alex.rose@rcsb.org>
Date: Fri, 22 Mar 2019 18:09:07 -0700
Subject: [PATCH] fix, render variant change needs to trigger and material
 change

---
 src/mol-gl/webgl/context.ts     | 2 ++
 src/mol-gl/webgl/render-item.ts | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/src/mol-gl/webgl/context.ts b/src/mol-gl/webgl/context.ts
index b849f9f9a..2b3edcf6f 100644
--- a/src/mol-gl/webgl/context.ts
+++ b/src/mol-gl/webgl/context.ts
@@ -137,6 +137,7 @@ export interface WebGLContext {
 
     currentProgramId: number
     currentMaterialId: number
+    currentRenderVariant: string
 
     bufferCount: number
     framebufferCount: number
@@ -265,6 +266,7 @@ export function createContext(gl: GLRenderingContext): WebGLContext {
 
         currentProgramId: -1,
         currentMaterialId: -1,
+        currentRenderVariant: '',
 
         bufferCount: 0,
         framebufferCount: 0,
diff --git a/src/mol-gl/webgl/render-item.ts b/src/mol-gl/webgl/render-item.ts
index 5c64e5879..108cfdbf2 100644
--- a/src/mol-gl/webgl/render-item.ts
+++ b/src/mol-gl/webgl/render-item.ts
@@ -140,6 +140,10 @@ export function createRenderItem(ctx: WebGLContext, drawMode: DrawMode, shaderCo
             const program = programs[variant].value
             const vertexArray = vertexArrays[variant]
             program.setUniforms(uniformValueEntries)
+            if (ctx.currentRenderVariant !== variant) {
+                ctx.currentMaterialId = -1
+                ctx.currentRenderVariant = variant
+            }
             if (materialId === -1 || materialId !== ctx.currentMaterialId) {
                 // console.log('materialId changed or -1', materialId)
                 program.setUniforms(materialUniformValueEntries)
-- 
GitLab