Moved ViewDependetShadowMap parameter settings into a dedicated ShadowSettings object in prep for making it possible to scale the API to handle multiple lights and multiple shadow maps per light.

This commit is contained in:
Robert Osfield
2011-09-07 15:55:54 +00:00
parent 772c7d75c5
commit 3a79bc343d
9 changed files with 223 additions and 116 deletions

View File

@@ -20,6 +20,7 @@
#include <osg/TexGenNode>
#include <osgShadow/ShadowTechnique>
#include <osgShadow/ShadowSettings>
namespace osgShadow {
@@ -42,6 +43,10 @@ class OSGSHADOW_EXPORT ShadowedScene : public osg::Group
void setCastsShadowTraversalMask(unsigned int mask) { _castsShadowTraversalMask = mask; }
unsigned int getCastsShadowTraversalMask() const { return _castsShadowTraversalMask; }
void setShadowSettings(ShadowSettings* ss);
ShadowSettings* getShadowSettings() { return _shadowSettings.get(); }
const ShadowSettings* getShadowSettings() const { return _shadowSettings.get(); }
void setShadowTechnique(ShadowTechnique* technique);
ShadowTechnique* getShadowTechnique() { return _shadowTechnique.get(); }
const ShadowTechnique* getShadowTechnique() const { return _shadowTechnique.get(); }
@@ -66,8 +71,9 @@ protected:
unsigned int _receivesShadowTraversalMask;
unsigned int _castsShadowTraversalMask;
osg::ref_ptr<ShadowTechnique> _shadowTechnique;
osg::ref_ptr<ShadowSettings> _shadowSettings;
osg::ref_ptr<ShadowTechnique> _shadowTechnique;
};