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 );
}