示例#1
0
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 );
}
示例#2
0
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 );
}
示例#3
0
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 );
		}
	}

}