From 7753a6ec56d162afd320783dba8ed21322036927 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sat, 30 Jan 2021 12:57:19 -0800 Subject: [PATCH] renderable schema cleanup - use base schema in direct-volume schema --- src/mol-gl/renderable/cylinders.ts | 1 + src/mol-gl/renderable/direct-volume.ts | 51 +++----------------------- src/mol-gl/renderable/image.ts | 2 +- src/mol-gl/renderable/lines.ts | 1 + src/mol-gl/renderable/mesh.ts | 1 + src/mol-gl/renderable/points.ts | 1 + src/mol-gl/renderable/schema.ts | 1 - src/mol-gl/renderable/spheres.ts | 1 + src/mol-gl/renderable/text.ts | 1 + src/mol-gl/renderable/texture-mesh.ts | 4 +- 10 files changed, 15 insertions(+), 49 deletions(-) diff --git a/src/mol-gl/renderable/cylinders.ts b/src/mol-gl/renderable/cylinders.ts index 7d4c260e6..a7a094aad 100644 --- a/src/mol-gl/renderable/cylinders.ts +++ b/src/mol-gl/renderable/cylinders.ts @@ -14,6 +14,7 @@ import { ValueCell } from '../../mol-util'; export const CylindersSchema = { ...BaseSchema, ...SizeSchema, + aGroup: AttributeSpec('float32', 1, 0), aStart: AttributeSpec('float32', 3, 0), aEnd: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 3, 0), diff --git a/src/mol-gl/renderable/direct-volume.ts b/src/mol-gl/renderable/direct-volume.ts index 56e025de3..1c0734384 100644 --- a/src/mol-gl/renderable/direct-volume.ts +++ b/src/mol-gl/renderable/direct-volume.ts @@ -7,59 +7,20 @@ import { Renderable, RenderableState, createRenderable } from '../renderable'; import { WebGLContext } from '../webgl/context'; import { createGraphicsRenderItem } from '../webgl/render-item'; -import { AttributeSpec, Values, UniformSpec, GlobalUniformSchema, InternalSchema, TextureSpec, ValueSpec, ElementsSpec, DefineSpec, InternalValues, GlobalTextureSchema } from './schema'; +import { AttributeSpec, Values, UniformSpec, GlobalUniformSchema, InternalSchema, TextureSpec, ElementsSpec, DefineSpec, InternalValues, GlobalTextureSchema, BaseSchema } from './schema'; import { DirectVolumeShaderCode } from '../shader-code'; import { ValueCell } from '../../mol-util'; export const DirectVolumeSchema = { - uColor: UniformSpec('v3'), - uColorTexDim: UniformSpec('v2'), - tColor: TextureSpec('image-uint8', 'rgb', 'ubyte', 'nearest'), - dColorType: DefineSpec('string', ['uniform', 'attribute', 'instance', 'group', 'groupInstance', 'vertex', 'vertexInstance']), - - uMarkerTexDim: UniformSpec('v2'), - tMarker: TextureSpec('image-uint8', 'alpha', 'ubyte', 'nearest'), - - uOverpaintTexDim: UniformSpec('v2'), - tOverpaint: TextureSpec('image-uint8', 'rgba', 'ubyte', 'nearest'), - dOverpaint: DefineSpec('boolean'), - - uTransparencyTexDim: UniformSpec('v2'), - tTransparency: TextureSpec('image-uint8', 'alpha', 'ubyte', 'nearest'), - dTransparency: DefineSpec('boolean'), - transparencyAverage: ValueSpec('number'), - - dClipObjectCount: DefineSpec('number'), - dClipVariant: DefineSpec('string', ['instance', 'pixel']), - uClippingTexDim: UniformSpec('v2'), - tClipping: TextureSpec('image-uint8', 'alpha', 'ubyte', 'nearest'), - dClipping: DefineSpec('boolean'), - - uVertexCount: UniformSpec('i'), - uInstanceCount: UniformSpec('i'), - uGroupCount: UniformSpec('i'), - uInvariantBoundingSphere: UniformSpec('v4'), - - aInstance: AttributeSpec('float32', 1, 1), - aTransform: AttributeSpec('float32', 16, 1), - - drawCount: ValueSpec('number'), - instanceCount: ValueSpec('number'), - - alpha: ValueSpec('number'), - - matrix: ValueSpec('m4'), - transform: ValueSpec('float32'), - extraTransform: ValueSpec('float32'), - hasReflection: ValueSpec('boolean'), - - boundingSphere: ValueSpec('sphere'), - invariantBoundingSphere: ValueSpec('sphere'), + ...BaseSchema, aPosition: AttributeSpec('float32', 3, 0), elements: ElementsSpec('uint32'), - uAlpha: UniformSpec('f'), + uColor: UniformSpec('v3'), + uColorTexDim: UniformSpec('v2'), + tColor: TextureSpec('image-uint8', 'rgb', 'ubyte', 'nearest'), + dColorType: DefineSpec('string', ['uniform', 'attribute', 'instance', 'group', 'groupInstance', 'vertex', 'vertexInstance']), uIsoValue: UniformSpec('v2'), uBboxMin: UniformSpec('v3'), diff --git a/src/mol-gl/renderable/image.ts b/src/mol-gl/renderable/image.ts index 82c517213..0b7890800 100644 --- a/src/mol-gl/renderable/image.ts +++ b/src/mol-gl/renderable/image.ts @@ -15,9 +15,9 @@ import { InterpolationTypeNames } from '../../mol-geo/geometry/image/image'; export const ImageSchema = { ...BaseSchema, + aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aUv: AttributeSpec('float32', 2, 0), - elements: ElementsSpec('uint32'), uImageTexDim: UniformSpec('v2'), diff --git a/src/mol-gl/renderable/lines.ts b/src/mol-gl/renderable/lines.ts index a8272b29c..539a9caaf 100644 --- a/src/mol-gl/renderable/lines.ts +++ b/src/mol-gl/renderable/lines.ts @@ -14,6 +14,7 @@ import { LinesShaderCode } from '../shader-code'; export const LinesSchema = { ...BaseSchema, ...SizeSchema, + aGroup: AttributeSpec('float32', 1, 0), aMapping: AttributeSpec('float32', 2, 0), aStart: AttributeSpec('float32', 3, 0), aEnd: AttributeSpec('float32', 3, 0), diff --git a/src/mol-gl/renderable/mesh.ts b/src/mol-gl/renderable/mesh.ts index f608ae413..a21263441 100644 --- a/src/mol-gl/renderable/mesh.ts +++ b/src/mol-gl/renderable/mesh.ts @@ -13,6 +13,7 @@ import { ValueCell } from '../../mol-util'; export const MeshSchema = { ...BaseSchema, + aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aNormal: AttributeSpec('float32', 3, 0), elements: ElementsSpec('uint32'), diff --git a/src/mol-gl/renderable/points.ts b/src/mol-gl/renderable/points.ts index a97b8bb59..315d6de4b 100644 --- a/src/mol-gl/renderable/points.ts +++ b/src/mol-gl/renderable/points.ts @@ -14,6 +14,7 @@ import { ValueCell } from '../../mol-util'; export const PointsSchema = { ...BaseSchema, ...SizeSchema, + aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), dPointSizeAttenuation: DefineSpec('boolean'), dPointFilledCircle: DefineSpec('boolean'), diff --git a/src/mol-gl/renderable/schema.ts b/src/mol-gl/renderable/schema.ts index 4a1644272..68791ed85 100644 --- a/src/mol-gl/renderable/schema.ts +++ b/src/mol-gl/renderable/schema.ts @@ -242,7 +242,6 @@ export const BaseSchema = { ...ClippingSchema, aInstance: AttributeSpec('float32', 1, 1), - aGroup: AttributeSpec('float32', 1, 0), /** * final per-instance transform calculated for instance `i` as * `aTransform[i] = matrix * transform[i] * extraTransform[i]` diff --git a/src/mol-gl/renderable/spheres.ts b/src/mol-gl/renderable/spheres.ts index 65f0fc4d3..58959cf1d 100644 --- a/src/mol-gl/renderable/spheres.ts +++ b/src/mol-gl/renderable/spheres.ts @@ -14,6 +14,7 @@ import { ValueCell } from '../../mol-util'; export const SpheresSchema = { ...BaseSchema, ...SizeSchema, + aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 2, 0), elements: ElementsSpec('uint32'), diff --git a/src/mol-gl/renderable/text.ts b/src/mol-gl/renderable/text.ts index a31ca9939..c75fb374e 100644 --- a/src/mol-gl/renderable/text.ts +++ b/src/mol-gl/renderable/text.ts @@ -14,6 +14,7 @@ import { ValueCell } from '../../mol-util'; export const TextSchema = { ...BaseSchema, ...SizeSchema, + aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 2, 0), aDepth: AttributeSpec('float32', 1, 0), diff --git a/src/mol-gl/renderable/texture-mesh.ts b/src/mol-gl/renderable/texture-mesh.ts index 780d997bb..b6eb7fc62 100644 --- a/src/mol-gl/renderable/texture-mesh.ts +++ b/src/mol-gl/renderable/texture-mesh.ts @@ -7,13 +7,13 @@ import { Renderable, RenderableState, createRenderable } from '../renderable'; import { WebGLContext } from '../webgl/context'; import { createGraphicsRenderItem } from '../webgl/render-item'; -import { GlobalUniformSchema, BaseSchema, DefineSpec, Values, InternalSchema, InternalValues, UniformSpec, TextureSpec, GlobalTextureSchema } from './schema'; +import { GlobalUniformSchema, BaseSchema, DefineSpec, Values, InternalSchema, InternalValues, UniformSpec, TextureSpec, GlobalTextureSchema, AttributeSpec } from './schema'; import { MeshShaderCode } from '../shader-code'; import { ValueCell } from '../../mol-util'; export const TextureMeshSchema = { ...BaseSchema, - + aGroup: AttributeSpec('float32', 1, 0), uGeoTexDim: UniformSpec('v2'), /** texture has vertex positions in XYZ and group id in W */ tPositionGroup: TextureSpec('texture', 'rgba', 'float', 'nearest'), -- GitLab