Skip to content

Commit 0d15817

Browse files
author
理子豪
committed
ViewHelper: Customize the viewport size and fix renderer.autoClear settings
1 parent c5f48e4 commit 0d15817

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

examples/jsm/helpers/ViewHelper.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,15 @@ class ViewHelper extends Object3D {
155155
point.set( 0, 0, 1 );
156156
point.applyQuaternion( camera.quaternion );
157157

158-
//
159-
160-
const x = domElement.offsetWidth - dim;
161-
const y = renderer.isWebGPURenderer ? domElement.offsetHeight - dim : 0;
162-
163158
renderer.clearDepth();
164159

165160
renderer.getViewport( viewport );
166-
renderer.setViewport( x, y, dim, dim );
161+
renderer.setViewport( helperViewport.x, helperViewport.y, helperViewport.z, helperViewport.w );
167162

163+
const autoClear = renderer.autoClear;
164+
renderer.autoClear = false;
168165
renderer.render( this, orthoCamera );
166+
renderer.autoClear = autoClear;
169167

170168
renderer.setViewport( viewport.x, viewport.y, viewport.z, viewport.w );
171169

@@ -177,8 +175,22 @@ class ViewHelper extends Object3D {
177175
const q1 = new Quaternion();
178176
const q2 = new Quaternion();
179177
const viewport = new Vector4();
178+
const helperViewport = new Vector4( domElement.offsetWidth - dim, 0, dim, dim );
180179
let radius = 0;
181180

181+
/**
182+
* Sets the viewport for the helper.
183+
* @param {number} x viewport x
184+
* @param {number} y viewport y
185+
* @param {number} width viewport width
186+
* @param {number} height viewport height
187+
*/
188+
this.setViewport = function ( x, y, width, height ) {
189+
190+
helperViewport.set( x, y, width, height );
191+
192+
};
193+
182194
/**
183195
* This method should be called when a click or pointer event
184196
* has happened in the app.

0 commit comments

Comments
 (0)