// Methods
        public virtual bool Initialize(string title, int width, int height, bool vSync, bool fullScreen, int testTimeSeconds)
        {
            bool result = false;

            if (Configuration == null)
            {
                Configuration = new DSystemConfiguration(title, width, height, fullScreen, vSync);
            }

            // Initialize Window.
            InitializeWindows(title);

            // Create the application wrapper object.
            DApplication = new DApplication();

            // Initialize the application wrapper object.
            if (!DApplication.Initialize(Configuration, RenderForm.Handle))
            {
                return(false);
            }

            DPerfLogger.Initialize("RenderForm C# SharpDX: " + Configuration.Width + "x" + Configuration.Height + " VSync:" + DSystemConfiguration.VerticalSyncEnabled + " FullScreen:" + DSystemConfiguration.FullScreen + "   " + RenderForm.Text, testTimeSeconds, Configuration.Width, Configuration.Height);;

            return(result);
        }
        public bool Initialize(DSystemConfiguration configuration, IntPtr windowHandle)
        {
            // Create the input object.  The input object will be used to handle reading the keyboard and mouse input from the user.
            Input = new DInput();
            // Initialize the input object.
            if (!Input.Initialize(configuration, windowHandle))
            {
                return(false);
            }

            // Create the Direct3D object.
            D3D = new DDX11();
            // Initialize the Direct3D object.
            if (!D3D.Initialize(configuration, windowHandle))
            {
                return(false);
            }

            // Create the shader manager object.
            ShaderManager = new DShaderManager();
            // Initialize the shader manager object.
            if (!ShaderManager.Initilize(D3D, windowHandle))
            {
                return(false);
            }

            // Create the texture manager object.
            TextureManager = new DTextureManager();
            // Initialize the texture manager object.
            if (!TextureManager.Initialize(10))
            {
                return(false);
            }
            // Load textures into the texture manager.
            //if (!TextureManager.LoadTexture(D3D.Device, D3D.DeviceContext, "test.bmp", 0))
            //    return false;
            if (!TextureManager.LoadTexture(D3D.Device, D3D.DeviceContext, "dirt01d.bmp", 0))
            {
                return(false);
            }

            // Create and initialize Timer.
            Timer = new DTimer();
            if (!Timer.Initialize())
            {
                return(false);
            }

            // Create the fps object.
            FPS = new DFPS();
            FPS.Initialize();

            // Create and Initialize the Zone object.
            Zone = new DZone();
            if (!Zone.Initialze(D3D, windowHandle, configuration))
            {
                return(false);
            }

            return(true);
        }