public void Dispose()
        {
            Shaders.DestroyShaders();

            if (!m_shutDown)
            {
                Shutdown();
            }

            while (!m_joinable)
            {
                Thread.Yield();
            }
            ;

            m_thread.Join();
        }