@@ -117,15 +117,10 @@ public EffectLayer(string name, Color color)
117117 /// <param name="effect">An enum specifying which LayerEffect to apply</param>
118118 /// <param name="effectConfig">Configurations for the LayerEffect</param>
119119 /// <param name="rect">A rectangle specifying what region to apply effects in</param>
120- public EffectLayer ( string name , LayerEffects effect , LayerEffectConfig effectConfig , RectangleF rect = new ( ) )
120+ public void DrawGradient ( LayerEffects effect , LayerEffectConfig effectConfig , RectangleF rect = new ( ) )
121121 {
122- _name = name ;
123- WeakEventManager < Effects , CanvasChangedArgs > . AddHandler ( null , "CanvasChanged" , InvalidateColorMap ) ;
124- _colormap = new Bitmap ( Effects . CanvasWidth , Effects . CanvasHeight ) ;
125- _textureBrush = new TextureBrush ( _colormap ) ;
126- Dimension = new Rectangle ( 0 , 0 , Effects . CanvasWidth , Effects . CanvasHeight ) ;
127- _peripheral = new Color ( ) ;
128- Brush brush ;
122+ Clear ( ) ;
123+ LinearGradientBrush brush ;
129124 var shift = 0.0f ;
130125
131126 switch ( effect )
@@ -135,7 +130,7 @@ public EffectLayer(string name, Color color)
135130 break ;
136131 case LayerEffects . ColorBreathing :
137132 FillOver ( effectConfig . primary ) ;
138- float sine = ( float ) Math . Pow ( Math . Sin ( ( double ) ( Time . GetMillisecondsSinceEpoch ( ) % 10000L / 10000.0f ) * 2 * Math . PI * effectConfig . speed ) , 2 ) ;
133+ var sine = ( float ) Math . Pow ( Math . Sin ( ( double ) ( Time . GetMillisecondsSinceEpoch ( ) % 10000L / 10000.0f ) * 2 * Math . PI * effectConfig . speed ) , 2 ) ;
139134 FillOver ( Color . FromArgb ( ( byte ) ( sine * 255 ) , effectConfig . secondary ) ) ;
140135 break ;
141136 case LayerEffects . RainbowShift_Horizontal :
@@ -149,8 +144,8 @@ public EffectLayer(string name, Color color)
149144 shift *= - 1.0f ;
150145
151146 brush = CreateRainbowBrush ( ) ;
152- ( brush as LinearGradientBrush ) . RotateTransform ( 0.0f ) ;
153- ( brush as LinearGradientBrush ) . TranslateTransform ( shift , shift ) ;
147+ brush . RotateTransform ( 0.0f ) ;
148+ brush . TranslateTransform ( shift , shift ) ;
154149
155150 Fill ( brush ) ;
156151
@@ -167,8 +162,8 @@ public EffectLayer(string name, Color color)
167162 shift *= - 1.0f ;
168163
169164 brush = CreateRainbowBrush ( ) ;
170- ( brush as LinearGradientBrush ) . RotateTransform ( 90.0f ) ;
171- ( brush as LinearGradientBrush ) . TranslateTransform ( shift , shift ) ;
165+ brush . RotateTransform ( 90.0f ) ;
166+ brush . TranslateTransform ( shift , shift ) ;
172167
173168 Fill ( brush ) ;
174169
@@ -185,8 +180,8 @@ public EffectLayer(string name, Color color)
185180 shift *= - 1.0f ;
186181
187182 brush = CreateRainbowBrush ( ) ;
188- ( brush as LinearGradientBrush ) . RotateTransform ( 45.0f ) ;
189- ( brush as LinearGradientBrush ) . TranslateTransform ( shift , shift ) ;
183+ brush . RotateTransform ( 45.0f ) ;
184+ brush . TranslateTransform ( shift , shift ) ;
190185
191186 Fill ( brush ) ;
192187
@@ -203,8 +198,8 @@ public EffectLayer(string name, Color color)
203198 shift *= - 1.0f ;
204199
205200 brush = CreateRainbowBrush ( ) ;
206- ( brush as LinearGradientBrush ) . RotateTransform ( - 45.0f ) ;
207- ( brush as LinearGradientBrush ) . TranslateTransform ( shift , shift ) ;
201+ brush . RotateTransform ( - 45.0f ) ;
202+ brush . TranslateTransform ( shift , shift ) ;
208203
209204 Fill ( brush ) ;
210205
@@ -222,14 +217,15 @@ public EffectLayer(string name, Color color)
222217 shift *= - 1.0f ;
223218
224219 brush = CreateRainbowBrush ( ) ;
225- ( brush as LinearGradientBrush ) . RotateTransform ( effectConfig . angle ) ;
226- ( brush as LinearGradientBrush ) . TranslateTransform ( shift , shift ) ;
220+ brush . RotateTransform ( effectConfig . angle ) ;
221+ brush . TranslateTransform ( shift , shift ) ;
227222
228223 Fill ( brush ) ;
229224
230225 effectConfig . last_effect_call = Time . GetMillisecondsSinceEpoch ( ) ;
231226 break ;
232227 case LayerEffects . GradientShift_Custom_Angle :
228+ {
233229 effectConfig . shift_amount += ( Time . GetMillisecondsSinceEpoch ( ) - effectConfig . last_effect_call ) / 1000.0f * 0.067f * effectConfig . speed ;
234230 effectConfig . shift_amount %= Effects . CanvasBiggest ;
235231
@@ -246,64 +242,63 @@ public EffectLayer(string name, Color color)
246242 if ( effectConfig . animation_reverse )
247243 shift *= - 1.0f ;
248244
249- brush = effectConfig . brush . GetDrawingBrush ( ) ;
245+ brush = ( LinearGradientBrush ) effectConfig . brush . GetDrawingBrush ( ) ;
250246 switch ( effectConfig . brush . type )
251247 {
252248 case EffectBrush . BrushType . Linear :
253249 {
254250 if ( ! rect . IsEmpty )
255251 {
256- ( brush as LinearGradientBrush ) . TranslateTransform ( rect . X , rect . Y ) ;
257- ( brush as LinearGradientBrush ) . ScaleTransform ( rect . Width * 100 / effectConfig . gradient_size , rect . Height * 100 / effectConfig . gradient_size ) ;
252+ brush . TranslateTransform ( rect . X , rect . Y ) ;
253+ brush . ScaleTransform ( rect . Width * 100 / effectConfig . gradient_size , rect . Height * 100 / effectConfig . gradient_size ) ;
258254 }
259255 else
260256 {
261- ( brush as LinearGradientBrush ) . ScaleTransform ( Effects . CanvasHeight * 100 / effectConfig . gradient_size , Effects . CanvasHeight * 100 / effectConfig . gradient_size ) ;
257+ brush . ScaleTransform ( Effects . CanvasHeight * 100 / effectConfig . gradient_size , Effects . CanvasHeight * 100 / effectConfig . gradient_size ) ;
262258 }
263259
264- ( brush as LinearGradientBrush ) . RotateTransform ( effectConfig . angle ) ;
265- ( brush as LinearGradientBrush ) . TranslateTransform ( shift , shift ) ;
260+ brush . RotateTransform ( effectConfig . angle ) ;
261+ brush . TranslateTransform ( shift , shift ) ;
266262 break ;
267263 }
268264 case EffectBrush . BrushType . Radial :
269265 {
270266 if ( effectConfig . animation_type == AnimationType . Zoom_in || effectConfig . animation_type == AnimationType . Zoom_out )
271267 {
272268 float percent = shift / Effects . CanvasBiggest ;
269+ float xOffset = Effects . CanvasWidth / 2.0f * percent ;
270+ float yOffset = Effects . CanvasHeight / 2.0f * percent ;
273271
274- float x_offset = Effects . CanvasWidth / 2.0f * percent ;
275- float y_offset = Effects . CanvasHeight / 2.0f * percent ;
276272
277-
278- ( brush as PathGradientBrush ) . WrapMode = WrapMode . Clamp ;
273+ brush . WrapMode = WrapMode . Clamp ;
279274
280275 if ( ! rect . IsEmpty )
281276 {
282- x_offset = rect . Width / 2.0f * percent ;
283- y_offset = rect . Height / 2.0f * percent ;
277+ xOffset = rect . Width / 2.0f * percent ;
278+ yOffset = rect . Height / 2.0f * percent ;
284279
285- ( brush as PathGradientBrush ) . TranslateTransform ( rect . X + x_offset , rect . Y + y_offset ) ;
286- ( brush as PathGradientBrush ) . ScaleTransform ( ( rect . Width - 2.0f * x_offset ) * 100 / effectConfig . gradient_size , ( rect . Height - 2.0f * y_offset ) * 100 / effectConfig . gradient_size ) ;
280+ brush . TranslateTransform ( rect . X + xOffset , rect . Y + yOffset ) ;
281+ brush . ScaleTransform ( ( rect . Width - 2.0f * xOffset ) * 100 / effectConfig . gradient_size , ( rect . Height - 2.0f * yOffset ) * 100 / effectConfig . gradient_size ) ;
287282 }
288283 else
289284 {
290- ( brush as PathGradientBrush ) . ScaleTransform ( ( Effects . CanvasHeight + x_offset ) * 100 / effectConfig . gradient_size , ( Effects . CanvasHeight + y_offset ) * 100 / effectConfig . gradient_size ) ;
285+ brush . ScaleTransform ( ( Effects . CanvasHeight + xOffset ) * 100 / effectConfig . gradient_size , ( Effects . CanvasHeight + yOffset ) * 100 / effectConfig . gradient_size ) ;
291286 }
292287 }
293288 else
294289 {
295290 if ( ! rect . IsEmpty )
296291 {
297- ( brush as PathGradientBrush ) . TranslateTransform ( rect . X , rect . Y ) ;
298- ( brush as PathGradientBrush ) . ScaleTransform ( rect . Width * 100 / effectConfig . gradient_size , rect . Height * 100 / effectConfig . gradient_size ) ;
292+ brush . TranslateTransform ( rect . X , rect . Y ) ;
293+ brush . ScaleTransform ( rect . Width * 100 / effectConfig . gradient_size , rect . Height * 100 / effectConfig . gradient_size ) ;
299294 }
300295 else
301296 {
302- ( brush as PathGradientBrush ) . ScaleTransform ( Effects . CanvasHeight * 100 / effectConfig . gradient_size , Effects . CanvasHeight * 100 / effectConfig . gradient_size ) ;
297+ brush . ScaleTransform ( Effects . CanvasHeight * 100 / effectConfig . gradient_size , Effects . CanvasHeight * 100 / effectConfig . gradient_size ) ;
303298 }
304299 }
305300
306- ( brush as PathGradientBrush ) . RotateTransform ( effectConfig . angle ) ;
301+ brush . RotateTransform ( effectConfig . angle ) ;
307302
308303 //(brush as PathGradientBrush).TranslateTransform(x_shift, y_shift);
309304 break ;
@@ -314,6 +309,7 @@ public EffectLayer(string name, Color color)
314309
315310 effectConfig . last_effect_call = Time . GetMillisecondsSinceEpoch ( ) ;
316311 break ;
312+ }
317313 }
318314 }
319315
0 commit comments