private void DrawSelectionHandles(RenderContext renderContext, Overlay overlay, Texture handleTexture) { Rectangle[] handles = MakeHandles(overlay); double angle = overlay.RotationAngle; int i = 0; int j = 0; foreach (Rectangle handle in handles) { points[i + 0] = new PositionColoredTextured(); points[i + 0].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Top - centerY, angle); points[i + 0].Tu = j * (1f / 9f); points[i + 0].Tv = 0; points[i + 0].Color = Colors.White; points[i + 1] = new PositionColoredTextured(); points[i + 1].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Top - centerY, angle); points[i + 1].Tu = (j + 1) * (1f / 9f); points[i + 1].Tv = 0; points[i + 1].Color = Colors.White; points[i + 2] = new PositionColoredTextured(); points[i + 2].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Bottom - centerY, angle); points[i + 2].Tu = j * (1f / 9f); points[i + 2].Tv = 1; points[i + 2].Color = Colors.White; points[i + 3] = new PositionColoredTextured(); points[i + 3].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Top - centerY, angle); points[i + 3].Tu = (j + 1) * (1f / 9f); points[i + 3].Tv = 0; points[i + 3].Color = Colors.White; points[i + 4] = new PositionColoredTextured(); points[i + 4].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Bottom - centerY, angle); points[i + 4].Tu = (j + 1) * (1f / 9f); points[i + 4].Tv = 1; points[i + 4].Color = Colors.White; points[i + 5] = new PositionColoredTextured(); points[i + 5].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Bottom - centerY, angle); points[i + 5].Tu = j * (1f / 9f); points[i + 5].Tv = 1; points[i + 5].Color = Colors.White; i += 6; j++; } if (MultiSelect) { sprite.Draw(renderContext, points, points.Length - 6, handleTexture, false, 1); } else { sprite.Draw(renderContext, points, points.Length, handleTexture, false, 1); } }