private void DrawSelectionHandles(RenderContext11 renderContext, Overlay overlay, Texture11 handleTexture) { RectangleF[] handles = MakeHandles(overlay); float angle = overlay.RotationAngle; int i = 0; int j = 0; foreach (RectangleF handle in handles) { points[i + 0].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Top - centerY, angle).Vector4; points[i + 0].Tu = j * (1f / 9f); points[i + 0].Tv = 0; points[i + 0].Color = Color.White; points[i + 1].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Top - centerY, angle).Vector4; points[i + 1].Tu = (j + 1) * (1f / 9f); points[i + 1].Tv = 0; points[i + 1].Color = Color.White; points[i + 2].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Bottom - centerY, angle).Vector4; points[i + 2].Tu = j * (1f / 9f); points[i + 2].Tv = 1; points[i + 2].Color = Color.White; points[i + 3].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Top - centerY, angle).Vector4; points[i + 3].Tu = (j + 1) * (1f / 9f); points[i + 3].Tv = 0; points[i + 3].Color = Color.White; points[i + 4].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Bottom - centerY, angle).Vector4; points[i + 4].Tu = (j + 1) * (1f / 9f); points[i + 4].Tv = 1; points[i + 4].Color = Color.White; points[i + 5].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Bottom - centerY, angle).Vector4; points[i + 5].Tu = j * (1f / 9f); points[i + 5].Tv = 1; points[i + 5].Color = Color.White; i += 6; j++; } if (MultiSelect) { Sprite2d.Draw(renderContext, points, points.Length - 6, handleTexture, SharpDX.Direct3D.PrimitiveTopology.TriangleList); } else { Sprite2d.Draw(renderContext, points, points.Length, handleTexture, SharpDX.Direct3D.PrimitiveTopology.TriangleList); } }
internal void Draw(RenderContext11 renderContext) { if (reticleImage == null) { reticleImage = Texture11.FromBitmap(Properties.Resources.Reticle); } ComputePoints(); Sprite2d.Draw(renderContext, points, 4, reticleImage, SharpDX.Direct3D.PrimitiveTopology.TriangleStrip); }