BugInTheSYS

Untitled

Nov 29th, 2011
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.71 KB | None | 0 0
  1. //davor
  2.       for ( i = _base.Count - 1; i >= 0; i-- ) {
  3.         //...
  4.         for ( y = Math.Max( 0, Area.y ); y < Area.y + Area.height; y++ ) {
  5.           off_y = y - Area.y;
  6.           ptr = baseptr + y * _line + area_x * 4;
  7.           for ( x = area_x; x < Area.x + Area.width; x++ ) {
  8.             off_x = x - Area.x;
  9.             if ( ptr[3] != 0xFF ) {
  10.               if ( _base[i].pixels[off_x, off_y].a == 1.0f ) {
  11.                 ptr[0] = ( byte )( _base[i].pixels[off_x, off_y].b * 255 );
  12.                 ptr[1] = ( byte )( _base[i].pixels[off_x, off_y].g * 255 );
  13.                 ptr[2] = ( byte )( _base[i].pixels[off_x, off_y].r * 255 );
  14.                 ptr[3] = ( byte )( _base[i].pixels[off_x, off_y].a * 255 );
  15.               } else if ( _base[i].pixels[off_x, off_y].a != 0.0f ) {
  16.                 alphaf = _base[i].pixels[off_x, off_y].a;
  17.                 alpha = ( byte )( alphaf * 255 );
  18.                 ptr[3] = alpha > ptr[3] ? alpha : ptr[3];
  19.                 ptr[2] = ( byte )( ptr[2] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].r * 255 ) - ptr[2] ) );
  20.                 ptr[1] = ( byte )( ptr[1] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].g * 255 ) - ptr[1] ) );
  21.                 ptr[0] = ( byte )( ptr[0] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].b * 255 ) - ptr[0] ) );
  22.               }
  23.             }
  24.             ptr += 4;
  25.           }
  26.         }
  27.       }
  28.  
  29. //danach
  30.       for ( i = _base.Count - 1; i >= 0; i-- ) {
  31.         //...
  32.         for ( y = Math.Max( 0, Area.y ); y < Area.y + Area.height; y++ ) {
  33.           off_y = y - Area.y;
  34.           ptr = baseptr + y * _line + area_x * 4;
  35.           for ( x = area_x; x < Area.x + Area.width; x++ ) {
  36.             off_x = x - Area.x;
  37.             if ( ptr[3] != 0xFF ) {
  38.               alphaf = _base[i].pixels[off_x, off_y].a;
  39.               if ( alphaf == 1.0f ) {
  40.                 ptr[0] = ( byte )( _base[i].pixels[off_x, off_y].b * 255 );
  41.                 ptr[1] = ( byte )( _base[i].pixels[off_x, off_y].g * 255 );
  42.                 ptr[2] = ( byte )( _base[i].pixels[off_x, off_y].r * 255 );
  43.                 ptr[3] = ( byte )( alphaf * 255 );
  44.               } else if ( alphaf != 0.0f ) {
  45.                 alpha = ( byte )( alphaf * 255 );
  46.                 ptr[3] = alpha > ptr[3] ? alpha : ptr[3];
  47.                 ptr[2] = ( byte )( ptr[2] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].r * 255 ) - ptr[2] ) );
  48.                 ptr[1] = ( byte )( ptr[1] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].g * 255 ) - ptr[1] ) );
  49.                 ptr[0] = ( byte )( ptr[0] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].b * 255 ) - ptr[0] ) );
  50.               }
  51.             }
  52.             ptr += 4;
  53.           }
  54.         }
  55.       }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment