diff --git a/src/Magnum/Platform/GlfwApplication.cpp b/src/Magnum/Platform/GlfwApplication.cpp index e435c26aa..986413a6b 100644 --- a/src/Magnum/Platform/GlfwApplication.cpp +++ b/src/Magnum/Platform/GlfwApplication.cpp @@ -430,9 +430,10 @@ bool GlfwApplication::tryCreate(const Configuration& configuration, const GLConf glfwWindowHint(GLFW_SAMPLES, glConfiguration.sampleCount()); glfwWindowHint(GLFW_SRGB_CAPABLE, glConfiguration.isSrgbCapable()); - /* Request debug context if --magnum-gpu-validation is enabled */ + /* Request debug context if GpuValidation is enabled either via the + configuration or via command-line */ GLConfiguration::Flags glFlags = glConfiguration.flags(); - if(_context->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation) + if((glFlags & GLConfiguration::Flag::GpuValidation) || (_context->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation)) glFlags |= GLConfiguration::Flag::Debug; #ifdef GLFW_CONTEXT_NO_ERROR diff --git a/src/Magnum/Platform/Sdl2Application.cpp b/src/Magnum/Platform/Sdl2Application.cpp index ba985b472..c0770d5cd 100644 --- a/src/Magnum/Platform/Sdl2Application.cpp +++ b/src/Magnum/Platform/Sdl2Application.cpp @@ -465,9 +465,10 @@ bool Sdl2Application::tryCreate(const Configuration& configuration, const GLConf _dpiScaling = dpiScaling(configuration); const Vector2i scaledWindowSize = configuration.size()*_dpiScaling; - /* Request debug context if --magnum-gpu-validation is enabled */ + /* Request debug context if GpuValidation is enabled either via the + configuration or via command-line */ GLConfiguration::Flags glFlags = glConfiguration.flags(); - if(_context->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation) + if((glFlags & GLConfiguration::Flag::GpuValidation) || (_context->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation)) glFlags |= GLConfiguration::Flag::Debug; /* Set context version, if user-specified */ diff --git a/src/Magnum/Platform/Test/GlfwApplicationTest.cpp b/src/Magnum/Platform/Test/GlfwApplicationTest.cpp index bfb8d4447..fd7a69e1d 100644 --- a/src/Magnum/Platform/Test/GlfwApplicationTest.cpp +++ b/src/Magnum/Platform/Test/GlfwApplicationTest.cpp @@ -110,6 +110,7 @@ GlfwApplicationTest::GlfwApplicationTest(const Arguments& arguments): Platform:: .addBooleanOption("always-on-top").setHelp("always-on-top", "always on top") #ifdef MAGNUM_TARGET_GL .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") + .addBooleanOption("gpu-validation").setHelp("gpu-validation", "like --magnum-gpu-validation, but specified via a Context::Configuration instead") #endif .parse(arguments.argc, arguments.argv); @@ -127,13 +128,19 @@ GlfwApplicationTest::GlfwApplicationTest(const Arguments& arguments): Platform:: if(args.isSet("always-on-top")) conf.addWindowFlags(Configuration::WindowFlag::AlwaysOnTop); #ifdef MAGNUM_TARGET_GL - if(args.isSet("quiet")) { - create(conf, GLConfiguration{}.addFlags(GLConfiguration::Flag::QuietLog)); - } else + GLConfiguration glConf; + if(args.isSet("quiet")) + glConf.addFlags(GLConfiguration::Flag::QuietLog); + if(args.isSet("gpu-validation")) + glConf.addFlags(GLConfiguration::Flag::GpuValidation); + create(conf, glConf); + #else + create(conf); + #endif + + #ifdef MAGNUM_TARGET_GL + Debug{} << "GL context flags:" << GL::Context::current().flags(); #endif - { - create(conf); - } /* For testing resize events */ Debug{} << "window size" << windowSize() diff --git a/src/Magnum/Platform/Test/Sdl2ApplicationTest.cpp b/src/Magnum/Platform/Test/Sdl2ApplicationTest.cpp index 6565311ea..cd6844cbb 100644 --- a/src/Magnum/Platform/Test/Sdl2ApplicationTest.cpp +++ b/src/Magnum/Platform/Test/Sdl2ApplicationTest.cpp @@ -167,6 +167,7 @@ Sdl2ApplicationTest::Sdl2ApplicationTest(const Arguments& arguments): Platform:: #endif #ifdef MAGNUM_TARGET_GL .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") + .addBooleanOption("gpu-validation").setHelp("gpu-validation", "like --magnum-gpu-validation, but specified via a Context::Configuration instead") #endif .parse(arguments.argc, arguments.argv); @@ -188,13 +189,19 @@ Sdl2ApplicationTest::Sdl2ApplicationTest(const Arguments& arguments): Platform:: #endif #endif #ifdef MAGNUM_TARGET_GL - if(args.isSet("quiet")) { - create(conf, GLConfiguration{}.addFlags(GLConfiguration::Flag::QuietLog)); - } else + GLConfiguration glConf; + if(args.isSet("quiet")) + glConf.addFlags(GLConfiguration::Flag::QuietLog); + if(args.isSet("gpu-validation")) + glConf.addFlags(GLConfiguration::Flag::GpuValidation); + create(conf, glConf); + #else + create(conf); + #endif + + #if defined(MAGNUM_TARGET_GL) && !defined(MAGNUM_TARGET_WEBGL) + Debug{} << "GL context flags:" << GL::Context::current().flags(); #endif - { - create(conf); - } /* For testing resize events */ Debug{} << "window size" << windowSize() diff --git a/src/Magnum/Platform/Test/WindowlessEglApplicationTest.cpp b/src/Magnum/Platform/Test/WindowlessEglApplicationTest.cpp index d6464e6fd..ba828124f 100644 --- a/src/Magnum/Platform/Test/WindowlessEglApplicationTest.cpp +++ b/src/Magnum/Platform/Test/WindowlessEglApplicationTest.cpp @@ -38,12 +38,19 @@ WindowlessEglApplicationTest::WindowlessEglApplicationTest(const Arguments& argu Utility::Arguments args; args.addSkippedPrefix("magnum", "engine-specific options") .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") + .addBooleanOption("gpu-validation").setHelp("gpu-validation", "like --magnum-gpu-validation, but specified via a Context::Configuration instead") .parse(arguments.argc, arguments.argv); + Configuration conf; if(args.isSet("quiet")) - createContext(Configuration{}.addFlags(Configuration::Flag::QuietLog)); - else - createContext(); + conf.addFlags(Configuration::Flag::QuietLog); + if(args.isSet("gpu-validation")) + conf.addFlags(Configuration::Flag::GpuValidation); + createContext(conf); + + #ifndef MAGNUM_TARGET_WEBGL + Debug{} << "GL context flags:" << GL::Context::current().flags(); + #endif } }}}} diff --git a/src/Magnum/Platform/Test/WindowlessGlxApplicationTest.cpp b/src/Magnum/Platform/Test/WindowlessGlxApplicationTest.cpp index e75b3d9c5..298701eaf 100644 --- a/src/Magnum/Platform/Test/WindowlessGlxApplicationTest.cpp +++ b/src/Magnum/Platform/Test/WindowlessGlxApplicationTest.cpp @@ -38,12 +38,17 @@ WindowlessGlxApplicationTest::WindowlessGlxApplicationTest(const Arguments& argu Utility::Arguments args; args.addSkippedPrefix("magnum", "engine-specific options") .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") + .addBooleanOption("gpu-validation").setHelp("gpu-validation", "like --magnum-gpu-validation, but specified via a Context::Configuration instead") .parse(arguments.argc, arguments.argv); + Configuration conf; if(args.isSet("quiet")) - createContext(Configuration{}.addFlags(Configuration::Flag::QuietLog)); - else - createContext(); + conf.addFlags(Configuration::Flag::QuietLog); + if(args.isSet("gpu-validation")) + conf.addFlags(Configuration::Flag::GpuValidation); + createContext(conf); + + Debug{} << "GL context flags:" << GL::Context::current().flags(); } }}}} diff --git a/src/Magnum/Platform/Test/WindowlessWglApplicationTest.cpp b/src/Magnum/Platform/Test/WindowlessWglApplicationTest.cpp index 82b7baaa2..b71193246 100644 --- a/src/Magnum/Platform/Test/WindowlessWglApplicationTest.cpp +++ b/src/Magnum/Platform/Test/WindowlessWglApplicationTest.cpp @@ -38,12 +38,16 @@ WindowlessWglApplicationTest::WindowlessWglApplicationTest(const Arguments& argu Utility::Arguments args; args.addSkippedPrefix("magnum", "engine-specific options") .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") + .addBooleanOption("gpu-validation").setHelp("gpu-validation", "like --magnum-gpu-validation, but specified via a Context::Configuration instead") .parse(arguments.argc, arguments.argv); + Configuration conf; if(args.isSet("quiet")) - createContext(Configuration{}.addFlags(Configuration::Flag::QuietLog)); - else - createContext(); + conf.addFlags(Configuration::Flag::QuietLog); + /* No verbose logs in this app */ + if(args.isSet("gpu-validation")) + conf.addFlags(Configuration::Flag::GpuValidation); + createContext(conf); } }}}} diff --git a/src/Magnum/Platform/Test/WindowlessWindowsEglApplicationTest.cpp b/src/Magnum/Platform/Test/WindowlessWindowsEglApplicationTest.cpp index 9bc627507..03595ea5b 100644 --- a/src/Magnum/Platform/Test/WindowlessWindowsEglApplicationTest.cpp +++ b/src/Magnum/Platform/Test/WindowlessWindowsEglApplicationTest.cpp @@ -38,12 +38,16 @@ WindowlessWindowsEglApplicationTest::WindowlessWindowsEglApplicationTest(const A Utility::Arguments args; args.addSkippedPrefix("magnum", "engine-specific options") .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") + .addBooleanOption("gpu-validation").setHelp("gpu-validation", "like --magnum-gpu-validation, but specified via a Context::Configuration instead") .parse(arguments.argc, arguments.argv); + Configuration conf; if(args.isSet("quiet")) - createContext(Configuration{}.addFlags(Configuration::Flag::QuietLog)); - else - createContext(); + conf.addFlags(Configuration::Flag::QuietLog); + /* No verbose logs in this app */ + if(args.isSet("gpu-validation")) + conf.addFlags(Configuration::Flag::GpuValidation); + createContext(conf); } }}}} diff --git a/src/Magnum/Platform/WindowlessEglApplication.cpp b/src/Magnum/Platform/WindowlessEglApplication.cpp index 251c5dce1..e2e85e809 100644 --- a/src/Magnum/Platform/WindowlessEglApplication.cpp +++ b/src/Magnum/Platform/WindowlessEglApplication.cpp @@ -302,9 +302,10 @@ WindowlessEglContext::WindowlessEglContext(const Configuration& configuration, G } #ifndef MAGNUM_TARGET_WEBGL - /* Request debug context if --magnum-gpu-validation is enabled */ + /* Request debug context if GpuValidation is enabled either via the + configuration or via command-line */ Configuration::Flags flags = configuration.flags(); - if(magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation) + if((flags & Configuration::Flag::GpuValidation) || (magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation)) flags |= Configuration::Flag::Debug; #endif diff --git a/src/Magnum/Platform/WindowlessGlxApplication.cpp b/src/Magnum/Platform/WindowlessGlxApplication.cpp index 29acee4fe..ce8e23092 100644 --- a/src/Magnum/Platform/WindowlessGlxApplication.cpp +++ b/src/Magnum/Platform/WindowlessGlxApplication.cpp @@ -109,9 +109,10 @@ WindowlessGlxContext::WindowlessGlxContext(const WindowlessGlxContext::Configura /* Get pointer to proper context creation function */ const PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB = reinterpret_cast(glXGetProcAddress(reinterpret_cast("glXCreateContextAttribsARB"))); - /* Request debug context if --magnum-gpu-validation is enabled */ + /* Request debug context if GpuValidation is enabled either via the + configuration or via command-line */ Configuration::Flags flags = configuration.flags(); - if(magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation) + if((flags & Configuration::Flag::GpuValidation) || (magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation)) flags |= Configuration::Flag::Debug; /* Optimistically choose core context first */ diff --git a/src/Magnum/Platform/WindowlessWglApplication.cpp b/src/Magnum/Platform/WindowlessWglApplication.cpp index dffbbc593..e01037773 100644 --- a/src/Magnum/Platform/WindowlessWglApplication.cpp +++ b/src/Magnum/Platform/WindowlessWglApplication.cpp @@ -122,9 +122,10 @@ WindowlessWglContext::WindowlessWglContext(const Configuration& configuration, G typedef HGLRC(WINAPI*PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC, HGLRC, const int*); const PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = reinterpret_cast( wglGetProcAddress(reinterpret_cast("wglCreateContextAttribsARB"))); - /* Request debug context if --magnum-gpu-validation is enabled */ + /* Request debug context if GpuValidation is enabled either via the + configuration or via command-line */ Configuration::Flags flags = configuration.flags(); - if(magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation) + if((flags & Configuration::Flag::GpuValidation) || (magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation)) flags |= Configuration::Flag::Debug; /* Optimistically choose core context first */ diff --git a/src/Magnum/Platform/WindowlessWindowsEglApplication.cpp b/src/Magnum/Platform/WindowlessWindowsEglApplication.cpp index b0341f8db..8a9707d74 100644 --- a/src/Magnum/Platform/WindowlessWindowsEglApplication.cpp +++ b/src/Magnum/Platform/WindowlessWindowsEglApplication.cpp @@ -113,9 +113,10 @@ WindowlessWindowsEglContext::WindowlessWindowsEglContext(const Configuration& co return; } - /* Request debug context if --magnum-gpu-validation is enabled */ + /* Request debug context if GpuValidation is enabled either via the + configuration or via command-line */ Configuration::Flags flags = configuration.flags(); - if(magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation) + if((flags & Configuration::Flag::GpuValidation) || (magnumContext && magnumContext->configurationFlags() & GL::Context::Configuration::Flag::GpuValidation)) flags |= Configuration::Flag::Debug; const EGLint attributes[] = {