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