From ffc993b7894cbfaad9876ddfafcf157ddba1e2b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 5 Feb 2016 16:27:37 +0100 Subject: [PATCH] Properly handle cases when glGetString() returns nullptr. --- src/Magnum/Context.cpp | 16 ++++++++++++++++ src/Magnum/Context.h | 16 ++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Magnum/Context.cpp b/src/Magnum/Context.cpp index c4d96ce13..6f9d9f582 100644 --- a/src/Magnum/Context.cpp +++ b/src/Magnum/Context.cpp @@ -680,6 +680,22 @@ bool Context::tryCreate() { return true; } +std::string Context::vendorString() const { + return Utility::String::fromArray(reinterpret_cast(glGetString(GL_VENDOR))); +} + +std::string Context::rendererString() const { + return Utility::String::fromArray(reinterpret_cast(glGetString(GL_RENDERER))); +} + +std::string Context::versionString() const { + return Utility::String::fromArray(reinterpret_cast(glGetString(GL_VERSION))); +} + +std::string Context::shadingLanguageVersionString() const { + return Utility::String::fromArray(reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION))); +} + std::vector Context::shadingLanguageVersionStrings() const { #ifndef MAGNUM_TARGET_GLES GLint versionCount = 0; diff --git a/src/Magnum/Context.h b/src/Magnum/Context.h index 06a2e93d5..cfb3412a4 100644 --- a/src/Magnum/Context.h +++ b/src/Magnum/Context.h @@ -282,9 +282,7 @@ class MAGNUM_EXPORT Context { * OpenGL calls. * @see @ref rendererString(), @fn_gl{GetString} with @def_gl{VENDOR} */ - std::string vendorString() const { - return reinterpret_cast(glGetString(GL_VENDOR)); - } + std::string vendorString() const; /** * @brief Renderer string @@ -293,9 +291,7 @@ class MAGNUM_EXPORT Context { * OpenGL calls. * @see @ref vendorString(), @fn_gl{GetString} with @def_gl{RENDERER} */ - std::string rendererString() const { - return reinterpret_cast(glGetString(GL_RENDERER)); - } + std::string rendererString() const; /** * @brief Version string @@ -305,9 +301,7 @@ class MAGNUM_EXPORT Context { * @see @ref shadingLanguageVersionString(), @ref version(), * @fn_gl{GetString} with @def_gl{VERSION} */ - std::string versionString() const { - return reinterpret_cast(glGetString(GL_VERSION)); - } + std::string versionString() const; /** * @brief Shading language version string @@ -317,9 +311,7 @@ class MAGNUM_EXPORT Context { * @see @ref versionString(), @ref version(), @fn_gl{GetString} with * @def_gl{SHADING_LANGUAGE_VERSION} */ - std::string shadingLanguageVersionString() const { - return reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION)); - } + std::string shadingLanguageVersionString() const; /** * @brief Shading language version strings