function onPointerMove( event ) {
// PointerEvent's movementX/movementY are 0 in WebKit
if ( event.isPrimary === false ) return;
const rect = dom.getBoundingClientRect();
const x = ( document.body.offsetWidth - rect.right ) - event.movementX;
dom.style.right = x + 'px';
document.getElementById( 'sidebar' ).style.width = ( x + rect.width ) + 'px';
document.getElementById( 'viewport' ).style.right = ( x + rect.width ) + 'px';
signals.windowResize.dispatch();
}
signals.windowResize.add( function () {
updateAspectRatio();
renderer.setSize( container.dom.offsetWidth, container.dom.offsetHeight );
render();
} );
function updateAspectRatio() {
camera.aspect = container.dom.offsetWidth / container.dom.offsetHeight;
camera.updateProjectionMatrix();
}
function render() {
startTime = performance.now();
// Adding/removing grid to scene so materials with depthWrite false
// don't render under the grid.
scene.add( grid );
renderer.setViewport( 0, 0, container.dom.offsetWidth, container.dom.offsetHeight );
renderer.render( scene, editor.viewportCamera );
scene.remove( grid );
if ( camera === editor.viewportCamera ) {
renderer.autoClear = false;
if ( showSceneHelpers === true ) renderer.render( sceneHelpers, camera );
if ( vr.currentSession === null ) viewHelper.render( renderer );
renderer.autoClear = true;
}
endTime = performance.now();
editor.signals.sceneRendered.dispatch( endTime - startTime );
}
FR:徐海涛(hunk Xu)
QQ技术交流群:386476712