From b8ddccfe67449a6579351e7840216dcac4cc9fca Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Wed, 15 May 2019 19:48:25 -0700 Subject: [PATCH] removed container param from canvas3d constructor --- src/mol-canvas3d/canvas3d.ts | 4 +--- src/mol-canvas3d/util.ts | 18 ------------------ src/mol-plugin/context.ts | 2 +- src/mol-plugin/ui/viewport.tsx | 13 +++++++++++++ src/tests/browser/marching-cubes.ts | 2 +- src/tests/browser/render-asa.ts | 2 +- src/tests/browser/render-lines.ts | 2 +- src/tests/browser/render-mesh.ts | 2 +- src/tests/browser/render-shape.ts | 2 +- src/tests/browser/render-spheres.ts | 2 +- src/tests/browser/render-structure.ts | 2 +- src/tests/browser/render-text.ts | 2 +- 12 files changed, 23 insertions(+), 30 deletions(-) delete mode 100644 src/mol-canvas3d/util.ts diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index 3a6a815b6..e810bf871 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -14,7 +14,6 @@ import { GraphicsRenderObject } from 'mol-gl/render-object' import { TrackballControls, TrackballControlsParams } from './controls/trackball' import { Viewport } from './camera/util' -import { resizeCanvas } from './util'; import { createContext, getGLContext, WebGLContext } from 'mol-gl/webgl/context'; import { Representation } from 'mol-repr/representation'; import { createRenderTarget } from 'mol-gl/webgl/render-target'; @@ -93,7 +92,7 @@ namespace Canvas3D { export interface HighlightEvent { current: Representation.Loci, prev: Representation.Loci, modifiers?: ModifiersKeys } export interface ClickEvent { current: Representation.Loci, buttons: ButtonsType, modifiers: ModifiersKeys } - export function create(canvas: HTMLCanvasElement, container: Element, props: Partial<Canvas3DProps> = {}): Canvas3D { + export function create(canvas: HTMLCanvasElement, props: Partial<Canvas3DProps> = {}): Canvas3D { const p = { ...PD.getDefaultValues(Canvas3DParams), ...props } const reprRenderObjects = new Map<Representation.Any, Set<GraphicsRenderObject>>() @@ -682,7 +681,6 @@ namespace Canvas3D { } function handleResize() { - resizeCanvas(canvas, container) renderer.setViewport(0, 0, canvas.width, canvas.height) Viewport.set(camera.viewport, 0, 0, canvas.width, canvas.height) Viewport.set(controls.viewport, 0, 0, canvas.width, canvas.height) diff --git a/src/mol-canvas3d/util.ts b/src/mol-canvas3d/util.ts deleted file mode 100644 index 294907ad3..000000000 --- a/src/mol-canvas3d/util.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. - * - * @author Alexander Rose <alexander.rose@weirdbyte.de> - */ - -export function resizeCanvas (canvas: HTMLCanvasElement, container: Element) { - let w = window.innerWidth - let h = window.innerHeight - if (container !== document.body) { - let bounds = container.getBoundingClientRect() - w = bounds.right - bounds.left - h = bounds.bottom - bounds.top - } - canvas.width = window.devicePixelRatio * w - canvas.height = window.devicePixelRatio * h - Object.assign(canvas.style, { width: `${w}px`, height: `${h}px` }) -} \ No newline at end of file diff --git a/src/mol-plugin/context.ts b/src/mol-plugin/context.ts index d35533a86..9258b1dac 100644 --- a/src/mol-plugin/context.ts +++ b/src/mol-plugin/context.ts @@ -113,7 +113,7 @@ export class PluginContext { try { this.layout.setRoot(container); if (this.spec.layout && this.spec.layout.initial) this.layout.setProps(this.spec.layout.initial); - (this.canvas3d as Canvas3D) = Canvas3D.create(canvas, container); + (this.canvas3d as Canvas3D) = Canvas3D.create(canvas); const renderer = this.canvas3d.props.renderer; PluginCommands.Canvas3D.SetSettings.dispatch(this, { settings: { renderer: { ...renderer, backgroundColor: Color(0xFCFBF9) } } }); this.canvas3d.animate(); diff --git a/src/mol-plugin/ui/viewport.tsx b/src/mol-plugin/ui/viewport.tsx index 859d1e421..99263d9d0 100644 --- a/src/mol-plugin/ui/viewport.tsx +++ b/src/mol-plugin/ui/viewport.tsx @@ -91,6 +91,19 @@ export class Viewport extends PluginUIComponent<{ }, ViewportState> { }; private handleResize = () => { + let w = window.innerWidth + let h = window.innerHeight + const container = this.container.current + const canvas = this.canvas.current + if (!container || !canvas) return + if (container !== document.body) { + let bounds = container.getBoundingClientRect() + w = bounds.right - bounds.left + h = bounds.bottom - bounds.top + } + canvas.width = window.devicePixelRatio * w + canvas.height = window.devicePixelRatio * h + Object.assign(canvas.style, { width: `${w}px`, height: `${h}px` }) this.plugin.canvas3d.handleResize(); } diff --git a/src/tests/browser/marching-cubes.ts b/src/tests/browser/marching-cubes.ts index 2aa507cc0..6fcebee4a 100644 --- a/src/tests/browser/marching-cubes.ts +++ b/src/tests/browser/marching-cubes.ts @@ -32,7 +32,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent, { +const canvas3d = Canvas3D.create(canvas, { renderer: { ...PD.getDefaultValues(RendererParams), backgroundColor: ColorNames.white }, cameraMode: 'orthographic' }) diff --git a/src/tests/browser/render-asa.ts b/src/tests/browser/render-asa.ts index a77239225..7c00786ea 100644 --- a/src/tests/browser/render-asa.ts +++ b/src/tests/browser/render-asa.ts @@ -28,7 +28,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() diff --git a/src/tests/browser/render-lines.ts b/src/tests/browser/render-lines.ts index 40962cea9..1b5b104bb 100644 --- a/src/tests/browser/render-lines.ts +++ b/src/tests/browser/render-lines.ts @@ -23,7 +23,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() function linesRepr() { diff --git a/src/tests/browser/render-mesh.ts b/src/tests/browser/render-mesh.ts index 13d752b7d..1100bb5af 100644 --- a/src/tests/browser/render-mesh.ts +++ b/src/tests/browser/render-mesh.ts @@ -24,7 +24,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() function meshRepr() { diff --git a/src/tests/browser/render-shape.ts b/src/tests/browser/render-shape.ts index 124831af9..7c8290586 100644 --- a/src/tests/browser/render-shape.ts +++ b/src/tests/browser/render-shape.ts @@ -38,7 +38,7 @@ info.style.color = 'white' parent.appendChild(info) let prevReprLoci = Representation.Loci.Empty -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() canvas3d.input.move.subscribe(({x, y}) => { const pickingId = canvas3d.identify(x, y) diff --git a/src/tests/browser/render-spheres.ts b/src/tests/browser/render-spheres.ts index c933d2781..8223d4b18 100644 --- a/src/tests/browser/render-spheres.ts +++ b/src/tests/browser/render-spheres.ts @@ -21,7 +21,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() function spheresRepr() { diff --git a/src/tests/browser/render-structure.ts b/src/tests/browser/render-structure.ts index e0c5249bf..b8962abb0 100644 --- a/src/tests/browser/render-structure.ts +++ b/src/tests/browser/render-structure.ts @@ -26,7 +26,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() diff --git a/src/tests/browser/render-text.ts b/src/tests/browser/render-text.ts index c8f55c2fb..145ea3a43 100644 --- a/src/tests/browser/render-text.ts +++ b/src/tests/browser/render-text.ts @@ -24,7 +24,7 @@ canvas.style.width = '100%' canvas.style.height = '100%' parent.appendChild(canvas) -const canvas3d = Canvas3D.create(canvas, parent) +const canvas3d = Canvas3D.create(canvas) canvas3d.animate() function textRepr() { -- GitLab