diff --git a/docs/api/renderers/WebGLRenderer.html b/docs/api/renderers/WebGLRenderer.html index c8582691d452f3e8ea02e49d958f01b428afb193..5ef34bb6d5ddcf8ad25767cc83cad2da84e4e818 100644 --- a/docs/api/renderers/WebGLRenderer.html +++ b/docs/api/renderers/WebGLRenderer.html @@ -355,6 +355,9 @@

[method:RenderTarget getRenderTarget]()

Returns the current RenderTarget, if any.
+

[method:RenderTarget getViewport]()

+
Returns the current viewport.
+

[method:Number getMaxAnisotropy]()

This returns the anisotropy level of the textures.
diff --git a/examples/js/objects/LensFlare.js b/examples/js/objects/LensFlare.js index a82725782d4eba15dccc145895eedaee9914de84..a2db7dcdacec11bad0cdd3756f27ccbd8e953af4 100644 --- a/examples/js/objects/LensFlare.js +++ b/examples/js/objects/LensFlare.js @@ -271,8 +271,9 @@ THREE.LensFlare = function ( texture, size, distance, blending, color, opacity ) // var scale = new THREE.Vector2(); + var viewport = new THREE.Vector4(); - this.onBeforeRender = function ( renderer, scene, camera, geometry, material, group, viewport ) { + this.onBeforeRender = function ( renderer, scene, camera, geometry, material, group ) { var group = this.parent; @@ -285,6 +286,8 @@ THREE.LensFlare = function ( texture, size, distance, blending, color, opacity ) // + renderer.getViewport( viewport ); + group.update( renderer, camera, viewport ); // diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index fc16880d07bc9a372b0613dc0d50815cd9e2b68b..3a008d1a54919e90f5d2290e323366104a120248 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -428,6 +428,12 @@ function WebGLRenderer( parameters ) { }; + this.getViewport = function ( viewport ) { + + viewport.copy( _currentViewport ); + + }; + this.setViewport = function ( x, y, width, height ) { _viewport.set( x, _height - y - height, width, height ); @@ -1425,7 +1431,7 @@ function WebGLRenderer( parameters ) { function renderObject( object, scene, camera, geometry, material, group ) { - object.onBeforeRender( _this, scene, camera, geometry, material, group, _currentViewport ); + object.onBeforeRender( _this, scene, camera, geometry, material, group ); object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld ); object.normalMatrix.getNormalMatrix( object.modelViewMatrix ); @@ -1444,7 +1450,7 @@ function WebGLRenderer( parameters ) { } else { - _this.renderBufferDirect( camera, scene.fog, geometry, material, object, group, _currentViewport ); + _this.renderBufferDirect( camera, scene.fog, geometry, material, object, group ); }