11//INSTANT C# NOTE: Formerly VB project-level imports:
22using System . Diagnostics ;
33using System . Drawing ;
4+ using System . Windows . Forms ;
45
56namespace PPMLib
67{
@@ -20,60 +21,55 @@ public void Overwrite(PPMFrame frame)
2021 if ( ( _firstByteHeader & 0x80 ) != 0 )
2122 {
2223 return ;
23- }
24- int tX = frame . _translateX ;
25- int tY = frame . _translateY ;
26- //////////// < There is a mistake somewhere
27- int ld0 = ( ( tX >= 0 ) ? ( tX >> 3 ) : 0 ) ;
28- int pi0 = ( tX >= 0 ) ? 0 : ( ( - tX ) >> 3 ) ;
29- byte del = ( byte ) ( tX >= 0 ? ( tX & 7 ) : ( ( ( byte ) ( tX ) ) & 7 ) ) ;
30- if ( del != 0 ) Debug . WriteLine ( tX + " " + del ) ;
24+ }
25+ // < There is NOT a mistake anywhere
26+ int ld0 = ( ( _translateX >= 0 ) ? ( _translateX >> 3 ) : 0 ) ;
27+ int pi0 = ( _translateX >= 0 ) ? 0 : ( ( - _translateX ) >> 3 ) ;
28+ byte del = ( byte ) ( _translateX >= 0 ? ( _translateX & 7 ) : ( ( ( byte ) ( _translateX ) ) & 7 ) ) ;
3129 byte ndel = ( byte ) ( 8 - del ) ;
3230 byte alpha = ( byte ) ( ( 1 << ( 8 - del ) ) - 1 ) ;
3331 byte nalpha = ( byte ) ~ alpha ;
34- int pi = 0 , ld = 0 ;
35- if ( tX >= 0 )
32+ int pi , ld ;
33+ if ( _translateX >= 0 )
3634 {
37- for ( ushort y = 0 ; y < 192 ; y ++ )
35+ for ( int y = 0 ; y < 192 ; y ++ )
3836 {
39- if ( y < tY ) continue ;
40- if ( y - tY >= 192 ) break ;
41- ld = ( ( y << 5 ) + ld0 ) ;
42- pi = ( ( ( y - tY ) << 5 ) + pi0 ) ;
43- Layer1 . _layerData [ ld ] ^= ( byte ) ( frame . Layer1 . _layerData [ pi ] & alpha ) ;
44- Layer2 . _layerData [ ld ++ ] ^= ( byte ) ( frame . Layer2 . _layerData [ pi ] & alpha ) ;
37+ if ( y < _translateY ) continue ;
38+ if ( y - _translateY >= 192 ) break ;
39+ ld = ( y << 5 ) + ld0 ;
40+ pi = ( ( y - _translateY ) << 5 ) + pi0 ;
41+ Layer1 [ ld ] ^= ( byte ) ( frame . Layer1 [ pi ] & alpha ) ;
42+ Layer2 [ ld ++ ] ^= ( byte ) ( frame . Layer2 [ pi ] & alpha ) ;
4543 while ( ( ld & 31 ) < 31 )
4644 {
47- Layer1 . _layerData [ ld ] ^= ( byte ) ( ( ( frame . Layer1 . _layerData [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer1 . _layerData [ pi + 1 ] & alpha ) << del ) ) ;
48- Layer2 . _layerData [ ld ] ^= ( byte ) ( ( ( frame . Layer2 . _layerData [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer2 . _layerData [ pi + 1 ] & alpha ) << del ) ) ;
49- //layer2[ld] ^= ((layerB[pi] & nalpha) >> ndel) | ((layerB[pi + 1] & alpha) << del);
45+ Layer1 [ ld ] ^= ( byte ) ( ( ( frame . Layer1 [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer1 [ pi + 1 ] & alpha ) << del ) ) ;
46+ Layer2 [ ld ] ^= ( byte ) ( ( ( frame . Layer2 [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer2 [ pi + 1 ] & alpha ) << del ) ) ;
5047 ld ++ ; pi ++ ;
5148 }
52- Layer1 . _layerData [ ld ] ^= ( byte ) ( ( frame . Layer1 . _layerData [ pi ] & nalpha ) | ( frame . Layer1 . _layerData [ pi + 1 ] & alpha ) ) ;
53- Layer2 . _layerData [ ld ] ^= ( byte ) ( ( frame . Layer2 . _layerData [ pi ] & nalpha ) | ( frame . Layer2 . _layerData [ pi + 1 ] & alpha ) ) ;
54- //layer2[ld] ^= (layerB[pi] & nalpha) | (layerB[pi + 1] & alpha);
49+ Layer1 [ ld ] ^= ( byte ) ( ( frame . Layer1 [ pi ] & nalpha ) | ( frame . Layer1 [ pi + 1 ] & alpha ) ) ;
50+ Layer2 [ ld ] ^= ( byte ) ( ( frame . Layer2 [ pi ] & nalpha ) | ( frame . Layer2 [ pi + 1 ] & alpha ) ) ;
5551 }
5652 }
5753 else
5854 {
5955 for ( ushort y = 0 ; y < 192 ; y ++ )
6056 {
61- if ( y < tY ) continue ;
62- if ( y - tY >= 192 ) break ;
63- ld = ( ( y << 5 ) + ld0 ) ;
64- pi = ( ( ( y - tY ) << 5 ) + pi0 ) ;
57+ if ( y < _translateY ) continue ;
58+ if ( y - _translateY >= 192 ) break ;
59+ ld = ( y << 5 ) + ld0 ;
60+ pi = ( ( y - _translateY ) << 5 ) + pi0 ;
6561 while ( ( pi & 31 ) < 31 )
6662 {
67- Layer1 . _layerData [ ld ] ^= ( byte ) ( ( ( frame . Layer1 . _layerData [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer1 . _layerData [ pi + 1 ] & alpha ) << del ) ) ;
68- Layer2 . _layerData [ ld ] ^= ( byte ) ( ( ( frame . Layer2 . _layerData [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer2 . _layerData [ pi + 1 ] & alpha ) << del ) ) ;
63+ Layer1 [ ld ] ^= ( byte ) ( ( ( frame . Layer1 [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer1 [ pi + 1 ] & alpha ) << del ) ) ;
64+ Layer2 [ ld ] ^= ( byte ) ( ( ( frame . Layer2 [ pi ] & nalpha ) >> ndel ) | ( ( frame . Layer2 [ pi + 1 ] & alpha ) << del ) ) ;
6965 ld ++ ; pi ++ ;
7066 }
71- Layer1 . _layerData [ ld ] ^= ( byte ) ( frame . Layer1 . _layerData [ pi ] & nalpha ) ;
72- Layer2 . _layerData [ ld ] ^= ( byte ) ( frame . Layer2 . _layerData [ pi ] & nalpha ) ;
73- //layer2[ld] ^= layerB[pi] & nalpha;
67+ Layer1 [ ld ] ^= ( byte ) ( frame . Layer1 [ pi ] & nalpha ) ;
68+ Layer2 [ ld ] ^= ( byte ) ( frame . Layer2 [ pi ] & nalpha ) ;
7469 }
7570 }
76- }
71+ }
72+
7773 public PPMLayer Layer1
7874 {
7975 get
0 commit comments