Example #1
0
void ChessPiece::Render(cairo::Context &ctx)
{

	/*if (team = Black)
	{
		ctx.setSourceRgb(0.3, 0.3, 0.3);
	}
	else
	{
		ctx.setSourceRgb(0.7, 0.7, 0.7);
	}

	switch (type)
	{
	case King:		
		ctx.showText("King");
		break;
	case Queen:
		ctx.showText("Queen");
		break;
	case Knight:
		ctx.showText("Knight");
		break;
	case Bishop:
		ctx.showText("Bishop");
		break;
	case Rook:
		ctx.showText("Rook");
		break;
	case Pawn:
		ctx.showText("Pawn");
		break;
	case Invalid:
		break;
	default:
		break;
	}*/

	int verticalOffset;
	int horizontalOffset;

	switch (type)
	{
	case King:
		horizontalOffset = 37;
		verticalOffset = 17;
		break;
	case Queen:
		horizontalOffset = 35;
		verticalOffset = 17;
		break;
	case Knight:
		horizontalOffset = 26;
		verticalOffset = 17;
		break;
	case Bishop:
		horizontalOffset = 33;
		verticalOffset = 17;
		break;
	case Rook:
		horizontalOffset = 27;
		verticalOffset = 17;
		break;
	case Pawn:
		horizontalOffset = 26;
		verticalOffset = 17;
		break;
	case Invalid:
		break;
	default:
		break;
	}


	cinder::Vec2f TLPoint = GetTopLeftBoxPoint();

	horizontalOffset += (int)TLPoint.x;
	verticalOffset += (int)TLPoint.y;

	ctx.translate(horizontalOffset, verticalOffset);
	
	cinder::cairo::SurfaceImage siPiece(surface);
	cinder::cairo::SurfaceBase* sb = &siPiece;

	ctx.setSourceSurface(siPiece, 0, 0);
	ctx.maskSurface(sb, 0, 0);


	ctx.stroke();

	ctx.translate(-horizontalOffset, -verticalOffset);
}