未验证 提交 a39c8a82 编写于 作者: W WestLangley 提交者: GitHub

Merge pull request #15721 from WestLangley/dev-renderer_size

Require target Vector2 in WebGLRenderer getSize() methods
......@@ -351,14 +351,22 @@
<h3>[method:RenderTarget getCurrentViewport]()</h3>
<p>Returns the current viewport.</p>
<h3>[method:Object getDrawingBufferSize]()</h3>
<p>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</p>
<h3>[method:Vector2 getDrawingBufferSize]( [param:Vector2 target] )</h3>
<p>
[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
Returns the width and height of the renderer's drawing buffer, in pixels.
</p>
<h3>[method:number getPixelRatio]()</h3>
<p>Returns current device pixel ratio used.</p>
<h3>[method:Object getSize]()</h3>
<p>Returns an object containing the width and height of the renderer's output canvas, in pixels.</p>
<h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
<p>
[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
Returns the width and height of the renderer's output canvas, in pixels.
</p>
<h3>[method:null resetGLState]( )</h3>
<p>Reset the GL state to default. Called internally if the WebGL context is lost.</p>
......
......@@ -498,9 +498,9 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
};
this.getSize = function () {
this.getSize = function ( target ) {
return renderer.getSize();
return renderer.getSize( target );
};
......
......@@ -9,6 +9,7 @@ THREE.StereoEffect = function ( renderer ) {
var _stereo = new THREE.StereoCamera();
_stereo.aspect = 0.5;
var size = new THREE.Vector2();
this.setEyeSeparation = function ( eyeSep ) {
......@@ -30,7 +31,7 @@ THREE.StereoEffect = function ( renderer ) {
_stereo.update( camera );
var size = renderer.getSize();
renderer.getSize( size );
if ( renderer.autoClear ) renderer.clear();
renderer.setScissorTest( true );
......
......@@ -16,7 +16,7 @@ function NodePostProcessing( renderer, renderTarget ) {
stencilBuffer: false
};
var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters );
}
......
......@@ -33,6 +33,7 @@ THREE.Reflector = function ( geometry, options ) {
var view = new THREE.Vector3();
var target = new THREE.Vector3();
var q = new THREE.Vector4();
var size = new THREE.Vector2();
var textureMatrix = new THREE.Matrix4();
var virtualCamera = new THREE.PerspectiveCamera();
......@@ -175,7 +176,7 @@ THREE.Reflector = function ( geometry, options ) {
if ( bounds !== undefined ) {
var size = renderer.getSize();
renderer.getSize( size );
var pixelRatio = renderer.getPixelRatio();
viewport.x = bounds.x * size.width * pixelRatio;
......
......@@ -187,6 +187,7 @@ THREE.Refractor = function ( geometry, options ) {
var render = ( function () {
var viewport = new THREE.Vector4();
var size = new THREE.Vector2();
return function render( renderer, scene, camera ) {
......@@ -213,7 +214,7 @@ THREE.Refractor = function ( geometry, options ) {
if ( bounds !== undefined ) {
var size = renderer.getSize();
renderer.getSize( size );
var pixelRatio = renderer.getPixelRatio();
viewport.x = bounds.x * size.width * pixelRatio;
......
......@@ -15,7 +15,7 @@ THREE.EffectComposer = function ( renderer, renderTarget ) {
stencilBuffer: false
};
var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters );
renderTarget.texture.name = 'EffectComposer.rt1';
......@@ -64,7 +64,7 @@ Object.assign( THREE.EffectComposer.prototype, {
this.passes.push( pass );
var size = this.renderer.getDrawingBufferSize();
var size = this.renderer.getDrawingBufferSize( new THREE.Vector2() );
pass.setSize( size.width, size.height );
},
......@@ -143,7 +143,7 @@ Object.assign( THREE.EffectComposer.prototype, {
if ( renderTarget === undefined ) {
var size = this.renderer.getDrawingBufferSize();
var size = this.renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = this.renderTarget1.clone();
renderTarget.setSize( size.width, size.height );
......
......@@ -125,8 +125,8 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
_gl = _this.renderer.context;
_width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize().width;
_height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize().height;
_width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize( new THREE.Vector2() ).width;
_height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize( new THREE.Vector2() ).height;
var antialias = parameters.antialias !== undefined ? parameters.antialias : false;
......
......@@ -130,7 +130,7 @@
stencilBuffer: false
};
var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var renderTarget = new THREE.WebGLMultisampleRenderTarget( size.width, size.height, parameters );
var renderPass = new THREE.RenderPass( scene, camera );
......
......@@ -369,7 +369,7 @@
// POST
var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var screen = new THREE.ScreenNode();
......@@ -451,7 +451,7 @@
// POST
var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() );
blurScreen.size = new THREE.Vector2( size.width, size.height );
......
......@@ -432,7 +432,7 @@
// PASS
var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() );
blurScreen.size = new THREE.Vector2( size.width, size.height );
......
......@@ -206,7 +206,7 @@ export class WebGLRenderer implements Renderer {
getDrawingBufferSize(): { width: number; height: number };
setDrawingBufferSize(width: number, height: number, pixelRatio: number): void;
getSize(): { width: number; height: number };
getSize(target: Vector2): Vector2;
/**
* Resizes the output canvas to (width, height), and also sets the viewport to fit that size, starting in (0, 0).
......
......@@ -17,6 +17,7 @@ import { Matrix4 } from '../math/Matrix4.js';
import { ShaderLib } from './shaders/ShaderLib.js';
import { UniformsLib } from './shaders/UniformsLib.js';
import { cloneUniforms } from './shaders/UniformsUtils.js';
import { Vector2 } from '../math/Vector2.js';
import { Vector3 } from '../math/Vector3.js';
import { Vector4 } from '../math/Vector4.js';
import { WebGLAnimation } from './webgl/WebGLAnimation.js';
......@@ -360,12 +361,17 @@ function WebGLRenderer( parameters ) {
};
this.getSize = function () {
this.getSize = function ( target ) {
return {
width: _width,
height: _height
};
if ( target === undefined ) {
console.warn( 'WebGLRenderer: .getsize() now requires a Vector2 as an argument' );
target = new Vector2();
}
return target.set( _width, _height );
};
......@@ -395,12 +401,17 @@ function WebGLRenderer( parameters ) {
};
this.getDrawingBufferSize = function () {
this.getDrawingBufferSize = function ( target ) {
return {
width: _width * _pixelRatio,
height: _height * _pixelRatio
};
if ( target === undefined ) {
console.warn( 'WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument' );
target = new Vector2();
}
return target.set( _width * _pixelRatio, _height * _pixelRatio );
};
......
......@@ -4,6 +4,7 @@
import { Group } from '../../objects/Group.js';
import { Matrix4 } from '../../math/Matrix4.js';
import { Vector2 } from '../../math/Vector2.js';
import { Vector3 } from '../../math/Vector3.js';
import { Vector4 } from '../../math/Vector4.js';
import { Quaternion } from '../../math/Quaternion.js';
......@@ -60,7 +61,7 @@ function WebVRManager( renderer ) {
}
var currentSize, currentPixelRatio;
var currentSize = new Vector2(), currentPixelRatio;
function onVRDisplayPresentChange() {
......@@ -71,7 +72,7 @@ function WebVRManager( renderer ) {
var renderHeight = eyeParameters.renderHeight * framebufferScaleFactor;
currentPixelRatio = renderer.getPixelRatio();
currentSize = renderer.getSize();
renderer.getSize( currentSize );
renderer.setDrawingBufferSize( renderWidth * 2, renderHeight, 1 );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册