Browse Source

gl-info: modernize output printing a bit, list remaining defines.

pull/454/head
Vladimír Vondruš 6 years ago
parent
commit
23d2ab1d1b
  1. 134
      src/Magnum/Platform/gl-info.cpp

134
src/Magnum/Platform/gl-info.cpp

@ -214,138 +214,162 @@ MagnumInfo::MagnumInfo(const Arguments& arguments): Platform::WindowlessApplicat
args.parse(arguments.argc, arguments.argv); args.parse(arguments.argc, arguments.argv);
#endif #endif
Debug() << ""; Debug{} << "";
Debug() << " +---------------------------------------------------------+"; Debug{} << " +---------------------------------------------------------+";
Debug() << " | Information about Magnum engine OpenGL capabilities |"; Debug{} << " | Information about Magnum engine OpenGL capabilities |";
Debug() << " +---------------------------------------------------------+"; Debug{} << " +---------------------------------------------------------+";
Debug() << ""; Debug{} << "";
#ifdef MAGNUM_WINDOWLESSEGLAPPLICATION_MAIN #ifdef MAGNUM_WINDOWLESSEGLAPPLICATION_MAIN
Debug() << "Used application: Platform::WindowlessEglApplication"; Debug{} << "Used application: Platform::WindowlessEglApplication";
#elif defined(MAGNUM_WINDOWLESSIOSAPPLICATION_MAIN) #elif defined(MAGNUM_WINDOWLESSIOSAPPLICATION_MAIN)
Debug() << "Used application: Platform::WindowlessIosApplication"; Debug{} << "Used application: Platform::WindowlessIosApplication";
#elif defined(MAGNUM_WINDOWLESSCGLAPPLICATION_MAIN) #elif defined(MAGNUM_WINDOWLESSCGLAPPLICATION_MAIN)
Debug() << "Used application: Platform::WindowlessCglApplication"; Debug{} << "Used application: Platform::WindowlessCglApplication";
#elif defined(MAGNUM_WINDOWLESSGLXAPPLICATION_MAIN) #elif defined(MAGNUM_WINDOWLESSGLXAPPLICATION_MAIN)
Debug() << "Used application: Platform::WindowlessGlxApplication"; Debug{} << "Used application: Platform::WindowlessGlxApplication";
#elif defined(MAGNUM_WINDOWLESSWGLAPPLICATION_MAIN) #elif defined(MAGNUM_WINDOWLESSWGLAPPLICATION_MAIN)
Debug() << "Used application: Platform::WindowlessWglApplication"; Debug{} << "Used application: Platform::WindowlessWglApplication";
#elif defined(MAGNUM_WINDOWLESSWINDOWSEGLAPPLICATION_MAIN) #elif defined(MAGNUM_WINDOWLESSWINDOWSEGLAPPLICATION_MAIN)
Debug() << "Used application: Platform::WindowlessWindowsEglApplication"; Debug{} << "Used application: Platform::WindowlessWindowsEglApplication";
#else #else
#error no windowless application available on this platform #error no windowless application available on this platform
#endif #endif
Debug() << "Compilation flags:"; Debug{} << "Compilation flags:";
#ifdef CORRADE_BUILD_DEPRECATED #ifdef CORRADE_BUILD_DEPRECATED
Debug() << " CORRADE_BUILD_DEPRECATED"; Debug{} << " CORRADE_BUILD_DEPRECATED";
#endif #endif
#ifdef CORRADE_BUILD_STATIC #ifdef CORRADE_BUILD_STATIC
Debug() << " CORRADE_BUILD_STATIC"; Debug{} << " CORRADE_BUILD_STATIC";
#endif #endif
#ifdef CORRADE_BUILD_MULTITHREADED #ifdef CORRADE_BUILD_MULTITHREADED
Debug() << " CORRADE_BUILD_MULTITHREADED"; Debug{} << " CORRADE_BUILD_MULTITHREADED";
#endif #endif
#ifdef CORRADE_TARGET_UNIX #ifdef CORRADE_TARGET_UNIX
Debug() << " CORRADE_TARGET_UNIX"; Debug{} << " CORRADE_TARGET_UNIX";
#endif #endif
#ifdef CORRADE_TARGET_APPLE #ifdef CORRADE_TARGET_APPLE
Debug() << " CORRADE_TARGET_APPLE"; Debug{} << " CORRADE_TARGET_APPLE";
#endif #endif
#ifdef CORRADE_TARGET_IOS #ifdef CORRADE_TARGET_IOS
Debug() << " CORRADE_TARGET_IOS"; Debug{} << " CORRADE_TARGET_IOS";
#endif #endif
#ifdef CORRADE_TARGET_WINDOWS #ifdef CORRADE_TARGET_WINDOWS
Debug() << " CORRADE_TARGET_WINDOWS"; Debug{} << " CORRADE_TARGET_WINDOWS";
#endif #endif
#ifdef CORRADE_TARGET_WINDOWS_RT #ifdef CORRADE_TARGET_WINDOWS_RT
Debug() << " CORRADE_TARGET_WINDOWS_RT"; Debug{} << " CORRADE_TARGET_WINDOWS_RT";
#endif #endif
#ifdef CORRADE_TARGET_EMSCRIPTEN #ifdef CORRADE_TARGET_EMSCRIPTEN
Debug() << " CORRADE_TARGET_EMSCRIPTEN (" << Debug::nospace Debug{} << " CORRADE_TARGET_EMSCRIPTEN (" << Debug::nospace
<< __EMSCRIPTEN_major__ << Debug::nospace << "." << Debug::nospace << __EMSCRIPTEN_major__ << Debug::nospace << "." << Debug::nospace
<< __EMSCRIPTEN_minor__ << Debug::nospace << "." << Debug::nospace << __EMSCRIPTEN_minor__ << Debug::nospace << "." << Debug::nospace
<< __EMSCRIPTEN_tiny__ << Debug::nospace << ")"; << __EMSCRIPTEN_tiny__ << Debug::nospace << ")";
#endif #endif
#ifdef CORRADE_TARGET_ANDROID #ifdef CORRADE_TARGET_ANDROID
Debug() << " CORRADE_TARGET_ANDROID"; Debug{} << " CORRADE_TARGET_ANDROID";
#endif #endif
#ifdef CORRADE_TARGET_X86 #ifdef CORRADE_TARGET_X86
Debug() << " CORRADE_TARGET_X86"; Debug{} << " CORRADE_TARGET_X86";
#endif #endif
#ifdef CORRADE_TARGET_ARM #ifdef CORRADE_TARGET_ARM
Debug() << " CORRADE_TARGET_ARM"; Debug{} << " CORRADE_TARGET_ARM";
#endif #endif
#ifdef CORRADE_TARGET_POWERPC #ifdef CORRADE_TARGET_POWERPC
Debug() << " CORRADE_TARGET_POWERPC"; Debug{} << " CORRADE_TARGET_POWERPC";
#endif
#ifdef CORRADE_TARGET_BIG_ENDIAN
Debug{} << " CORRADE_TARGET_BIG_ENDIAN";
#endif
#ifdef CORRADE_TARGET_GCC
Debug{} << " CORRADE_TARGET_GCC";
#endif
#ifdef CORRADE_TARGET_CLANG
Debug{} << " CORRADE_TARGET_CLANG";
#endif
#ifdef CORRADE_TARGET_APPLE_CLANG
Debug{} << " CORRADE_TARGET_APPLE_CLANG";
#endif
#ifdef CORRADE_TARGET_CLANG_CL
Debug{} << " CORRADE_TARGET_CLANG_CL";
#endif
#ifdef CORRADE_TARGET_MSVC
Debug{} << " CORRADE_TARGET_MSVC";
#endif
#ifdef CORRADE_TARGET_MINGW
Debug{} << " CORRADE_TARGET_MINGW";
#endif #endif
#ifdef CORRADE_TARGET_LIBCXX #ifdef CORRADE_TARGET_LIBCXX
Debug() << " CORRADE_TARGET_LIBCXX"; Debug{} << " CORRADE_TARGET_LIBCXX";
#endif
#ifdef CORRADE_TARGET_LIBSTDCXX
Debug{} << " CORRADE_TARGET_LIBSTDCXX";
#endif #endif
#ifdef CORRADE_TARGET_DINKUMWARE #ifdef CORRADE_TARGET_DINKUMWARE
Debug() << " CORRADE_TARGET_DINKUMWARE"; Debug{} << " CORRADE_TARGET_DINKUMWARE";
#endif #endif
#ifdef CORRADE_TARGET_LIBSTDCXX #ifdef CORRADE_TARGET_SSE2
Debug() << " CORRADE_TARGET_LIBSTDCXX"; Debug{} << " CORRADE_TARGET_SSE2";
#endif #endif
#ifdef CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT #ifdef CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT
Debug() << " CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT"; Debug{} << " CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT";
#endif #endif
#ifdef CORRADE_TESTSUITE_TARGET_XCTEST #ifdef CORRADE_TESTSUITE_TARGET_XCTEST
Debug() << " CORRADE_TESTSUITE_TARGET_XCTEST"; Debug{} << " CORRADE_TESTSUITE_TARGET_XCTEST";
#endif #endif
#ifdef CORRADE_UTILITY_USE_ANSI_COLORS #ifdef CORRADE_UTILITY_USE_ANSI_COLORS
Debug() << " CORRADE_UTILITY_USE_ANSI_COLORS"; Debug{} << " CORRADE_UTILITY_USE_ANSI_COLORS";
#endif #endif
#ifdef MAGNUM_BUILD_DEPRECATED #ifdef MAGNUM_BUILD_DEPRECATED
Debug() << " MAGNUM_BUILD_DEPRECATED"; Debug{} << " MAGNUM_BUILD_DEPRECATED";
#endif #endif
#ifdef MAGNUM_BUILD_STATIC #ifdef MAGNUM_BUILD_STATIC
Debug() << " MAGNUM_BUILD_STATIC"; Debug{} << " MAGNUM_BUILD_STATIC";
#endif #endif
#ifdef MAGNUM_TARGET_GLES #ifdef MAGNUM_TARGET_GLES
Debug() << " MAGNUM_TARGET_GLES"; Debug{} << " MAGNUM_TARGET_GLES";
#endif #endif
#ifdef MAGNUM_TARGET_GLES2 #ifdef MAGNUM_TARGET_GLES2
Debug() << " MAGNUM_TARGET_GLES2"; Debug{} << " MAGNUM_TARGET_GLES2";
#endif #endif
#ifdef MAGNUM_TARGET_DESKTOP_GLES #ifdef MAGNUM_TARGET_DESKTOP_GLES
Debug() << " MAGNUM_TARGET_DESKTOP_GLES"; Debug{} << " MAGNUM_TARGET_DESKTOP_GLES";
#endif #endif
#ifdef MAGNUM_TARGET_WEBGL #ifdef MAGNUM_TARGET_WEBGL
Debug() << " MAGNUM_TARGET_WEBGL"; Debug{} << " MAGNUM_TARGET_WEBGL";
#endif #endif
#ifdef MAGNUM_TARGET_HEADLESS #ifdef MAGNUM_TARGET_HEADLESS
Debug() << " MAGNUM_TARGET_HEADLESS"; Debug{} << " MAGNUM_TARGET_HEADLESS";
#endif #endif
Debug() << ""; Debug{} << "";
/* Create context here, so the context creation info is displayed at proper /* Create context here, so the context creation info is displayed at proper
place */ place */
createContext(); createContext();
GL::Context& c = GL::Context::current(); GL::Context& c = GL::Context::current();
Debug() << ""; Debug{} << "";
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
Debug() << "Core profile:" << (c.isCoreProfile() ? "yes" : "no"); Debug{} << "Core profile:" << (c.isCoreProfile() ? "yes" : "no");
#endif #endif
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
Debug() << "Context flags:" << c.flags(); Debug{} << "Context flags:" << c.flags();
#endif #endif
Debug() << "Detected driver:" << c.detectedDriver(); Debug{} << "Detected driver:" << c.detectedDriver();
Debug() << "Supported GLSL versions:"; Debug{} << "Supported GLSL versions:";
Debug() << " " << Utility::String::joinWithoutEmptyParts(c.shadingLanguageVersionStrings(), ", "); Debug{} << " " << Utility::String::joinWithoutEmptyParts(c.shadingLanguageVersionStrings(), ", ");
if(args.isSet("extension-strings")) { if(args.isSet("extension-strings")) {
Debug() << "Extension strings:" << Debug::newline Debug{} << "Extension strings:" << Debug::newline
<< c.extensionStrings(); << c.extensionStrings();
return; return;
} }
if(args.isSet("short")) return; if(args.isSet("short")) return;
Debug() << ""; Debug{} << "";
/* Get first future (not supported) version */ /* Get first future (not supported) version */
std::vector<GL::Version> versions{ std::vector<GL::Version> versions{
@ -379,8 +403,8 @@ MagnumInfo::MagnumInfo(const Arguments& arguments): Platform::WindowlessApplicat
/* Display supported OpenGL extensions from unsupported versions */ /* Display supported OpenGL extensions from unsupported versions */
for(std::size_t i = future; i != versions.size(); ++i) { for(std::size_t i = future; i != versions.size(); ++i) {
if(versions[i] != GL::Version::None) if(versions[i] != GL::Version::None)
Debug() << versions[i] << "extension support:"; Debug{} << versions[i] << "extension support:";
else Debug() << "Vendor extension support:"; else Debug{} << "Vendor extension support:";
for(const auto& extension: GL::Extension::extensions(versions[i])) { for(const auto& extension: GL::Extension::extensions(versions[i])) {
std::string extensionName = extension.string(); std::string extensionName = extension.string();
@ -396,17 +420,17 @@ MagnumInfo::MagnumInfo(const Arguments& arguments): Platform::WindowlessApplicat
d << " n/a"; d << " n/a";
} }
Debug() << ""; Debug{} << "";
} }
if(!args.isSet("limits")) return; if(!args.isSet("limits")) return;
/* Limits and implementation-defined values */ /* Limits and implementation-defined values */
#define _h(val) Debug() << "\n " << GL::Extensions::val::string() + std::string(":"); #define _h(val) Debug{} << "\n " << GL::Extensions::val::string() << Debug::nospace << ":";
#define _l(val) Debug() << " " << #val << (sizeof(#val) > 64 ? "\n" + std::string(68, ' ') : std::string(64 - sizeof(#val), ' ')) << val; #define _l(val) Debug{} << " " << #val << (sizeof(#val) > 64 ? "\n" + std::string(68, ' ') : std::string(64 - sizeof(#val), ' ')) << val;
#define _lvec(val) Debug() << " " << #val << (sizeof(#val) > 42 ? "\n" + std::string(46, ' ') : std::string(42 - sizeof(#val), ' ')) << val; #define _lvec(val) Debug{} << " " << #val << (sizeof(#val) > 42 ? "\n" + std::string(46, ' ') : std::string(42 - sizeof(#val), ' ')) << val;
Debug() << "Limits and implementation-defined values:"; Debug{} << "Limits and implementation-defined values:";
_lvec(GL::AbstractFramebuffer::maxViewportSize()) _lvec(GL::AbstractFramebuffer::maxViewportSize())
_l(GL::AbstractFramebuffer::maxDrawBuffers()) _l(GL::AbstractFramebuffer::maxDrawBuffers())
_l(GL::Framebuffer::maxColorAttachments()) _l(GL::Framebuffer::maxColorAttachments())

Loading…
Cancel
Save