From ff4a0ce1e2f9f6dce0119fcedb380deaeccc9254 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 10 Dec 2013 13:38:27 +0000 Subject: [PATCH] Added support for handling viewports with offset origins, and with it split stereo. --- include/osgVolume/VolumeScene | 2 +- src/osgVolume/VolumeScene.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/osgVolume/VolumeScene b/include/osgVolume/VolumeScene index 0676f06ba..9f32ff35e 100644 --- a/include/osgVolume/VolumeScene +++ b/include/osgVolume/VolumeScene @@ -61,7 +61,7 @@ class OSGVOLUME_EXPORT VolumeScene : public osg::Group osg::ref_ptr _geometry; osg::ref_ptr _vertices; osg::ref_ptr _stateset; - osg::ref_ptr _viewportSizeUniform; + osg::ref_ptr _viewportDimensionsUniform; Tiles _tiles; diff --git a/src/osgVolume/VolumeScene.cpp b/src/osgVolume/VolumeScene.cpp index 3a0ef337a..7226b2315 100644 --- a/src/osgVolume/VolumeScene.cpp +++ b/src/osgVolume/VolumeScene.cpp @@ -244,8 +244,8 @@ void VolumeScene::traverse(osg::NodeVisitor& nv) viewData->_stateset->setTextureAttributeAndModes(0, viewData->_colorTexture.get(), osg::StateAttribute::ON); viewData->_stateset->setTextureAttributeAndModes(1, viewData->_depthTexture.get(), osg::StateAttribute::ON); - viewData->_viewportSizeUniform = new osg::Uniform("viewportSize",osg::Vec2(1280.0,1024.0)); - viewData->_stateset->addUniform(viewData->_viewportSizeUniform.get()); + viewData->_viewportDimensionsUniform = new osg::Uniform("viewportDimensions",osg::Vec4(0.0,0.0,1280.0,1024.0)); + viewData->_stateset->addUniform(viewData->_viewportDimensionsUniform.get()); geode->setStateSet(viewData->_stateset.get()); @@ -266,7 +266,7 @@ void VolumeScene::traverse(osg::NodeVisitor& nv) osg::Viewport* viewport = cv->getCurrentRenderStage()->getViewport(); if (viewport) { - viewData->_viewportSizeUniform->set(osg::Vec2(viewport->width(),viewport->height())); + viewData->_viewportDimensionsUniform->set(osg::Vec4(viewport->x(), viewport->y(), viewport->width(),viewport->height())); if (viewport->width() != viewData->_colorTexture->getTextureWidth() || viewport->height() != viewData->_colorTexture->getTextureHeight())