@@ -8,6 +8,8 @@ var SpriteNormalPair = require('./SpriteNormalPair');
88var WebGLSupportedExtensions = require ( '../../renderer/webgl/WebGLSupportedExtensions' ) ;
99var TexturedAndNormalizedTintedShader = require ( '../../renderer/webgl/shaders/TexturedAndNormalizedTintedShader' ) ;
1010var Const = require ( './Const' ) ;
11+ var Matrix = require ( '../components/TransformMatrix' ) ;
12+ var TempMatrix = new Matrix ( ) ;
1113
1214var LightLayer = new Class ( {
1315
@@ -118,6 +120,11 @@ var LightLayer = new Class({
118120 this . ambientLightColorB = b ;
119121 } ,
120122
123+ getMaxLights : function ( )
124+ {
125+ return Const . MAX_LIGHTS ;
126+ } ,
127+
121128 /* This will probably be removed later */
122129 addSprite : function ( sprite , normalTexture )
123130 {
@@ -191,14 +198,18 @@ var LightLayer = new Class({
191198 var length = lights . length ;
192199 var gl = this . gl ;
193200 var passShader = this . passShader ;
201+ var point = { x : 0 , y : 0 } ;
194202
195- passShader . setConstantFloat2 ( this . uResolutionLoc , renderer . width * camera . zoom , renderer . height * camera . zoom ) ;
203+ passShader . setConstantFloat2 ( this . uResolutionLoc , renderer . width , renderer . height ) ;
196204 passShader . setConstantFloat3 ( this . ambientLightColorLoc , this . ambientLightColorR , this . ambientLightColorG , this . ambientLightColorB ) ;
197205
206+ TempMatrix . applyITRS ( camera . x , camera . y , camera . rotation , camera . zoom , camera . zoom ) ;
207+
198208 for ( var index = 0 ; index < length ; ++ index )
199209 {
200210 var light = lights [ index ] ;
201- passShader . setConstantFloat3 ( locations [ index ] . position , light . x , light . y , light . z ) ;
211+ TempMatrix . transformPoint ( light . x , light . y , point ) ;
212+ passShader . setConstantFloat3 ( locations [ index ] . position , point . x - ( camera . scrollX * light . scrollFactorX ) , point . y - ( camera . scrollY * light . scrollFactorY ) , light . z ) ;
202213 passShader . setConstantFloat3 ( locations [ index ] . color , light . r , light . g , light . b ) ;
203214 passShader . setConstantFloat1 ( locations [ index ] . attenuation , light . attenuation ) ;
204215 }
0 commit comments