Ejemplo n.º 1
0
        protected void _AdjustAspect(bool reverse)
        {
            if (_W / (float)_H > CSettings.GetRenderAspect())
            {
                _Y = 0;
                //The windows width is too big
                int old = _W;
                _W = (int)Math.Round(_H * CSettings.GetRenderAspect());
                int diff = old - _W;
                switch (_CurrentAlignment)
                {
                case EGeneralAlignment.Start:
                    _X = 0;
                    break;

                case EGeneralAlignment.Middle:
                    _X = diff / 2;
                    break;

                case EGeneralAlignment.End:
                    _X = diff;
                    break;
                }
            }
            else
            {
                _X = 0;
                //The windows height is too big
                int old = _H;
                _H = (int)Math.Round(_W / CSettings.GetRenderAspect());
                int diff = old - _H;
                switch (_CurrentAlignment)
                {
                case EGeneralAlignment.Start:
                    _Y = reverse ? diff : 0;
                    break;

                case EGeneralAlignment.Middle:
                    _Y = diff / 2;
                    break;

                case EGeneralAlignment.End:
                    _Y = reverse ? 0 : diff;
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        private void _DrawBuffer()
        {
            Graphics frontBuffer = Graphics.FromHwnd(Handle);
            int      h           = ClientSize.Height;
            int      w           = ClientSize.Width;
            int      y           = 0;
            int      x           = 0;

            if (ClientSize.Width / (float)ClientSize.Height > CSettings.GetRenderAspect())
            {
                w = (int)Math.Round(ClientSize.Height * CSettings.GetRenderAspect());
                x = (ClientSize.Width - w) / 2;
            }
            else
            {
                h = (int)Math.Round(ClientSize.Width / CSettings.GetRenderAspect());
                y = (ClientSize.Height - h) / 2;
            }

            frontBuffer.DrawImage(_Backbuffer, new Rectangle(x, y, w, h), new Rectangle(0, 0, _Backbuffer.Width, _Backbuffer.Height), GraphicsUnit.Pixel);
        }