From 12053af5bed1022887be49876905124da270d946 Mon Sep 17 00:00:00 2001 From: vng Date: Fri, 2 Mar 2012 03:02:10 +0300 Subject: [PATCH] Safe m_vendorName and m_rendererName initialization. --- yg/resource_manager.cpp | 21 ++++++++++++++++++--- yg/resource_manager.hpp | 1 - 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/yg/resource_manager.cpp b/yg/resource_manager.cpp index 40b1e563e9..8b8f90ed83 100644 --- a/yg/resource_manager.cpp +++ b/yg/resource_manager.cpp @@ -355,9 +355,7 @@ namespace yg } ResourceManager::Params::Params() - : m_vendorName(reinterpret_cast(glGetString(GL_VENDOR))), - m_rendererName(reinterpret_cast(glGetString(GL_RENDERER))), - m_rtFormat(yg::Data8Bpp), + : m_rtFormat(yg::Data8Bpp), m_texFormat(yg::Data4Bpp), m_texRtFormat(yg::Data4Bpp), m_useSingleThreadedOGL(false), @@ -374,6 +372,23 @@ namespace yg m_styleCacheTexturesParams("styleCacheTexture"), m_guiThreadTexturesParams("guiThreadTexture") { + char const * s = reinterpret_cast(glGetString(GL_VENDOR)); + if (s) + m_vendorName = s; + else + { + OGLCHECKAFTER; + LOG(LWARNING, ("Can't get vendor name from OpenGL")); + } + + s = reinterpret_cast(glGetString(GL_RENDERER)); + if (s) + m_rendererName = s; + else + { + OGLCHECKAFTER; + LOG(LWARNING, ("Can't get renderer name from OpenGL")); + } } bool ResourceManager::Params::isGPU(char const * vendorName, char const * rendererName) const diff --git a/yg/resource_manager.hpp b/yg/resource_manager.hpp index 917c45765d..21cf4a3b12 100644 --- a/yg/resource_manager.hpp +++ b/yg/resource_manager.hpp @@ -284,7 +284,6 @@ namespace yg ResourceManager(Params const & p); void initGlyphCaches(GlyphCacheParams const & p); - void selectTexRTFormat(); void initStoragePool(StoragePoolParams const & p, scoped_ptr & pool);