public void Shutdown()
        {
            // Release all sentances however many there may be.
            foreach (DSentence sentance in sentences)
            {
                ReleaseSentences(sentance);
            }
            sentences = null;

            // Release the font shader object.
            FontShader?.Shuddown();
            FontShader = null;
            // Release the font object.
            Font?.Shutdown();
            Font = null;
        }
        // Methods
        public bool Initialize(SharpDX.Direct3D11.Device device, DeviceContext deviceContext, IntPtr windowHandle, int screanWidth, int screenHeight, Matrix baseViewMatrix)
        {
            // Store the screen width and height.
            ScreenWidth  = screanWidth;
            ScreenHeight = screenHeight;

            // Store the base view matrix.
            BaseViewMatrix = baseViewMatrix;

            // Create the font object.
            Font = new DFont();

            // Initialize the font object.
            if (!Font.Initialize(device, "fontdata.txt", "font.bmp"))
            {
                return(false);
            }

            // Create the font shader object.
            FontShader = new DFontShader();

            // Initialize the font shader object.
            if (!FontShader.Initialize(device, windowHandle))
            {
                return(false);
            }

            // Initialize the first sentence.
            if (!InitializeSentence(out sentences[0], 16, device))
            {
                return(false);
            }

            // Now update the sentence vertex buffer with the new string information.
            if (!UpdateSentece(ref sentences[0], "Hello", 100, 100, 1, 1, 1, deviceContext))
            {
                return(false);
            }

            // Initialize the second sentence.
            if (!InitializeSentence(out sentences[1], 16, device))
            {
                return(false);
            }

            // Now update the sentence vertex buffer with the new string information.
            if (!UpdateSentece(ref sentences[1], "Goodbye", 100, 200, 1, 1, 0, deviceContext))
            {
                return(false);
            }

            // Initialize the tHIRD sentence.
            if (!InitializeSentence(out sentences[2], 32, device))
            {
                return(false);
            }

            // Now update the sentence vertex buffer with the new string information.
            if (!UpdateSentece(ref sentences[2], "This is yet Another Test", 50, 300, 0, 1, 1, deviceContext))
            {
                return(false);
            }

            return(true);
        }