| Line |
Branch |
Exec |
Source |
| 1 |
|
|
#include <stdio.h> |
| 2 |
|
|
|
| 3 |
|
|
#include <iostream> |
| 4 |
|
|
|
| 5 |
|
|
#ifdef _WIN32 |
| 6 |
|
|
#include <Windows.h> |
| 7 |
|
|
#endif |
| 8 |
|
|
|
| 9 |
|
|
#include <osg/GLExtensions> |
| 10 |
|
|
#include <osgViewer/Viewer> |
| 11 |
|
|
|
| 12 |
|
|
const int OSG_WIDTH = 1024; |
| 13 |
|
|
const int OSG_HEIGHT = 960; |
| 14 |
|
|
|
| 15 |
|
|
class TestSupportOperation : public osg::GraphicsOperation { |
| 16 |
|
|
public: |
| 17 |
|
✗ |
TestSupportOperation() |
| 18 |
|
✗ |
: osg::Referenced(true), |
| 19 |
|
|
osg::GraphicsOperation("TestSupportOperation", false), |
| 20 |
|
✗ |
m_supported(true), |
| 21 |
|
✗ |
m_errorMsg(), |
| 22 |
|
✗ |
m_version(1.3) {} |
| 23 |
|
|
|
| 24 |
|
✗ |
virtual void operator()(osg::GraphicsContext* gc) { |
| 25 |
|
✗ |
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(m_mutex); |
| 26 |
|
✗ |
osg::GLExtensions* gl2ext = gc->getState()->get<osg::GLExtensions>(); |
| 27 |
|
|
|
| 28 |
|
✗ |
if (gl2ext) { |
| 29 |
|
✗ |
if (!gl2ext->isGlslSupported) { |
| 30 |
|
✗ |
m_supported = false; |
| 31 |
|
✗ |
m_errorMsg = "ERROR: GLSL not supported by OpenGL driver."; |
| 32 |
|
|
} else |
| 33 |
|
✗ |
m_version = gl2ext->glVersion; |
| 34 |
|
|
} else { |
| 35 |
|
✗ |
m_supported = false; |
| 36 |
|
✗ |
m_errorMsg = "ERROR: GLSL not supported."; |
| 37 |
|
|
} |
| 38 |
|
|
} |
| 39 |
|
|
|
| 40 |
|
|
OpenThreads::Mutex m_mutex; |
| 41 |
|
|
bool m_supported; |
| 42 |
|
|
std::string m_errorMsg; |
| 43 |
|
|
float m_version; |
| 44 |
|
|
}; |
| 45 |
|
|
|
| 46 |
|
✗ |
int main(int, char**) { |
| 47 |
|
|
#ifdef _WIN32 |
| 48 |
|
|
::SetProcessDPIAware(); |
| 49 |
|
|
#endif |
| 50 |
|
|
|
| 51 |
|
✗ |
osgViewer::Viewer viewer; |
| 52 |
|
✗ |
viewer.setUpViewInWindow(100, 100, OSG_WIDTH, OSG_HEIGHT); |
| 53 |
|
|
|
| 54 |
|
|
// openGL version: |
| 55 |
|
✗ |
osg::ref_ptr<TestSupportOperation> so = new TestSupportOperation; |
| 56 |
|
✗ |
viewer.setRealizeOperation(so.get()); |
| 57 |
|
✗ |
viewer.realize(); |
| 58 |
|
|
|
| 59 |
|
✗ |
if (so->m_supported) |
| 60 |
|
✗ |
std::cout << "GLVersion=" << so->m_version << std::endl; |
| 61 |
|
|
else |
| 62 |
|
✗ |
std::cout << so->m_errorMsg << std::endl; |
| 63 |
|
|
|
| 64 |
|
✗ |
return viewer.run(); |
| 65 |
|
|
} |
| 66 |
|
|
|