Skip to content
Snippets Groups Projects
Commit dafe8ca2 authored by Alexander Rose's avatar Alexander Rose
Browse files

log tweaks

parent 9cf599d8
No related branches found
No related tags found
No related merge requests found
......@@ -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) {
......
......@@ -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))
}
......
......@@ -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>
......
......@@ -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>
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment