From aa65d6ca268ebeb9d06290781fa89c893c8d4c94 Mon Sep 17 00:00:00 2001 From: JohnBrookes Date: Thu, 8 Aug 2013 12:08:46 +0100 Subject: [PATCH] Multi view background fix. Issue 611 --- .../core/render/BackgroundImageRenderer.as | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/away3d/core/render/BackgroundImageRenderer.as b/src/away3d/core/render/BackgroundImageRenderer.as index 3e114abe1..2d0c00e84 100644 --- a/src/away3d/core/render/BackgroundImageRenderer.as +++ b/src/away3d/core/render/BackgroundImageRenderer.as @@ -117,11 +117,23 @@ package away3d.core.render new AGALMiniAssembler(Debug.active).assemble(Context3DProgramType.FRAGMENT, getFragmentCode()) ); - _vertexBuffer.uploadFromVector(Vector.([ -1, -1, 0, 1, - 1, -1, 1, 1, - 1, 1, 1, 0, - -1, 1, 0, 0 - ]), 0, 4); + var w:Number = 2; + var h:Number = 2; + var x:Number = -1; + var y:Number = 1; + + if (_stage3DProxy.scissorRect) { + x = (_stage3DProxy.scissorRect.x * 2 - _stage3DProxy.viewPort.width) / _stage3DProxy.viewPort.width; + y = (_stage3DProxy.scissorRect.y * 2 - _stage3DProxy.viewPort.height) / _stage3DProxy.viewPort.height * -1; + w = 2 / (_stage3DProxy.viewPort.width / _stage3DProxy.scissorRect.width); + h = 2 / (_stage3DProxy.viewPort.height / _stage3DProxy.scissorRect.height); + } + + _vertexBuffer.uploadFromVector(Vector.([x, y-h, 0, 1, + x+w, y-h, 1, 1, + x+w, y, 1, 0, + x, y, 0, 0 + ]), 0, 4); } public function get texture():Texture2DBase