diff --git a/src/mol-geo/representation/structure/units-visual.ts b/src/mol-geo/representation/structure/units-visual.ts index dd1eaafad5d9fdaa35bf2e193764f2714bcbec31..76c2dac24bbd51f8249216f12fc98493214b8a0b 100644 --- a/src/mol-geo/representation/structure/units-visual.ts +++ b/src/mol-geo/representation/structure/units-visual.ts @@ -72,7 +72,7 @@ function colorChanged(oldProps: ColorProps, newProps: ColorProps) { } const UnitsParams = { - unitKinds: MultiSelectParam<UnitKind>('Unit Kind', '', [ 'atomic', 'spheres' ], UnitKindOptions), + unitKinds: MultiSelectParam<UnitKind>('Unit Kind', '', ['atomic', 'spheres'], UnitKindOptions), } interface UnitsVisualBuilder<P extends StructureProps, G extends Geometry> { diff --git a/src/mol-gl/renderable/direct-volume.ts b/src/mol-gl/renderable/direct-volume.ts index 55d3143f07fa1780a59c7ec0a22eb6ff63ef6653..024848348e5bdea0cbeac1543fbc4c14fb8b83b5 100644 --- a/src/mol-gl/renderable/direct-volume.ts +++ b/src/mol-gl/renderable/direct-volume.ts @@ -36,8 +36,6 @@ export type DirectVolumeBaseValues = Values<DirectVolumeBaseSchema> function getInternalValues(ctx: Context, id: number, version: '100es' | '300es'): InternalValues { return { - dWebGL2: ValueCell.create(ctx.isWebGL2), - dGlslVersion: ValueCell.create(version), uObjectId: ValueCell.create(id) } } diff --git a/src/mol-gl/renderable/lines.ts b/src/mol-gl/renderable/lines.ts index 186772e2ea67115abd1339b24d79dd7db754cdb2..7baaa55855911ddfdfa850039b4049a818744803 100644 --- a/src/mol-gl/renderable/lines.ts +++ b/src/mol-gl/renderable/lines.ts @@ -28,8 +28,6 @@ export type LinesValues = Values<LinesSchema> export function LinesRenderable(ctx: Context, id: number, values: LinesValues, state: RenderableState): Renderable<LinesValues> { const schema = { ...GlobalUniformSchema, ...InternalSchema, ...LinesSchema } const internalValues: InternalValues = { - dWebGL2: ValueCell.create(ctx.isWebGL2), - dGlslVersion: ValueCell.create('100es'), uObjectId: ValueCell.create(id) } const shaderCode = LinesShaderCode diff --git a/src/mol-gl/renderable/mesh.ts b/src/mol-gl/renderable/mesh.ts index fd16901cc765c7ff23b52c21e5e2b044346a9f53..3d5d7d23c3dff7eb3e2fc3d274ab1118688d87fd 100644 --- a/src/mol-gl/renderable/mesh.ts +++ b/src/mol-gl/renderable/mesh.ts @@ -26,8 +26,6 @@ export type MeshValues = Values<MeshSchema> export function MeshRenderable(ctx: Context, id: number, values: MeshValues, state: RenderableState): Renderable<MeshValues> { const schema = { ...GlobalUniformSchema, ...InternalSchema, ...MeshSchema } const internalValues: InternalValues = { - dWebGL2: ValueCell.create(ctx.isWebGL2), - dGlslVersion: ValueCell.create('100es'), uObjectId: ValueCell.create(id) } const shaderCode = MeshShaderCode diff --git a/src/mol-gl/renderable/points.ts b/src/mol-gl/renderable/points.ts index f92bc00a5956f8a4e0627fb083b99fb895230624..9b5e09e2a067808f76f00f5cc549c0e3095d17c8 100644 --- a/src/mol-gl/renderable/points.ts +++ b/src/mol-gl/renderable/points.ts @@ -25,8 +25,6 @@ export type PointsValues = Values<PointsSchema> export function PointsRenderable(ctx: Context, id: number, values: PointsValues, state: RenderableState): Renderable<PointsValues> { const schema = { ...GlobalUniformSchema, ...InternalSchema, ...PointsSchema } const internalValues: InternalValues = { - dWebGL2: ValueCell.create(ctx.isWebGL2), - dGlslVersion: ValueCell.create('100es'), uObjectId: ValueCell.create(id) } const shaderCode = PointsShaderCode diff --git a/src/mol-gl/renderable/schema.ts b/src/mol-gl/renderable/schema.ts index 93b419807a9fe3cd7ea298a5c3d00a2da58a7365..fd8db0a530df4d007e36510fbd0dfc6760d40386 100644 --- a/src/mol-gl/renderable/schema.ts +++ b/src/mol-gl/renderable/schema.ts @@ -148,8 +148,6 @@ export type GlobalUniformSchema = typeof GlobalUniformSchema export type GlobalUniformValues = { [k in keyof GlobalUniformSchema]: ValueCell<any> } export const InternalSchema = { - dWebGL2: DefineSpec('boolean'), - dGlslVersion: DefineSpec('string', ['100es', '300es']), uObjectId: UniformSpec('i'), } export type InternalSchema = typeof InternalSchema diff --git a/src/mol-gl/shader-code.ts b/src/mol-gl/shader-code.ts index 93bfcab696c6e7e7e1a010aac1db3d1f36b93d89..fc0bc7eede630a92e93613fac0ec3bd3accfee0a 100644 --- a/src/mol-gl/shader-code.ts +++ b/src/mol-gl/shader-code.ts @@ -6,6 +6,7 @@ import { ValueCell } from 'mol-util'; import { idFactory } from 'mol-util/id-factory'; +import { Context } from './webgl/context'; export type DefineKind = 'boolean' | 'string' | 'number' export type DefineType = boolean | string @@ -73,6 +74,9 @@ function getDefinesCode (defines: ShaderDefines) { return lines.join('\n') + '\n' } +const glsl100FragPrefix = `#extension GL_OES_standard_derivatives : enable +` + const glsl300VertPrefix = `#version 300 es #define attribute in #define varying out @@ -87,11 +91,11 @@ out highp vec4 out_FragColor; #define texture2D texture ` -export function addShaderDefines(defines: ShaderDefines, shaders: ShaderCode): ShaderCode { - const isGlsl300es = defines.dGlslVersion && defines.dGlslVersion.ref.value === '300es' +export function addShaderDefines(ctx: Context, defines: ShaderDefines, shaders: ShaderCode): ShaderCode { + const { isWebGL2 } = ctx const header = getDefinesCode(defines) - const vertPrefix = isGlsl300es ? glsl300VertPrefix : '' - const fragPrefix = isGlsl300es ? glsl300FragPrefix : '' + const vertPrefix = isWebGL2 ? glsl300VertPrefix : '' + const fragPrefix = isWebGL2 ? glsl300FragPrefix : glsl100FragPrefix return { id: shaderCodeId(), vert: `${vertPrefix}${header}${shaders.vert}`, diff --git a/src/mol-gl/shader/mesh.frag b/src/mol-gl/shader/mesh.frag index 5b6a6e7218aa4d896bed9a19df9692d36bf9f366..ce0233e3b80d9e30bd2aebaac2708bc7c84408ef 100644 --- a/src/mol-gl/shader/mesh.frag +++ b/src/mol-gl/shader/mesh.frag @@ -4,10 +4,6 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -#ifdef dFlatShaded - #extension GL_OES_standard_derivatives : enable -#endif - precision highp float; precision highp int; diff --git a/src/mol-gl/webgl/program.ts b/src/mol-gl/webgl/program.ts index 34fa9501e2ca78895a1789634ccb70b5702dcd46..39a90f7c0aa58d9329709cc51bc6c781b0f587a7 100644 --- a/src/mol-gl/webgl/program.ts +++ b/src/mol-gl/webgl/program.ts @@ -61,7 +61,7 @@ export function createProgram(ctx: Context, props: ProgramProps): Program { throw new Error('Could not create WebGL program') } - const shaderCode = addShaderDefines(defineValues, _shaderCode) + const shaderCode = addShaderDefines(ctx, defineValues, _shaderCode) const vertShaderRef = shaderCache.get(ctx, { type: 'vert', source: shaderCode.vert }) const fragShaderRef = shaderCache.get(ctx, { type: 'frag', source: shaderCode.frag })