Browse Source

always use glsl300 for webgl2

arose 6 years ago
parent
commit
37bc4f1741

+ 1 - 1
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> {

+ 0 - 2
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)
     }
 }

+ 0 - 2
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

+ 0 - 2
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

+ 0 - 2
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

+ 0 - 2
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

+ 8 - 4
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}`,

+ 0 - 4
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;
 

+ 1 - 1
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 })