Beispiel #1
0
        protected void SetResolutionMetrics(int optimumBackBufferWidth, int optimumBackBufferHeight, ScalingAxis scalingAxis)
        {
            _unscaledBackBufferDimensions = new Vector2(optimumBackBufferWidth, optimumBackBufferHeight);

            if (scalingAxis == ScalingAxis.X)
            {
                _resolutionScaling = (float)GraphicsDevice.Viewport.Width / (float)optimumBackBufferWidth;
                _resolutionOffset = new Vector2(0.0f, ((float)GraphicsDevice.Viewport.Height - (optimumBackBufferHeight * _resolutionScaling)) / 2.0f);
            }
            else
            {
                _resolutionScaling = (float)GraphicsDevice.Viewport.Height / (float)optimumBackBufferHeight;
                _resolutionOffset = new Vector2(((float)GraphicsDevice.Viewport.Width - (optimumBackBufferWidth * _resolutionScaling)) / 2.0f, 0.0f);
            }

            TouchProcessor.ResolutionScaling = _resolutionScaling;
            TouchProcessor.ResolutionOffset = _resolutionOffset;

            _safeDisplayArea = new Rectangle(
                (int)Math.Max(-(_resolutionOffset.X / _resolutionScaling), 0),
                (int)Math.Max(-(_resolutionOffset.Y / _resolutionScaling), 0),
                (int)Math.Min(optimumBackBufferWidth + ((_resolutionOffset.X / _resolutionScaling) * 2.0f), optimumBackBufferWidth),
                (int)Math.Min(optimumBackBufferHeight + ((_resolutionOffset.Y / _resolutionScaling) * 2.0f), optimumBackBufferHeight));
        }
        protected void SetResolutionMetrics(int optimumBackBufferWidth, int optimumBackBufferHeight, ScalingAxis scalingAxis)
        {
            _unscaledBackBufferDimensions = new Vector2(optimumBackBufferWidth, optimumBackBufferHeight);

            if (scalingAxis == ScalingAxis.X)
            {
                _resolutionScaling = (float)GraphicsDevice.Viewport.Width / (float)optimumBackBufferWidth;
                _resolutionOffset  = new Vector2(0.0f, ((float)GraphicsDevice.Viewport.Height - (optimumBackBufferHeight * _resolutionScaling)) / 2.0f);
            }
            else
            {
                _resolutionScaling = (float)GraphicsDevice.Viewport.Height / (float)optimumBackBufferHeight;
                _resolutionOffset  = new Vector2(((float)GraphicsDevice.Viewport.Width - (optimumBackBufferWidth * _resolutionScaling)) / 2.0f, 0.0f);
            }

            TouchProcessor.ResolutionScaling = _resolutionScaling;
            TouchProcessor.ResolutionOffset  = _resolutionOffset;

            _safeDisplayArea = new Rectangle(
                (int)Math.Max(-(_resolutionOffset.X / _resolutionScaling), 0),
                (int)Math.Max(-(_resolutionOffset.Y / _resolutionScaling), 0),
                (int)Math.Min(optimumBackBufferWidth + ((_resolutionOffset.X / _resolutionScaling) * 2.0f), optimumBackBufferWidth),
                (int)Math.Min(optimumBackBufferHeight + ((_resolutionOffset.Y / _resolutionScaling) * 2.0f), optimumBackBufferHeight));
        }