//----------------------------------------------------------------- // get font string void mgTextBuffer::getFont( mgString& fontSpec) { fontSpec.format("%s-%d%s%s", (const char*) m_fontFace, m_fontSize, m_fontBold == mgTrue? "-b" : "", m_fontItalic == mgTrue ? "-i" : ""); }
//-------------------------------------------------------------- // check version of OpenGL available BOOL mgWinGL21Support::checkVersion( int reqGLVersion, int reqShaderVersion, mgString& errorMsg) { const char* vendor = (const char*) glGetString(GL_VENDOR); if (vendor != NULL) mgDebug("OpenGL device vendor: %s", (const char*) vendor); const char* renderer = (const char*) glGetString(GL_RENDERER); if (renderer != NULL) mgDebug("OpenGL device renderer: %s", (const char*) renderer); const char* glVersionStr = (const char*) glGetString(GL_VERSION); if (glVersionStr == NULL) { errorMsg = "cannot read OpenGL version"; return false; } mgDebug("OpenGL version: %s", (const char*) glVersionStr); int major, minor, glVersion; if (2 != sscanf(glVersionStr, "%d.%d", &major, &minor)) { errorMsg.format("cannot parse OpenGL version %s", (const char*) glVersionStr); return false; } // trim trailing zeros. 3.3 and 3.30 are the same while (minor%10 == 0) minor /= 10; glVersion = major*100 + minor; const char* shaderVersionStr = (const char*) glGetString(GL_SHADING_LANGUAGE_VERSION); if (shaderVersionStr == NULL) { errorMsg = "cannot read OpenGL Shader Language version"; return false; } mgDebug("OpenGL shader version: %s", (const char*) shaderVersionStr); int shaderVersion; if (2 != sscanf(shaderVersionStr, "%d.%d", &major, &minor)) { errorMsg.format("cannot parse OpenGL version %s", (const char*) shaderVersionStr); return false; } // trim trailing zeros. 3.3 and 3.30 are the same while (minor%10 == 0) minor /= 10; shaderVersion = major*100 + minor; if (glVersion < reqGLVersion || shaderVersion < reqShaderVersion) { errorMsg.format("App requested OpenGl %d.%d, shader %d.%d\nSystem has OpenGL %d.%d, shader %d.%d", reqGLVersion/100, reqGLVersion%100, reqShaderVersion/100, reqShaderVersion%100, glVersion/100, glVersion%100, shaderVersion/100, shaderVersion%100); return false; } return true; }
//----------------------------------------------------------------------------- // report status for debug log void Landscape::appDebugStats( mgString& status) { status.format("max count = %d", m_maxCount); }