Exemplo n.º 1
0
        public void TestText()
        {
            _form.Show();
            _form.ClientSize = new Size(1280, 800);
            _form.Location   = new Point(Screen.PrimaryScreen.WorkingArea.Width / 2 - 640, Screen.PrimaryScreen.WorkingArea.Height / 2 - 400);
            _form.BringToFront();
            _form.WindowState = FormWindowState.Minimized;
            _form.WindowState = FormWindowState.Normal;

            GorgonText text = _renderer.Renderables.CreateText("Test",
                                                               _graphics.Fonts.DefaultFont,
                                                               "The quick brown fox jumps over the lazy dog.\n1234567890 !@#$%^&*() ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz");

            Gorgon.Run(_form, () =>
            {
                _renderer.Clear(Color.Black);

                text.Draw();

                _renderer.Render();

                return(true);
            });

            Assert.IsTrue(_form.TestResult == DialogResult.Yes);
        }
Exemplo n.º 2
0
        public void TestEllipse()
        {
            _form.Show();
            _form.ClientSize = new Size(1280, 800);
            _form.Location   = new Point(Screen.PrimaryScreen.WorkingArea.Width / 2 - 640, Screen.PrimaryScreen.WorkingArea.Height / 2 - 400);
            _form.BringToFront();
            _form.WindowState = FormWindowState.Minimized;
            _form.WindowState = FormWindowState.Normal;

            GorgonEllipse ellipse = _renderer.Renderables.CreateEllipse("Test",
                                                                        new Vector2(320, 400),
                                                                        new Vector2(100, 100),
                                                                        Color.Blue,
                                                                        true,
                                                                        32);

            Gorgon.Run(_form, () =>
            {
                _renderer.Clear(Color.Black);

                ellipse.Color    = Color.Blue;
                ellipse.IsFilled = true;
                ellipse.Position = new Vector2(480, 400);
                ellipse.Draw();

                ellipse.Color    = Color.Green;
                ellipse.IsFilled = false;
                ellipse.Position = new Vector2(800, 400);
                ellipse.Draw();

                _renderer.Render();

                return(true);
            });

            Assert.IsTrue(_form.TestResult == DialogResult.Yes);
        }
Exemplo n.º 3
0
        public void TestOrthoCamera()
        {
            _form.Show();
            _form.ClientSize = new Size(1280, 800);
            _form.Location   = new Point(Screen.PrimaryScreen.WorkingArea.Width / 2 - 640, Screen.PrimaryScreen.WorkingArea.Height / 2 - 400);
            _form.BringToFront();
            _form.WindowState = FormWindowState.Minimized;
            _form.WindowState = FormWindowState.Normal;

            var camera = _renderer.CreateCamera <Gorgon2DOrthoCamera>("TestCam",
                                                                      new RectangleF(Vector2.Zero, _form.ClientSize),
                                                                      0.0f,
                                                                      1.0f);

            var camera2 = _renderer.CreateCamera <Gorgon2DPerspectiveCamera>("TestCam2",
                                                                             new RectangleF(-1, -1, 2, 2),
                                                                             0.01f,
                                                                             100.0f);

            using (var texture = _graphics.Textures.FromFile <GorgonTexture2D>("Test", @"..\..\..\..\Resources\Images\Ship.png", new GorgonCodecPNG()))
            {
                //camera.ViewDimensions = new RectangleF(0, 0, 1, 1);
                camera.ViewDimensions = new RectangleF(-1, -1, 2, 2);

                /*camera.ViewDimensions = new RectangleF(
                 *      new Vector2(_screen.Settings.Width / -2.0f, _screen.Settings.Height / -2.0f),
                 *      new Vector2(_screen.Settings.Width / 2.0f, _screen.Settings.Height / 2.0f));*/
                //camera.Anchor = new Vector2(0.5f, 0.5f);
                //camera.Zoom = new Vector2(2);
                //camera.Anchor = new Vector2(640, 400);
                //camera.Angle = 45.0f;

                var size = new Vector2(texture.Settings.Width * (camera.ViewDimensions.Width / _screen.Settings.Width),
                                       texture.Settings.Height * (camera.ViewDimensions.Height / _screen.Settings.Height));

                //size = size * 4.0f;

                var sprite = _renderer.Renderables.CreateSprite("Test",
                                                                new GorgonSpriteSettings
                {
                    Texture       = texture,
                    Size          = size,
                    TextureRegion =
                        new RectangleF(Vector2.Zero,
                                       texture.ToTexel(texture.Settings.Width, texture.Settings.Height))
                });

                _renderer.Camera = camera;

                sprite.Depth = 0.0f;

                sprite.Position = (Vector2)camera.Project(new Vector2(320, 200));

                Gorgon.Run(_form, () =>
                {
                    var projectedSpace       = -(Vector2)camera.Project(new Vector3(_form.PointToClient(Cursor.Position), 0), false);
                    var projectedViewSpace   = (Vector2)camera.Project(new Vector2(320, 200));
                    var unprojectedSpace     = (Vector2)camera.Unproject(projectedSpace, false);
                    var unprojectedViewSpace = (Vector2)camera.Unproject(projectedViewSpace);

                    _renderer.Clear(Color.Black);

                    _renderer.Camera = camera;

                    sprite.Draw();

                    //Vector2 projectedSpace = camera.Project(new Vector2(320, 200));

                    camera.Position = projectedSpace;
                    camera2.Draw();
                    camera.Draw();

                    _renderer.DefaultCamera.Draw();

                    _renderer.Camera = null;
                    _renderer.Drawing.DrawEllipse(new RectangleF(310, 190, 20, 20), Color.Firebrick, 64, new Vector2(1));
                    _renderer.Drawing.DrawString(_graphics.Fonts.DefaultFont,
                                                 string.Format("X:{0:0.00}, Y:{1:0.00}\nU:{2:0.00}, V:{3:0.00}\nI:{4:0.00}, J:{5:0.00}\nK:{8:0.00}, L:{9:00}\nSize X:{6:0.00}, Size Y:{7:0.00}", projectedSpace.X, projectedSpace.Y, unprojectedSpace.X, unprojectedSpace.Y, projectedViewSpace.X, projectedViewSpace.Y, size.X, size.Y, unprojectedViewSpace.X, unprojectedViewSpace.Y),
                                                 Vector2.Zero,
                                                 Color.Yellow);


                    _renderer.Render();

                    return(true);
                });

                Assert.IsTrue(_form.TestResult == DialogResult.Yes);
            }
        }