diff --git a/src/mol-gl/compute/histogram-pyramid/reduction.ts b/src/mol-gl/compute/histogram-pyramid/reduction.ts index 2cdc5c6664c59fc7f6fd2aa5149d46d0e6920793..3b315acdfe6bb70a6cad31064b905c114b439be1 100644 --- a/src/mol-gl/compute/histogram-pyramid/reduction.ts +++ b/src/mol-gl/compute/histogram-pyramid/reduction.ts @@ -93,7 +93,6 @@ export function createHistogramPyramid(ctx: WebGLContext, inputTexture: Texture) const renderable = getHistopyramidReductionRenderable(ctx, initialTexture) renderable.update() - renderable.use() let offset = 0; for (let i = 0; i < levels; i++) { @@ -110,7 +109,6 @@ export function createHistogramPyramid(ctx: WebGLContext, inputTexture: Texture) ValueCell.update(renderable.values.tPreviousLevel, readTex) renderable.update() - renderable.use() setRenderingDefaults(gl) gl.viewport(0, 0, size, size) renderable.render() diff --git a/src/mol-gl/compute/histogram-pyramid/sum.ts b/src/mol-gl/compute/histogram-pyramid/sum.ts index 26a3ab45f93afc3e54ef40b993a052f7dd670bb0..00d97e17e13682a3a09ee2c7f6e87ed924b71a5b 100644 --- a/src/mol-gl/compute/histogram-pyramid/sum.ts +++ b/src/mol-gl/compute/histogram-pyramid/sum.ts @@ -48,7 +48,6 @@ export function getHistopyramidSum(ctx: WebGLContext, pyramidTopTexture: Texture const renderable = getHistopyramidSumRenderable(ctx, pyramidTopTexture) renderable.update() - renderable.use() // TODO cache globally for reuse const sumTexture = createTexture(ctx, 'image-uint8', 'rgba', 'ubyte', 'nearest') diff --git a/src/mol-gl/compute/marching-cubes/active-voxels.ts b/src/mol-gl/compute/marching-cubes/active-voxels.ts index ffd9b6fbb18dd185d0ea7ee60e83ebf789f7d20c..c52b1c22975e1fd7c49b2b88db74beb7074953b2 100644 --- a/src/mol-gl/compute/marching-cubes/active-voxels.ts +++ b/src/mol-gl/compute/marching-cubes/active-voxels.ts @@ -71,7 +71,6 @@ export function calcActiveVoxels(ctx: WebGLContext, cornerTex: Texture, gridDime const renderable = getActiveVoxelsRenderable(ctx, cornerTex, gridDimensions, isoValue) renderable.update() - renderable.use() activeVoxelsTex.attachFramebuffer(framebuffer, 0) setRenderingDefaults(gl) diff --git a/src/mol-gl/compute/marching-cubes/isosurface.ts b/src/mol-gl/compute/marching-cubes/isosurface.ts index a893c158fc1840907e4df779b872e59b00d4ba94..b1753b516224a264f717c969b661a4c7eed011ab 100644 --- a/src/mol-gl/compute/marching-cubes/isosurface.ts +++ b/src/mol-gl/compute/marching-cubes/isosurface.ts @@ -110,7 +110,6 @@ export function createIsosurfaceBuffers(ctx: WebGLContext, activeVoxelsBase: Tex const pr = getIsosurfaceRenderable(ctx, pyramidTex, activeVoxelsBase, volumeData, totalTex, gridDimensions, transform, isoValue, levels, scale) pr.update() - pr.use() vertexGroupTexture.attachFramebuffer(framebuffer, 0) normalTexture.attachFramebuffer(framebuffer, 1) diff --git a/src/mol-gl/renderable.ts b/src/mol-gl/renderable.ts index 62817b1e0e2393643a79441affb2aef35dace72f..19bb43892275aae908decac6710fa30a9b1ba7ce 100644 --- a/src/mol-gl/renderable.ts +++ b/src/mol-gl/renderable.ts @@ -61,7 +61,6 @@ export interface ComputeRenderable<T extends RenderableValues> { readonly values: T render: () => void - use: () => void update: () => void dispose: () => void } @@ -72,7 +71,6 @@ export function createComputeRenderable<T extends Values<RenderableSchema>>(rend values, render: () => renderItem.render('compute'), - use: () => renderItem.getProgram('compute').use(), update: () => renderItem.update(), dispose: () => renderItem.destroy() } diff --git a/src/mol-gl/renderer.ts b/src/mol-gl/renderer.ts index fbc6b146f553299559fcedb5a3f75723df6cb031..ec9095bf11c03b5d8dc4483cebcbbfc672128740 100644 --- a/src/mol-gl/renderer.ts +++ b/src/mol-gl/renderer.ts @@ -114,9 +114,9 @@ namespace Renderer { if (state.currentProgramId !== program.id) { // console.log('new program') globalUniformsNeedUpdate = true + program.use() } - program.use() if (globalUniformsNeedUpdate) { // console.log('globalUniformsNeedUpdate') program.setUniforms(globalUniformList) diff --git a/src/mol-gl/webgl/render-item.ts b/src/mol-gl/webgl/render-item.ts index 299fe2d33a237ef97aef0baf032bc1758f65ff4d..dffc339b977f29202d04ffacd7ccf1692d5d4ad4 100644 --- a/src/mol-gl/webgl/render-item.ts +++ b/src/mol-gl/webgl/render-item.ts @@ -154,7 +154,6 @@ export function createRenderItem<T extends RenderVariantDefines, S extends keyof const valueChanges = createValueChanges() let destroyed = false - let currentProgramId = -1 return { id, @@ -165,15 +164,15 @@ export function createRenderItem<T extends RenderVariantDefines, S extends keyof if (drawCount === 0 || instanceCount === 0) return const program = programs[variant].value const vertexArray = vertexArrays[variant] - program.setUniforms(uniformValueEntries) - if (program.id !== currentProgramId || + if (program.id !== state.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) - currentProgramId = program.id state.currentMaterialId = materialId } + program.setUniforms(uniformValueEntries) program.bindTextures(textures) if (vertexArrayObject && vertexArray) { vertexArrayObject.bindVertexArray(vertexArray) diff --git a/src/mol-math/geometry/gaussian-density/gpu.ts b/src/mol-math/geometry/gaussian-density/gpu.ts index cf12509b2189e37e1364f59f1ea41e55ffb3829d..5087730d847b6828adf820b82eb840dbca43bee1 100644 --- a/src/mol-math/geometry/gaussian-density/gpu.ts +++ b/src/mol-math/geometry/gaussian-density/gpu.ts @@ -285,7 +285,6 @@ function setupMinDistanceRendering(webgl: WebGLContext, renderable: ComputeRende const { gl } = webgl ValueCell.update(renderable.values.dCalcType, 'minDistance') renderable.update() - renderable.use() gl.blendFunc(gl.ONE, gl.ONE) // the shader writes 1 - dist so we set blending to MAX gl.blendEquation(webgl.extensions.blendMinMax.MAX) @@ -295,7 +294,6 @@ function setupDensityRendering(webgl: WebGLContext, renderable: ComputeRenderabl const { gl } = webgl ValueCell.update(renderable.values.dCalcType, 'density') renderable.update() - renderable.use() gl.blendFunc(gl.ONE, gl.ONE) gl.blendEquation(gl.FUNC_ADD) } @@ -304,7 +302,6 @@ function setupGroupIdRendering(webgl: WebGLContext, renderable: ComputeRenderabl const { gl } = webgl ValueCell.update(renderable.values.dCalcType, 'groupId') renderable.update() - renderable.use() // overwrite color, don't change alpha gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ZERO, gl.ONE) gl.blendEquation(gl.FUNC_ADD)