public SDX_DisplayWindow(DisplayWindow owner, CreateWindowParams windowParams)
        {
            mChoosePosition = windowParams.WindowPosition;
            mOwner          = owner;

            if (windowParams.RenderToControl)
            {
                if (typeof(Control).IsAssignableFrom(windowParams.RenderTarget.GetType()) == false)
                {
                    throw new ArgumentException("The specified render target does not derive from System.Windows.Forms.Control");
                }

                mRenderTarget = (Control)windowParams.RenderTarget;

                mIsFullscreen = false;
                mChooseWidth  = mRenderTarget.ClientSize.Width;
                mChooseHeight = mRenderTarget.ClientSize.Height;

                mDisplay = Display.Impl as SDX_Display;
                mDisplay.Initialize(this, windowParams);
                mDisplay.VSyncChanged += new EventHandler(mDisplay_VSyncChanged);
            }
            else
            {
                if (string.IsNullOrEmpty(windowParams.IconFile) == false)
                {
                    mIcon = new Drawing.Icon(windowParams.IconFile);
                }

                mTitle        = windowParams.Title;
                mIsFullscreen = windowParams.IsFullScreen;
                mChooseWidth  = windowParams.Width;
                mChooseHeight = windowParams.Height;
                mChooseResize = windowParams.IsResizable;
                mHasFrame     = windowParams.HasFrame;

                CreateWindow(mIsFullscreen);

                mDisplay = Display.Impl as SDX_Display;
                mDisplay.Initialize(this, windowParams);
                mDisplay.VSyncChanged += new EventHandler(mDisplay_VSyncChanged);
            }

            AttachEvents();
            CreateBackBuffer(mIsFullscreen);
        }