From 37bc4f17412f2df98ade4e1b13d4c1b214c14432 Mon Sep 17 00:00:00 2001 From: arose <alexander.rose@weirdbyte.de> Date: Fri, 12 Oct 2018 17:11:19 -0700 Subject: [PATCH] always use glsl300 for webgl2 --- src/mol-geo/representation/structure/units-visual.ts | 2 +- src/mol-gl/renderable/direct-volume.ts | 2 -- src/mol-gl/renderable/lines.ts | 2 -- src/mol-gl/renderable/mesh.ts | 2 -- src/mol-gl/renderable/points.ts | 2 -- src/mol-gl/renderable/schema.ts | 2 -- src/mol-gl/shader-code.ts | 12 ++++++++---- src/mol-gl/shader/mesh.frag | 4 ---- src/mol-gl/webgl/program.ts | 2 +- 9 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/mol-geo/representation/structure/units-visual.ts b/src/mol-geo/representation/structure/units-visual.ts index dd1eaafad..76c2dac24 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 55d3143f0..024848348 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 186772e2e..7baaa5585 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 fd16901cc..3d5d7d23c 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 f92bc00a5..9b5e09e2a 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 93b419807..fd8db0a53 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 93bfcab69..fc0bc7eed 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 5b6a6e721..ce0233e3b 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 34fa9501e..39a90f7c0 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 }) -- GitLab