public Direct3DWindow(IController controller, IRenderer renderer, double frameRate)
    {
      if (controller == null) throw new ArgumentNullException("controller");
      if (renderer == null) throw new ArgumentNullException("renderer");
      _controller = controller;
      _renderer = (Direct3DRenderer) renderer;
      _renderingAdapter = new Direct3DRenderingAdapter(_controller, _renderer, _renderer.Direct3DDevice, frameRate);

      Width = controller.Width;
      Height = controller.Height;
      if (_controller.IsFullScreen)
        WindowState = WindowState.Maximized;
      Title = controller.Name;

      InitializeComponent();
      if (_controller.HasUserInterface)
      {
        if (_controller.CentralView != null)
          MainGrid.Children.Add((UIElement) _controller.CentralView);
        if (_controller.LeftView != null)
          LeftGrid.Children.Add((UIElement) _controller.LeftView);
        if (_controller.RightView != null)
          RightGrid.Children.Add((UIElement) _controller.RightView);
        if (_controller.TopView != null)
          TopGrid.Children.Add((UIElement) _controller.TopView);
        if (_controller.BottomView != null)
          BottomGrid.Children.Add((UIElement) _controller.BottomView);

      }
      Loaded += OnLoaded;
      Closing += OnClosing;
      KeyDown += OnKeyPress;
    }
        public Direct3DWindow(IController controller, IRenderer renderer, double frameRate)
        {
            if (controller == null)
            {
                throw new ArgumentNullException("controller");
            }
            if (renderer == null)
            {
                throw new ArgumentNullException("renderer");
            }
            _controller       = controller;
            _renderer         = (Direct3DRenderer)renderer;
            _renderingAdapter = new Direct3DRenderingAdapter(_controller, _renderer, _renderer.Direct3DDevice, frameRate);

            Width  = controller.Width;
            Height = controller.Height;
            if (_controller.IsFullScreen)
            {
                WindowState = WindowState.Maximized;
            }
            Title = controller.Name;

            InitializeComponent();
            if (_controller.HasUserInterface)
            {
                if (_controller.CentralView != null)
                {
                    MainGrid.Children.Add((UIElement)_controller.CentralView);
                }
                if (_controller.LeftView != null)
                {
                    LeftGrid.Children.Add((UIElement)_controller.LeftView);
                }
                if (_controller.RightView != null)
                {
                    RightGrid.Children.Add((UIElement)_controller.RightView);
                }
                if (_controller.TopView != null)
                {
                    TopGrid.Children.Add((UIElement)_controller.TopView);
                }
                if (_controller.BottomView != null)
                {
                    BottomGrid.Children.Add((UIElement)_controller.BottomView);
                }
            }
            Loaded  += OnLoaded;
            Closing += OnClosing;
            KeyDown += OnKeyPress;
        }