Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //davor
- for ( i = _base.Count - 1; i >= 0; i-- ) {
- //...
- for ( y = Math.Max( 0, Area.y ); y < Area.y + Area.height; y++ ) {
- off_y = y - Area.y;
- ptr = baseptr + y * _line + area_x * 4;
- for ( x = area_x; x < Area.x + Area.width; x++ ) {
- off_x = x - Area.x;
- if ( ptr[3] != 0xFF ) {
- if ( _base[i].pixels[off_x, off_y].a == 1.0f ) {
- ptr[0] = ( byte )( _base[i].pixels[off_x, off_y].b * 255 );
- ptr[1] = ( byte )( _base[i].pixels[off_x, off_y].g * 255 );
- ptr[2] = ( byte )( _base[i].pixels[off_x, off_y].r * 255 );
- ptr[3] = ( byte )( _base[i].pixels[off_x, off_y].a * 255 );
- } else if ( _base[i].pixels[off_x, off_y].a != 0.0f ) {
- alphaf = _base[i].pixels[off_x, off_y].a;
- alpha = ( byte )( alphaf * 255 );
- ptr[3] = alpha > ptr[3] ? alpha : ptr[3];
- ptr[2] = ( byte )( ptr[2] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].r * 255 ) - ptr[2] ) );
- ptr[1] = ( byte )( ptr[1] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].g * 255 ) - ptr[1] ) );
- ptr[0] = ( byte )( ptr[0] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].b * 255 ) - ptr[0] ) );
- }
- }
- ptr += 4;
- }
- }
- }
- //danach
- for ( i = _base.Count - 1; i >= 0; i-- ) {
- //...
- for ( y = Math.Max( 0, Area.y ); y < Area.y + Area.height; y++ ) {
- off_y = y - Area.y;
- ptr = baseptr + y * _line + area_x * 4;
- for ( x = area_x; x < Area.x + Area.width; x++ ) {
- off_x = x - Area.x;
- if ( ptr[3] != 0xFF ) {
- alphaf = _base[i].pixels[off_x, off_y].a;
- if ( alphaf == 1.0f ) {
- ptr[0] = ( byte )( _base[i].pixels[off_x, off_y].b * 255 );
- ptr[1] = ( byte )( _base[i].pixels[off_x, off_y].g * 255 );
- ptr[2] = ( byte )( _base[i].pixels[off_x, off_y].r * 255 );
- ptr[3] = ( byte )( alphaf * 255 );
- } else if ( alphaf != 0.0f ) {
- alpha = ( byte )( alphaf * 255 );
- ptr[3] = alpha > ptr[3] ? alpha : ptr[3];
- ptr[2] = ( byte )( ptr[2] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].r * 255 ) - ptr[2] ) );
- ptr[1] = ( byte )( ptr[1] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].g * 255 ) - ptr[1] ) );
- ptr[0] = ( byte )( ptr[0] + alphaf * ( ( byte )( _base[i].pixels[off_x, off_y].b * 255 ) - ptr[0] ) );
- }
- }
- ptr += 4;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment