Skip to content

Commit 7d0bb08

Browse files
rooswoutermathieu
authored andcommitted
Compile errors on Visual Studio (#28)
* Removed definition of __gl_h_ to prevent the Gl.h include not defining standard Gl defines such as GLfloat when compiling on Windows systems (Visual Studio 2013 tested) * Removed setting of state settings specific to OpenGL 3 non fixed pipeline. * Added check for starting without any arguments to call constructor without arguments * Add setting of default fbo id to fix problem with render to texture in the QOpenGLWidget
1 parent 8c6db61 commit 7d0bb08

File tree

5 files changed

+19
-16
lines changed

5 files changed

+19
-16
lines changed

include/osgQOpenGL/osgQOpenGLWidget

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include <OpenThreads/ReadWriteMutex>
1313

1414
#ifdef WIN32
15-
#define __gl_h_
15+
//#define __gl_h_
1616
#include <osg/GL>
1717
#endif
1818

@@ -39,6 +39,7 @@ protected:
3939
bool _osgWantsToRenderFrame{true};
4040
OpenThreads::ReadWriteMutex _osgMutex;
4141
osg::ArgumentParser* _arguments {nullptr};
42+
bool _isFirstFrame {true};
4243

4344
friend class OSGRenderer;
4445

include/osgQOpenGL/osgQOpenGLWindow

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include <OpenThreads/ReadWriteMutex>
1313

1414
#ifdef WIN32
15-
#define __gl_h_
15+
//#define __gl_h_
1616
#include <osg/GL>
1717
#endif
1818

@@ -37,7 +37,7 @@ protected:
3737
OSGRenderer* m_renderer {nullptr};
3838
bool _osgWantsToRenderFrame{true};
3939
OpenThreads::ReadWriteMutex _osgMutex;
40-
40+
bool _isFirstFrame {true};
4141
friend class OSGRenderer;
4242

4343
QWidget* _widget = nullptr;

src/osgQOpenGL/OSGRenderer.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,6 @@ void OSGRenderer::setupOSG(int windowWidth, int windowHeight, float windowScale)
206206
osgViewer::Viewer::Windows windows;
207207
getWindows(windows);
208208

209-
for(osgViewer::Viewer::Windows::iterator itr = windows.begin();
210-
itr != windows.end(); ++itr)
211-
{
212-
(*itr)->getState()->setUseModelViewAndProjectionUniforms(true);
213-
(*itr)->getState()->setUseVertexAttributeAliasing(true);
214-
(*itr)->getState()->setShaderCompositionEnabled(
215-
false); // TODO: check if we need it ???
216-
}
217-
218209
_timerId = startTimer(10, Qt::PreciseTimer);
219210
_lastFrameStartTime.setStartTick(0);
220211
}

src/osgQOpenGL/osgQOpenGLWidget.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ void osgQOpenGLWidget::resizeGL(int w, int h)
6060
void osgQOpenGLWidget::paintGL()
6161
{
6262
OpenThreads::ScopedReadLock locker(_osgMutex);
63-
m_renderer->frame();
63+
if (_isFirstFrame) {
64+
_isFirstFrame = false;
65+
m_renderer->getCamera()->getGraphicsContext()->setDefaultFboId(defaultFramebufferObject());
66+
}
67+
m_renderer->frame();
6468
}
6569

6670
void osgQOpenGLWidget::keyPressEvent(QKeyEvent* event)
@@ -205,9 +209,12 @@ void osgQOpenGLWidget::createRenderer()
205209
{
206210
// call this before creating a View...
207211
setDefaultDisplaySettings();
208-
209-
m_renderer = new OSGRenderer(_arguments, this);
210-
QScreen* screen = windowHandle()
212+
if (!_arguments) {
213+
m_renderer = new OSGRenderer(this);
214+
} else {
215+
m_renderer = new OSGRenderer(_arguments, this);
216+
}
217+
QScreen* screen = windowHandle()
211218
&& windowHandle()->screen() ? windowHandle()->screen() :
212219
qApp->screens().front();
213220
m_renderer->setupOSG(width(), height(), screen->devicePixelRatio());

src/osgQOpenGL/osgQOpenGLWindow.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ void osgQOpenGLWindow::resizeGL(int w, int h)
5252
void osgQOpenGLWindow::paintGL()
5353
{
5454
OpenThreads::ScopedReadLock locker(_osgMutex);
55+
if (_isFirstFrame) {
56+
_isFirstFrame = false;
57+
m_renderer->getCamera()->getGraphicsContext()->setDefaultFboId(defaultFramebufferObject());
58+
}
5559
m_renderer->frame();
5660
}
5761

0 commit comments

Comments
 (0)