Addressing the actual gcc bug

This commit is contained in:
Brad Davis 2015-05-11 14:40:10 -07:00
parent 44238d02ae
commit 69937d21f2
2 changed files with 8 additions and 5 deletions

View file

@ -122,9 +122,8 @@ void TV3DManager::display(Camera& whichCamera) {
qApp->displaySide(eyeCamera, false, RenderArgs::MONO);
qApp->getApplicationOverlay().displayOverlayTextureStereo(whichCamera, _aspect, fov);
_activeEye = NULL;
// HACK: the gcc compiler didn't like a pair of lambdas in the forEachEye template
// Adjust viewport for next view
}, [&]{
// render right side view
portalX = deviceSize.width() / 2;
});
glPopMatrix();

View file

@ -49,9 +49,13 @@ private:
// while the second is code to be executed between the two eyes.
// The use case here is to modify the output viewport coordinates
// for the new eye.
template<typename F>
static void forEachEye(F f) {
// FIXME: we'd like to have a default empty lambda for the second parameter,
// but gcc 4.8.1 complains about it due to a bug. See
// http://stackoverflow.com/questions/25490662/lambda-as-default-parameter-to-a-member-function-template
template<typename F, typename FF>
static void forEachEye(F f, FF ff) {
f(_leftEye);
ff();
f(_rightEye);
}
};