void CPROC do_vlineAlpha( ImageFile *pImage, int x, int yfrom, int yto, CDATA color ) { if( yto > yfrom ) BlatColorAlpha( pImage, x, yfrom, 1, yto-yfrom, color ); else BlatColorAlpha( pImage, x, yfrom, 1, yfrom-yto, color ); }
void CPROC do_hlineAlpha( ImageFile *pImage, int y, int xfrom, int xto, CDATA color ) { if( xfrom < xto ) BlatColorAlpha( pImage, xfrom, y, xto-xfrom, 1, color ); else BlatColorAlpha( pImage, xfrom, y, xfrom-xto, 1, color ); }
void FillDifference( Image surface, int a, int b, int mix, CDATA color ) { // need full history buffer... if( !wrapped ) return; //lprintf( "Filling %08x", color ); if( _ix[a] <= _ix[b] ) { // going to left... fill right side. //color = SetAlpha( BASE_COLOR_RED, AlphaVal( color ) ); if( mix ) BlatColorAlpha( surface, _ix[a], _iy[a], _ix[b]-_ix[a], imgGraphic->height, color ); else BlatColor( surface, _ix[a], _iy[a], _ix[b]-_ix[a], imgGraphic->height, color ); // (moving down) if( _iy[a] <= _iy[b] ) { // top left side... //color = SetAlpha( BASE_COLOR_BROWN, AlphaVal(color ) ); if( mix ) BlatColorAlpha( surface, _ix[a], _iy[a], imgGraphic->width, _iy[b]-_iy[a], color ); else BlatColor( surface, _ix[a], _iy[a], imgGraphic->width, _iy[b]-_iy[a], color ); } else { // bottom left side... int t = _iy[a]-_iy[b]; int bot = _iy[b] + imgGraphic->height; //lprintf( "..." ); //color = SetAlpha( BASE_COLOR_WHITE, AlphaVal(color ) ); if( mix ) BlatColorAlpha( surface, _ix[a], bot, imgGraphic->width, t, color ); else BlatColor( surface, _ix[a], bot, imgGraphic->width, t, color ); } } else { // right side... int t1 = _ix[a] - _ix[b]; int right = _ix[b] + imgGraphic->width; //color = SetAlpha( BASE_COLOR_BLUE, AlphaVal(color ) ); //lprintf( "Fill right side at %d (%d)", right, t1 ); if( mix ) BlatColorAlpha( surface, right, _iy[a], t1, imgGraphic->height, color ); else BlatColor( surface, right, _iy[a], t1, imgGraphic->height, color ); if( _iy[a] <= _iy[b] ) { //color = SetAlpha( BASE_COLOR_MAGENTA, AlphaVal(color ) ); // top left side... if( mix ) BlatColorAlpha( surface, _ix[a], _iy[a], imgGraphic->width, _iy[b]-_iy[a], color ); else BlatColor( surface, _ix[a], _iy[a], imgGraphic->width, _iy[b]-_iy[a], color ); } else { // bottom left side... int t = _iy[a]-_iy[b]; int bot = _iy[b] + imgGraphic->height; //lprintf( "..." ); //color = SetAlpha( BASE_COLOR_YELLOW, AlphaVal(color ) ); if( mix ) BlatColorAlpha( surface, _ix[a], bot, imgGraphic->width, t, color ); else BlatColor( surface, _ix[a], bot, imgGraphic->width, t, color ); } } }