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); }