diff --git a/src/apps/canvas/app.ts b/src/apps/canvas/app.ts index d4eb773e66b794609ddddcca0bec6c2f6b2bf755..25b2b5aeba30cd47ab92d99e7fb7d5fcdb46b391 100644 --- a/src/apps/canvas/app.ts +++ b/src/apps/canvas/app.ts @@ -11,6 +11,7 @@ import { BehaviorSubject } from 'rxjs'; import { CifBlock } from 'mol-io/reader/cif'; import { VolumeView } from './volume-view'; import { Ccp4File } from 'mol-io/reader/ccp4/schema'; +import { Progress } from 'mol-task'; export class App { canvas3d: Canvas3D @@ -59,6 +60,10 @@ export class App { return result } + log(progress: Progress) { + console.log(Progress.format(progress)) + } + // async loadMmcif(cif: CifBlock, assemblyId?: string) { diff --git a/src/apps/canvas/component/representation.tsx b/src/apps/canvas/component/representation.tsx index 231d1c4068d84ab8d8814d5045f9bf627b55efc9..cca0ca103bb3e0c91eec71aea8445e02073e2bd9 100644 --- a/src/apps/canvas/component/representation.tsx +++ b/src/apps/canvas/component/representation.tsx @@ -10,14 +10,13 @@ import { App } from '../app'; import { Params } from 'mol-util/parameter'; import { Representation } from 'mol-geo/representation'; import { ParametersComponent } from 'mol-app/component/parameters'; -import { Progress } from 'mol-task'; import { ColorTheme } from 'mol-theme/color'; import { getColorThemeProps } from 'mol-geo/geometry/color-data'; import { ColorThemeComponent } from 'mol-app/component/color-theme'; export interface RepresentationComponentProps { app: App - viewer: Canvas3D + canvas3d: Canvas3D repr: Representation<Params> } @@ -43,10 +42,10 @@ export class RepresentationComponent extends React.Component<RepresentationCompo async onChange(k: string, v: any) { await this.props.app.runTask(this.props.repr.createOrUpdate({ [k]: v }).run( - progress => console.log(Progress.format(progress)) + progress => this.props.app.log(progress) ), 'Representation Update') - this.props.viewer.add(this.props.repr) - this.props.viewer.requestDraw(true) + this.props.canvas3d.add(this.props.repr) + this.props.canvas3d.requestDraw(true) this.setState(this.stateFromRepr(this.props.repr)) } diff --git a/src/apps/canvas/component/structure-view.tsx b/src/apps/canvas/component/structure-view.tsx index 9518d047904f6f4e200dd3e57988826e81b3b8b8..bbf3263c86bce921fe8b4a49a2bf87e67f86d483 100644 --- a/src/apps/canvas/component/structure-view.tsx +++ b/src/apps/canvas/component/structure-view.tsx @@ -174,7 +174,7 @@ export class StructureViewComponent extends React.Component<StructureViewCompone return <div key={i}> <RepresentationComponent repr={structureRepresentations[k] as Representation<any>} - viewer={structureView.viewer} + canvas3d={structureView.viewer} app={structureView.app} /> </div> diff --git a/src/apps/canvas/component/volume-view.tsx b/src/apps/canvas/component/volume-view.tsx index f816102bbf72f8599e885a1ef1d12c4041e7ff20..d7b596500b82a4b8f2465b7f313acf950dcf0502 100644 --- a/src/apps/canvas/component/volume-view.tsx +++ b/src/apps/canvas/component/volume-view.tsx @@ -89,7 +89,7 @@ export class VolumeViewComponent extends React.Component<VolumeViewComponentProp return <div key={i}> <RepresentationComponent repr={volumeRepresentations[k] as Representation<any>} - viewer={volumeView.viewer} + canvas3d={volumeView.viewer} app={volumeView.app} /> </div> diff --git a/src/apps/canvas/structure-view.ts b/src/apps/canvas/structure-view.ts index 12d52a0915866107ecc30d041b2787348ba98a5b..bde3e67e940eed4b22fb034e1dbeee9626f2b9f2 100644 --- a/src/apps/canvas/structure-view.ts +++ b/src/apps/canvas/structure-view.ts @@ -26,7 +26,6 @@ import { SpacefillRepresentation } from 'mol-geo/representation/structure/repres import { DistanceRestraintRepresentation } from 'mol-geo/representation/structure/representation/distance-restraint'; import { MolecularSurfaceRepresentation } from 'mol-geo/representation/structure/representation/molecular-surface'; import { App } from './app'; -import { Progress } from 'mol-task'; export interface StructureView { readonly app: App @@ -211,7 +210,7 @@ export async function StructureView(app: App, viewer: Canvas3D, models: Readonly if (active[k]) { const p = { webgl: viewer.webgl } await app.runTask(structureRepresentations[k].createOrUpdate(p, structure).run( - progress => console.log(Progress.format(progress)) + progress => app.log(progress) ), 'Create/update representation') viewer.add(structureRepresentations[k]) } else { diff --git a/src/apps/canvas/volume-view.ts b/src/apps/canvas/volume-view.ts index 6bb76dc85744e178fc49b457eff5dc0efac52ba6..0f17a5c9db43bf3019b4946365e97eedd04a967b 100644 --- a/src/apps/canvas/volume-view.ts +++ b/src/apps/canvas/volume-view.ts @@ -7,7 +7,6 @@ import Canvas3D from 'mol-canvas3d/canvas3d'; import { BehaviorSubject } from 'rxjs'; import { App } from './app'; -import { Progress } from 'mol-task'; import { VolumeData } from 'mol-model/volume'; import { VolumeRepresentation } from 'mol-geo/representation/volume'; import { IsosurfaceRepresentation } from 'mol-geo/representation/volume/isosurface-mesh'; @@ -57,7 +56,7 @@ export async function VolumeView(app: App, viewer: Canvas3D, volume: VolumeData, if (active[k]) { const p = { webgl: viewer.webgl } await app.runTask(volumeRepresentations[k].createOrUpdate(p, volume).run( - progress => console.log(Progress.format(progress)) + progress => app.log(progress) ), 'Create/update representation') viewer.add(volumeRepresentations[k]) } else { diff --git a/src/mol-math/geometry/gaussian-density/gpu.ts b/src/mol-math/geometry/gaussian-density/gpu.ts index 7771088ec642db2bd51897fd6d14640e01295629..32dda1527f3999e14aa5d04694d08a849a106f39 100644 --- a/src/mol-math/geometry/gaussian-density/gpu.ts +++ b/src/mol-math/geometry/gaussian-density/gpu.ts @@ -17,7 +17,7 @@ import { RenderableState, Renderable } from 'mol-gl/renderable' import { createRenderable, createGaussianDensityRenderObject } from 'mol-gl/render-object' import { WebGLContext, createContext, getGLContext } from 'mol-gl/webgl/context'; import { createTexture, Texture } from 'mol-gl/webgl/texture'; -import { GLRenderingContext, isWebGL2 } from 'mol-gl/webgl/compat'; +import { GLRenderingContext } from 'mol-gl/webgl/compat'; import { decodeIdRGB } from 'mol-geo/geometry/picking'; /** name for shared framebuffer used for gpu gaussian surface operations */ @@ -27,9 +27,9 @@ export async function GaussianDensityGPU(ctx: RuntimeContext, position: Position const webgl = defaults(props.webgl, getWebGLContext()) // always use texture2d when the gaussian density needs to be downloaded from the GPU, // it's faster than texture3d - console.time('GaussianDensityTexture2d') + // console.time('GaussianDensityTexture2d') const { scale, bbox, texture, dim } = await GaussianDensityTexture2d(ctx, webgl, position, box, radius, props) - console.timeEnd('GaussianDensityTexture2d') + // console.timeEnd('GaussianDensityTexture2d') const { field, idField } = await fieldFromTexture2d(webgl, texture, dim) const transform = Mat4.identity() @@ -40,11 +40,11 @@ export async function GaussianDensityGPU(ctx: RuntimeContext, position: Position } export async function GaussianDensityTexture(ctx: RuntimeContext, webgl: WebGLContext, position: PositionData, box: Box3D, radius: (index: number) => number, props: GaussianDensityProps, oldTexture?: Texture): Promise<DensityTextureData> { - console.time(`GaussianDensityTexture, ${webgl.isWebGL2 ? '3d' : '2d'}`) + // console.time(`GaussianDensityTexture, ${webgl.isWebGL2 ? '3d' : '2d'}`) const { texture, scale, bbox, dim } = webgl.isWebGL2 ? await GaussianDensityTexture3d(ctx, webgl, position, box, radius, props, oldTexture) : await GaussianDensityTexture2d(ctx, webgl, position, box, radius, props, oldTexture) - console.timeEnd(`GaussianDensityTexture, ${webgl.isWebGL2 ? '3d' : '2d'}`) + // console.timeEnd(`GaussianDensityTexture, ${webgl.isWebGL2 ? '3d' : '2d'}`) const transform = Mat4.identity() Mat4.fromScaling(transform, scale) @@ -215,7 +215,7 @@ async function prepareGaussianDensityData(ctx: RuntimeContext, position: Positio const delta = getDelta(expandedBox, resolution) const dim = Vec3.zero() Vec3.ceil(dim, Vec3.mul(dim, extent, delta)) - console.log('grid dim gpu', dim) + // console.log('grid dim gpu', dim) return { drawCount: n, positions, radii, groups, delta, expandedBox, dim } } @@ -309,8 +309,7 @@ function getTexture2dSize(maxTexSize: number, gridDim: Vec3) { } async function fieldFromTexture2d(ctx: WebGLContext, texture: Texture, dim: Vec3) { - console.log('isWebGL2', isWebGL2(ctx.gl)) - console.time('fieldFromTexture2d') + // console.time('fieldFromTexture2d') const { framebufferCache } = ctx const [ dx, dy, dz ] = dim const { width, height } = texture @@ -348,7 +347,7 @@ async function fieldFromTexture2d(ctx: WebGLContext, texture: Texture, dim: Vec3 tmpCol++ } - console.timeEnd('fieldFromTexture2d') + // console.timeEnd('fieldFromTexture2d') return { field, idField } } \ No newline at end of file