|
|
|
@ -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()) |
|
|
|
|