From 405bc1b1f681d5c0adef132227f0a8efdee1375d Mon Sep 17 00:00:00 2001 From: Christopher Tenter Date: Fri, 29 Aug 2014 10:34:28 +0000 Subject: [PATCH] check gl4 extensions at compile time for mac etc. git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free-Staging@19471 383ad7c9-94d9-4d36-a494-682f7c89f535 --- .../OITLinkedList.cc | 35 +++++++++++++++++-- .../OITLinkedList.hh | 13 +++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.cc b/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.cc index 2c66387..cb26ca9 100644 --- a/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.cc +++ b/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.cc @@ -34,9 +34,9 @@ /*===========================================================================*\ * * -* $Revision: 13374 $ * -* $LastChangedBy: moebius $ * -* $Date: 2012-01-13 09:38:16 +0100 (Fri, 13 Jan 2012) $ * +* $Revision$ * +* $LastChangedBy$ * +* $Date$ * * * \*===========================================================================*/ @@ -54,6 +54,9 @@ #include +// check for glew symbol definition +#ifdef GL_ARB_shader_image_load_store + /* OIT with per pixel linked list (A-Buffer). @@ -385,6 +388,29 @@ void OITLinkedList::renderOIT(int w, int h, bool multisampled) } + +QString OITLinkedList::checkOpenGL() +{ + // Get version and check + if ( !ACG::openGLVersion(4,2) ) + return QString("Insufficient OpenGL Version! OpenGL 4.2 or higher required"); + + // Check extensions + QString glExtensions = QString((const char*)glGetString(GL_EXTENSIONS)); + QString missing(""); + if ( !glExtensions.contains("ARB_shader_image_load_store") ) + missing += "ARB_shader_image_load_store extension missing\n"; + + if ( !glExtensions.contains("GL_ARB_shader_atomic_counters") ) + missing += "GL_ARB_shader_atomic_counters extension missing\n"; + + if ( !glExtensions.contains("GL_ARB_gpu_shader5") ) + missing += "GL_ARB_gpu_shader5 extension missing\n"; + + return missing; +} + + QString OITLinkedList::renderObjectsInfo( bool _outputShaderInfo ) { std::vector mods; @@ -397,3 +423,6 @@ QString OITLinkedList::renderObjectsInfo( bool _outputShaderInfo ) #endif + + +#endif // GL_ARB_shader_image_load_store diff --git a/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.hh b/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.hh index 52ad586..107c43a 100644 --- a/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.hh +++ b/PluginCollection-Renderers/Plugin-Render-OITLinkedList/OITLinkedList.hh @@ -34,9 +34,9 @@ /*===========================================================================*\ * * -* $Revision: 13374 $ * -* $LastChangedBy: moebius $ * -* $Date: 2012-01-13 09:38:16 +0100 (Fri, 13 Jan 2012) $ * +* $Revision$ * +* $LastChangedBy$ * +* $Date$ * * * \*===========================================================================*/ @@ -54,6 +54,11 @@ #include #include + +// check for glew symbol definition +#ifdef GL_ARB_shader_image_load_store + + class OITLinkedList : public QObject, BaseInterface, RenderInterface, LoggingInterface, ACG::IRenderer { Q_OBJECT @@ -117,3 +122,5 @@ private: }; + +#endif // GL_ARB_shader_image_load_store -- GitLab