Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }