@@ -123,14 +123,14 @@ public void SetPixelsUnsafe(IEnumerable<PixelData> pixels)
123123 unsafe
124124 {
125125 var buffer = ( byte * ) _bitmap . BackBuffer . ToPointer ( ) ;
126- int stride = _bitmap . BackBufferStride ;
126+ var stride = _bitmap . BackBufferStride ;
127127
128128 foreach ( var pixel in pixels )
129129 {
130130 if ( pixel . X < 0 || pixel . X >= Width || pixel . Y < 0 || pixel . Y >= Height )
131131 continue ;
132132
133- int offset = pixel . Y * stride + pixel . X * 4 ;
133+ var offset = pixel . Y * stride + pixel . X * 4 ;
134134 buffer [ offset + 0 ] = pixel . B ;
135135 buffer [ offset + 1 ] = pixel . G ;
136136 buffer [ offset + 2 ] = pixel . R ;
@@ -139,7 +139,6 @@ public void SetPixelsUnsafe(IEnumerable<PixelData> pixels)
139139 Bits [ pixel . Y * Width + pixel . X ] =
140140 ( uint ) ( pixel . A << 24 | pixel . R << 16 | pixel . G << 8 | pixel . B ) ;
141141 }
142-
143142 }
144143
145144 _bitmap . AddDirtyRect ( new Int32Rect ( 0 , 0 , Width , Height ) ) ;
@@ -152,16 +151,16 @@ public void SetPixelsUnsafe(IEnumerable<PixelData> pixels)
152151 /// <param name="color">The color to fill with.</param>
153152 public unsafe void FillSimd ( Color color )
154153 {
155- uint packed = ( uint ) ( color . A << 24 | color . R << 16 | color . G << 8 | color . B ) ;
154+ var packed = ( uint ) ( color . A << 24 | color . R << 16 | color . G << 8 | color . B ) ;
156155 _bitmap . Lock ( ) ;
157156
158- uint * ptr = ( uint * ) _bitmap . BackBuffer . ToPointer ( ) ;
159- int len = Bits . Length ;
160- int vecSize = Vector < uint > . Count ;
161- int i = 0 ;
157+ var ptr = ( uint * ) _bitmap . BackBuffer . ToPointer ( ) ;
158+ var len = Bits . Length ;
159+ var vecSize = Vector < uint > . Count ;
160+ var i = 0 ;
162161
163162 // SIMD bulk fill
164- Vector < uint > v = new Vector < uint > ( packed ) ;
163+ var v = new Vector < uint > ( packed ) ;
165164 for ( ; i <= len - vecSize ; i += vecSize )
166165 v . CopyTo ( Bits , i ) ;
167166
@@ -202,9 +201,9 @@ public void ApplyColorMatrix(float[][] matrix)
202201 // We reuse output array to avoid allocations when repeating effects
203202 var pixels = new ( int x , int y , Color color ) [ Bits . Length ] ;
204203
205- for ( int i = 0 ; i < Bits . Length ; i ++ )
204+ for ( var i = 0 ; i < Bits . Length ; i ++ )
206205 {
207- uint argb = Bits [ i ] ;
206+ var argb = Bits [ i ] ;
208207
209208 // Manual unpack (fastest + identical)
210209 float r = ( byte ) ( argb >> 16 ) ;
@@ -213,16 +212,16 @@ public void ApplyColorMatrix(float[][] matrix)
213212 float a = ( byte ) ( argb >> 24 ) ;
214213
215214 // Ordered multiply like WinForms (NOT SIMD parallel)
216- float rr = r * m00 + g * m01 + b * m02 + a * m03 ;
217- float gg = r * m10 + g * m11 + b * m12 + a * m13 ;
218- float bb = r * m20 + g * m21 + b * m22 + a * m23 ;
219- float aa = r * m30 + g * m31 + b * m32 + a * m33 ;
215+ var rr = r * m00 + g * m01 + b * m02 + a * m03 ;
216+ var gg = r * m10 + g * m11 + b * m12 + a * m13 ;
217+ var bb = r * m20 + g * m21 + b * m22 + a * m23 ;
218+ var aa = r * m30 + g * m31 + b * m32 + a * m33 ;
220219
221220 // Same exact truncation as WinForms (NOT Math.Round)
222- byte R = ( byte ) ( rr < 0f ? 0f : ( rr > 255f ? 255f : rr ) ) ;
223- byte G = ( byte ) ( gg < 0f ? 0f : ( gg > 255f ? 255f : gg ) ) ;
224- byte B = ( byte ) ( bb < 0f ? 0f : ( bb > 255f ? 255f : bb ) ) ;
225- byte A = ( byte ) ( aa < 0f ? 0f : ( aa > 255f ? 255f : aa ) ) ;
221+ var R = ( byte ) ( rr < 0f ? 0f : ( rr > 255f ? 255f : rr ) ) ;
222+ var G = ( byte ) ( gg < 0f ? 0f : ( gg > 255f ? 255f : gg ) ) ;
223+ var B = ( byte ) ( bb < 0f ? 0f : ( bb > 255f ? 255f : bb ) ) ;
224+ var A = ( byte ) ( aa < 0f ? 0f : ( aa > 255f ? 255f : aa ) ) ;
226225
227226 // Save (no packing yet)
228227 pixels [ i ] = ( i % Width , i / Width , Color . FromArgb ( A , R , G , B ) ) ;
@@ -264,22 +263,22 @@ public void BlendSimd(uint[] src)
264263 if ( src == null || src . Length != Bits . Length )
265264 throw new ArgumentException ( "Source must match image size" ) ;
266265
267- int len = Bits . Length ;
266+ var len = Bits . Length ;
268267
269- for ( int i = 0 ; i < len ; i ++ )
268+ for ( var i = 0 ; i < len ; i ++ )
270269 {
271- uint s = src [ i ] ;
270+ var s = src [ i ] ;
272271 if ( ( s >> 24 ) == 0 )
273272 continue ; // fully transparent, skip completely
274273
275- uint d = Bits [ i ] ;
274+ var d = Bits [ i ] ;
276275
277276 // Load BGRA from packed uint into float components
278277 var sf = new Vector4 (
279- ( s >> 16 ) & 255 , // R
280- ( s >> 8 ) & 255 , // G
281- ( s ) & 255 , // B
282- ( s >> 24 ) & 255 // A
278+ ( s >> 16 ) & 255 , // R
279+ ( s >> 8 ) & 255 , // G
280+ ( s ) & 255 , // B
281+ ( s >> 24 ) & 255 // A
283282 ) ;
284283
285284 var df = new Vector4 (
@@ -289,12 +288,12 @@ public void BlendSimd(uint[] src)
289288 ( d >> 24 ) & 255
290289 ) ;
291290
292- float a = sf . W * ( 1f / 255f ) ;
291+ var a = sf . W * ( 1f / 255f ) ;
293292 if ( a <= 0.0001f )
294293 continue ; // ignore near-transparent pixels
295294
296295 // SIMD blend: Dst = Src * a + Dst * (1−a)
297- Vector4 r = sf * a + df * ( 1f - a ) ;
296+ var r = sf * a + df * ( 1f - a ) ;
298297
299298 // Clamp and repack BGRA
300299 Bits [ i ] =
@@ -319,8 +318,8 @@ public unsafe void SetPixelsSimd(IEnumerable<(int x, int y, Color color)> pixels
319318 foreach ( var ( x , y , c ) in pixels )
320319 {
321320 if ( ( uint ) x >= Width || ( uint ) y >= Height ) continue ;
322- uint packed = ( uint ) ( c . A << 24 | c . R << 16 | c . G << 8 | c . B ) ;
323- int index = x + y * Width ;
321+ var packed = ( uint ) ( c . A << 24 | c . R << 16 | c . G << 8 | c . B ) ;
322+ var index = x + y * Width ;
324323 ptr [ index ] = packed ;
325324 Bits [ index ] = packed ;
326325 }
@@ -368,10 +367,11 @@ public void UpdateBitmapFromBits()
368367 _bitmap . Lock ( ) ;
369368 unsafe
370369 {
371- void * src = ( void * ) _bitsHandle . AddrOfPinnedObject ( ) ;
372- void * dst = ( void * ) _bitmap . BackBuffer ;
370+ var src = ( void * ) _bitsHandle . AddrOfPinnedObject ( ) ;
371+ var dst = ( void * ) _bitmap . BackBuffer ;
373372 Buffer . MemoryCopy ( src , dst , Bits . Length * sizeof ( uint ) , Bits . Length * sizeof ( uint ) ) ;
374373 }
374+
375375 _bitmap . AddDirtyRect ( new Int32Rect ( 0 , 0 , Width , Height ) ) ;
376376 _bitmap . Unlock ( ) ;
377377 }
@@ -403,4 +403,4 @@ private void Dispose(bool disposing)
403403 {
404404 Dispose ( false ) ;
405405 }
406- }
406+ }
0 commit comments